Skip to content

feat: add meeting reader feeds, comparisons, and image sharing - #19

Open
dshipper wants to merge 10 commits into
mainfrom
feat/native-meeting-readers
Open

feat: add meeting reader feeds, comparisons, and image sharing#19
dshipper wants to merge 10 commits into
mainfrom
feat/native-meeting-readers

Conversation

@dshipper

@dshipper dshipper commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

Let a normal Tend feed collect concise meeting cards from independent readers, compare their versions without seeing model names, and learn from explicit feedback. Reading can work like a feed: cards become read as the user scrolls past them, stay available for feedback during the visit, and move to history on the next visit.

Behavior

  • Run one to eight explicitly configured readers concurrently on the same frozen packet. Codex and Claude CLI adapters use the user’s subscriptions, keep tools disabled, and never silently change models or fall back to API billing. Claude aliases resolve to a verified reported model; exact requested and reported identity remain separate.
  • Extend existing source runs with independent execution receipts, input/output hashes, raw drafts and failures. A failed or expired login preserves the other reader’s output. An intentional retry can join its equivalent observations to the original comparison after matching the saved input and prompt.
  • Publish ordinary Tend cards tied to exact saved drafts. Equivalent observations share a carousel with click/keyboard switching; model details open on demand. Necessary review edits are disclosed, and changed wording requires a new card so old feedback cannot move to a rewrite.
  • Preserve Likes, Not for me, preferred versions and voice comments in native events and Compound. Reviewed cards retain their place during the current visit, so a preference does not remove the opportunity to explain it. Read history preserves sources and comparisons. Unrated alternatives do not become dislikes.
  • Record local foreground dwell time, named control activations and text-selection character counts for each exact version. Background/idle time is excluded. Selected text is not stored, and these exposure estimates do not become automatic taste or model-quality scores.
  • Import a generated PNG as a reusable inline preview attached to the exact source-card revision. Existing approval digests bind the image descriptor and separate message; action verification rechecks the saved image bytes before returning attachments for delivery.

The portable setup guide includes complete-source reading, collection examples, five optional lenses, owner-specific questions, and fictional starter packets. Readers actively resolve names from participant records and conversational handoffs, use verified spellings, and can say “likely Name” when evidence is strong but inconclusive. Each person uses their own local runtime, accounts, authorized sources and feedback.

Verification

  • Typecheck, lint, web build, compiled binary build, isolated binary smoke and packaging passed with Bun 1.3.11. The smoke-tested binary reports CLI contract 0.7.
  • GitHub’s build/test/smoke job on 3476266 passed: 383 tests passed, 1 skipped, 0 failed, plus the required checks, builds, smoke and packaging. The skipped case is exercised by the separate Supabase migration and bridge job, which also passed.
  • Reader concurrency, subscription failures, retry comparisons and API tests passed, including Claude alias resolution. Image tests verify stale source revisions, attachment/note digest changes, missing/replaced/symlinked bytes, refusal of tampered previews, and phone approval exclusion for Mac-local images.
  • An isolated browser check rendered and decoded the imported 1536 × 1024 PNG at desktop and 390 px widths without overflow; its separate editable note persisted, and the normal approval control remained available. Synthetic image and isolated runtime only; no provider or message delivery call.
  • The dependency audit passes its high-severity gate; six moderate and one low existing findings remain.
  • Native iPhone unit/UI tests also passed. All three CI jobs are green on the combined head.

Scope and rollout

These additions use existing cards, source runs and the event ledger. There is no new comparison database, FFO edition/import engine, provider daemon or hosted account system. Main stays unchanged and this work remains on the feature branch.

Collection, packet assembly, evidence/readability review, topic matching, image generation/text checking and sending remain coordinating-task responsibilities. The image import/preview contract verifies attachment identity, not the truth of the generated image’s words. No automatic collection, policy application or sharing is enabled by installing the feature.


Compound Engineering

Prepared with Codex.

dshipper and others added 10 commits September 2, 2026 11:54
Link deliberately matched observations across real attempts only after validating frozen packet and prompt hashes. Preserve per-version reactions and invalidate preferences when comparison membership changes.

Classify expired subscription sessions with fixed sign-in guidance while retaining private diagnostics and refusing automatic retries or billing fallbacks. Add domain, CLI, API, adapter, and UI regressions; validate with synthetic browser fixtures.
Add an opt-in reading stream to ordinary feeds. Keep neutral read receipts
separate from likes and version preferences, preserve which exact versions
were viewed, and provide read history and conditional undo.

Protect new variants, stale tabs and later feedback work. Clear only passive
reading cards after meaningful visibility and deliberate scrolling, without
moving the next card or changing source content and actions.

Verified full checks (368 passed, one optional skip), final affected UI tests
(35 passed), typecheck, lint, UI and CLI builds, and synthetic browser checks.
@dshipper dshipper changed the title feat: add native meeting readers and blind comparisons feat: add meeting reader feeds, comparisons, and image sharing Sep 5, 2026
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