Skip to content

Owners can share their creator-fee view with other Luca users - #94

Merged
danbuildss merged 1 commit into
mainfrom
claude/brave-pasteur-mayw5k
Sep 27, 2026
Merged

danbuildss merged 1 commit into
mainfrom
claude/brave-pasteur-mayw5k

Conversation

@danbuildss

Copy link
Copy Markdown
Owner

What changed

Dan's explicit override (Sep 27): let other Luca users ask about the ACCUM fees, while Dan keeps tracking the wallet. It's proof of work for the ACCUM experiment.

  • Migration 026 (additive): fee_sources.shared (default FALSE) and shared_changed_at. Every source stays private until its owner turns sharing on.

  • The switch: node dist/scripts/fee-source.js share 0xWallet 0xToken on|off [userId], per source and reversible. It never guesses: with no source, or several users following the same fees and no user id, it changes nothing. status now shows whether a source is shared.

  • What another user gets when it's shared (src/fees/report.ts, src/fees/sources.ts):

    • The same fixed-wording view: Bankr's readings, verified claims with links, the reconciliation, and the fee wallet's BNKR balance.
    • Headed "…, shared by the owner of that wallet".
    • Transfers that stay unknown read "stay unknown and not counted"; the owner's version adds "until you tell me".
    • The machine report marks it "view": "shared_by_owner".
  • The shared view is built from the fee tables only:

    • fee_source_readings
    • claim-verified fee_claim_checks rows (amount, time, transaction)
    • the fee wallet's latest balance_snapshots row for the fee asset

    It never reads the owner's other transactions, labels, wallets, balances, figures or identity. Every query stays scoped to the source's own owner and wallet.

  • The owner still sees their own view once, and it ends with "You share this view with other Luca users (nothing else of yours)."

  • A prompt line: shared views are marked as shared; never speculate about the owner.

Why

Dan wants people to see the ACCUM fee activity Luca verifies, while he keeps the wallet and the books. Everything in the shared view is already public: Bankr publishes its figures and claims are on-chain. Luca adds its verification. This is a deliberate, opt-in exception to "no operator sees another's data", so it is per source, reversible, and limited to one fixed set of fields.

How it was verified

  • npm run lint and npm run typecheck pass
  • LUCA_INTEGRATION=1 npx vitest run passes: 56 files, 536 tests
  • New or changed behaviour has a test (tests/integration/fee-report.test.ts)
    • Off by default: another user gets "I'm not following any creator fees for you".
    • Shared: the owner's books also hold a $98,765.43 USDC sale from a client, a second wallet labelled "Secret treasury" with 424,242 USDC, and the username fee_owner. Another user's reply and machine report contain none of these (and not the owner's user id). They do contain the claim with its link, the BNKR balance and the "shared" heading.
    • The owner sees their view once, with the sharing note.
    • Turned off: gone for everyone else.
    • The switch refuses with no source, or with two users following the same fees and no user id, and nothing changes.
  • Migration 026 applied twice without error.

Checklist

  • Luca stays read-only and every financial query stays scoped to one operator. The only exception is this opt-in, allowlisted fee view; everything else still requires the operator's own user_id.
  • Schema changes are a new, additive migration (026)
  • No secrets, keys or personal wallet details added

Deploy:

  1. Code: cd /opt/luca && git pull && npm ci && bun run build
  2. Apply migration 026 with the usual node one-shot, before restarting.
  3. Restart luca-api luca-worker luca-telegram.
  4. Share: node dist/scripts/fee-source.js share 0xb54081ff3f6a90a5a1057d8a5537f7f14e376fdb 0x70aEb20cD233e044bB7676C34105712132F49Ba3 on

🤖 Generated with Claude Code

https://claude.ai/code/session_01KqcPsn2HCGWiE2FTmHKYEQ


Generated by Claude Code

Off unless the owner turns it on (migration 026, fee_sources.shared), per source and
reversible: node dist/scripts/fee-source.js share 0xWallet 0xToken on|off.

When shared, another user asking about the fees gets the same fixed-wording view,
headed "shared by the owner of that wallet", built only from the fee tables (Bankr's
readings, verified claims and the reconciliation) and the fee wallet's balance of
the fee asset. None of the owner's other transactions, labels, wallets, balances,
figures or identity is read for it. The machine report marks it
"view": "shared_by_owner". The owner's own view says the view is shared.

The switch never guesses: with no source, or several owners of the same fees and no
user id, it changes nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KqcPsn2HCGWiE2FTmHKYEQ
@vercel

vercel Bot commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
luca Ready Ready Preview Sep 27, 2026 6:32pm UTC

Request Review

@danbuildss
danbuildss merged commit 568c40b into main Sep 27, 2026
6 checks passed
danbuildss pushed a commit that referenced this pull request Sep 27, 2026
Not on the page until draft is false: the false-"Confirmed" fix (#90) and the shared
ACCUM fee view (#94).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KqcPsn2HCGWiE2FTmHKYEQ
danbuildss pushed a commit that referenced this pull request Sep 27, 2026
- site/building.ts: the false-"Confirmed" fix (#90) and the shared ACCUM fee view
  (#94) are published, each with its PR as evidence.
- landing/styles.css: .live-dot gets a soft ring that grows and fades every 2.4s
  (transform and opacity only); still for anyone who prefers reduced motion.
- The same dot now sits beside CURRENTLY on /building and on every LIVE roadmap item,
  replacing the static dot; the homepage hero dot pulses too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KqcPsn2HCGWiE2FTmHKYEQ

This branch was successfully deployed

1 active deployment
Preview — 4451e1f5 Deployed Sep 27, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants