Skip to content

Every share link has a six-digit document code for voice calls (v0.27.0) - #74

Merged
ralyodio merged 1 commit into
mainfrom
feat/share-voice-codes
Oct 28, 2026
Merged

ralyodio merged 1 commit into
mainfrom
feat/share-voice-codes

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

Anthony: say "open document 437301" on a voice call; a unique code per shared document (view+) that lasts until the optional expiry; no collisions; 6 digits.

  • shares.code (unique index, 900k space, freed on expiry, backfilled), dies with revoke/expiry.
  • /c/<code> page + GET /api/v1/codes/<code>: read-only, no account, 20/min per IP.
  • Share dialog: optional expiry (never/1/7/30/90 days), shows the code; list shows codes.

Tests: server 108 (codes test), site e2e 49 (code shown in dialog, /c/ opens in a fresh browser), accounts 6, unit 228.

🤖 Generated with Claude Code

Anthony: "for voice calls people should be able to say 'open document number
4373' ... assign each shared document (view+) a unique code that lasts for the
expiration date the user optionally selects ... make sure we don't have collisions
... 6".

- shares.code: six digits (100000-999999, no leading zero to mishear), unique among
  links that still work (unique index; an expired link gives its code back), backfilled
  for existing links; it lives and dies with its link (revoke or expiry).
- readm3.com/c/<code> and GET /api/v1/codes/<code> open the document read-only, no
  account, 20 lookups a minute per address (a code is short enough to guess).
- Share dialog: "Link and code expire" (never / 1 / 7 / 30 / 90 days); the new link
  shows "Document code 437 301: on a call, say open document 437301"; existing links
  list their code and expiry. llms.txt documents the codes.
- Test: the storage-failure editor test waits for the editor's document before typing
  (typing earlier raced the editor's load).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ralyodio
ralyodio merged commit 3defa66 into main Oct 28, 2026
9 checks passed
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.

1 participant