Current Knomee integration
Reconciled 17 October 2026. GoodTakes protocol owns the product; Knomee protocol owns identity and spending.
Shared contract
GoodTakes consumes @knomee/review-react 0.2.30. Current inputs support text,
one exact emoji, or both. Bundle v3 binds originalReaction; request/draft/approval
v4 and public index/manifest v2 preserve it. Old write formats are not upgraded.
The composer uses a single simple submit path. Advanced retains individual meaning, direction, quantity and optional QUALIA. Emoji-only reviews skip AI and keep their deterministic expression. Targets need no minting or activation. The compact composer shows one account/title readiness status. Failed reads offer a retry instead of an indefinite loading message; retrying retains prose, emoji and budget. Account setup remains separate from permission to rate a target. Simple mode keeps balance, amount, refresh and fee details behind a small Spending options icon. Accepted account terms disappear from compose and publication; first-use account acceptance remains required. No spending check is removed.
Identity and routing
All title types use stable film:tt... subject keys. Series and episode targets
are separate. Knomee SSO owns provider selection. Persistent Firebase sessions
renew silently while valid. Terms acceptance is stored against the account.
Pending and public records
Save the exact intent before navigation. Show the owner's pending card at the title, then reconcile the original job through publication and finality. Do not show pending content as public or create another spend when a status call fails. The confirmed public record replaces the pending card without duplicate display. The home page's People are talking about section reads current-generation confirmed public takes, newest finalized block first, grouped by title. Each card links to the latest public take. Failed reads show recovery rather than a fabricated empty feed; pending jobs and old snapshot counts do not populate this section. Catalog badges, comparison summaries and take sorting share the same complete, bounded current-format public projection. Snapshot reviews, summaries and claim histories are excluded from the runtime catalog, while original files are preserved. Unknown counts remain unknown after a failed read; drafts and old versions never imply current public takes. Most discussed replaces the unsupported settled-VIBE sort.
Simple Submit waits for a registered spending account and resolved author. Loading, missing setup, pending account finality and revocation retain the draft and disable submission. Backend checks remain authoritative. An existing registration awaiting finality gets bounded retries on the same queued intent inside its original grant. Saved account failures link back to setup; setup and review consent remain separate. Expired grants require continuation from the original authenticated account.
Current public views omit old schema generations. Original signed history remains unchanged; do not manufacture historical emoji or resend an old review. The session recovery guide retains operational detail.
Delivery evidence
Use the current compact-title and reaction-compose Kotlin harnesses for anonymous 390/1440 browser evidence. A successful synthetic journey or build is not a new participant transaction. Firebase is the current promotion scope. Preserve both release artifacts and their SHA-256 manifests.
tools/accept-review-readiness.main.kts renders the vendored SDK in an anonymous
local fixture and intercepts all external requests. It checks one failed-account
status, retry, and exact text/emoji/budget retention in Simple and Advanced. Set
GOODTAKES_ESBUILD to an installed esbuild executable if it is not available in
this repository's node_modules/.bin. This fixture is never part of the site.
tools/accept-first-touch-connections.main.kts <origin> reads the published graph
and simulates admission interruption/retry without queuing metadata jobs.
The previous running status log is preserved in the archive.