6.3 KiB
Sanitized detailed source transcription S06, captured 2026-10-24. Original planning steps, acceptance criteria and historical evidence are retained rather than condensed. Read current context and precedence first: dated holds, approvals, test counts and “latest” labels below belong to their original checkpoint and do not grant current execution/publication authority. Privacy replacements preserve roles and test semantics. See section coverage.
Approved UX and additional execution scope
Latest operator direction approves the design, asks for original black modal containers, and explicitly requests execution after finishing the executor plan. The earlier general UX hold is superseded for development of this scope. Implementation still requires T00 provenance/baseline and reviewed high-risk contracts. This is not automatic approval of funds, public events/releases, hardware mutation or other-node deployment.
UI contract
- Preserve original IndeeHub AppHeader/BackstageHeader, desktop/mobile navigation, browsing, branding, account/source controls and design system. Do not ship the standalone fixture or its placeholders.
- Keep original ContentDetailModal BEFORE checkout: backdrop, title/meta, creator, My List, reactions, Zap, Share, supporter avatars and threaded comments. Child dialogs close back to details.
- Preserve original VideoPlayer controls, fullscreen behavior and layout. Add only the ecash-streaming overlay/button. The demo is not the production Vue player or real media.
- Keep original ZapModal presets 21, 100, 1,000, 5,000, default 100, custom positive whole-sat input and orange visual treatment. Amount selection → supported payment method → native approval or external request → authoritative confirmation.
- Cloud payment styling: green Cashu card icon, yellow Lightning bolt, amber external-wallet/QR phone, orange on-chain link. Reuse actual shared components/tokens where feasible rather than copy divergent payment implementations.
- Producer capability privacy: customer/public UI and guest APIs must never disclose whether a producer has a wallet, whether it is an Archipelago wallet, its backend/provider, balance, configuration or why a producer-side rail is unavailable. A producer-side unavailable method is disabled and says only “Not offered.” Customer-owned failures may describe only the customer's own state (for example, “Your wallet is unavailable”). Detailed diagnostics are authenticated producer/admin-only and redacted from customer-visible errors/logs.
- Modal surfaces match original black glass, blur40, white8% border, radius24 and original shadows/backdrop; detail container keeps its own near-black92%, responsive/full-mobile shape; player stays fullscreen near-black. Final prototype CSS pass applies this and darkens streaming overlay. Do not recolour amount/method accents.
- Retain approved Backstage details/assets/pricing/publish page structure within original shell, draft/asset recovery and native identity.
- Preserve accessibility: focus containment/return, Escape/back, accessible names, reduced motion, contrast, disabled reasons, keyboard and 320px layout. Icon-only visible UI still needs an accessible label.
New ledger requirements (in addition to original 43)
A10 — Bounded chunked ecash streaming
Separate offered mode alongside rental, explicit chunk rate/duration and fee-inclusive session ceiling. Zero off, no ceiling charged upfront, history retained on changes. Native consent for initial/increased allowance or changed terms; no unauthorized background spending. Durable reservations/receipts prevent concurrent overspend and repeat payment. Pause/stop/pending/limit reached/delivery failure and retry must be truthful. Every remote media byte remains authenticated FIPS. Prototype 10 sats/60 seconds and 30/100/500 presets are illustrative, not approved economic defaults.
A11 — Complete social actions and native/external zaps
All supported native/external receiving/sending methods, amount validation and availability explanation. Zaps are separate from access, count only authoritative settled receipts, preserve original picker. Correct attribution/privacy and rail-specific proof, stable distributed social identity, My List/reactions/comments/replies/share tested end to end. See detailed social document.
A12 — Integrated Networking Profits
Extend existing Dashboard/Configure, quick action, cards, chart, sessions and service breakdown. Nonoverlapping creator content/tip vs network-service revenue; pending/confirmed/unknown separated, once-only receipt aggregation, gross vs net accurate. No viewer private budgets revealed. Any new accounting categories require matching backend/UI/version contract.
C10 — Mesh message readability, sender header and audio replay
Reported garbled public messages, Unknown sender and name duplicated in body require actual examples and protocol-aware diagnosis. Show resolved sender device name above body; strip only a verified structured sender prefix. No arbitrary text loss or invented identity. Add requested icon-only audio replay to the existing supported path after clarifying whether the operator means received voice clips or text-to-speech. See 11-Mesh-Investigation-and-Acceptance.md.
Preview limits
Preview assets live beside this pack in [private synthetic preview directory]. In-memory fictional wallets/media/comments/receipts, not a production UI import. Search/secondary routes, QR, seeking and actual networking are placeholders. Capability fixtures reuse producer rental method selections; production zap receiving capabilities MUST be independent. Do not copy data/method shortcuts, simulate-confirm buttons, approval impersonation or raw innerHTML construction into production.
Prototype evidence: 40 zap + 32 detail + 44 broader assertions passed on four widths before final modal-container styling pass. CSS-only pass requires rerun; record actual results, not assumed green. Source/integration/artifact/live/hardware evidence remains absent for new features until execution.