-
Notifications
You must be signed in to change notification settings - Fork 76
Derive the personal drive DID from the agent key #1272
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
73 commits
Select commit
Hold shift + click to select a range
337c121
docs(planning): derived personal drive is identity, not a fallback
cursoragent be0e91d
feat: derive the personal drive DID from the agent key
cursoragent 35f9baf
chore(lint): add the two blank lines oxlint asks for
joepio 45e69ab
feat(migration): take the old home from the agent secret too
joepio 0ccb0f7
fix(migration): adopt legacy drives hosted on the account's own origin
joepio 0dd164e
fix(migration): keep legacySubject and initialDrive across restarts
joepio a0ceac6
build: build @tomic/lib before the Tauri app, not after remembering to
joepio 2e496a2
test: cover the derived personal drive under SubtleCrypto
joepio 8606d40
fix(migration): run the legacy adoption once per agent
joepio 2fe356e
fix(migration): materialize the personal drive, don't only derive it
joepio ba91713
Revert "materialize the personal drive" — it minted hundreds of drives
joepio fdc7051
fix(lib): derive the personal drive from a deterministic signer
joepio 0409e86
fix(app): materialize the home drive at sign-in, and never repoint th…
joepio 313858d
fix(sync): live updates never landed — echo storm, racy suppression, …
joepio 7e68bf0
fix(sync): "Disconnect" must evict whichever connection holds the link
joepio e615b40
fix(sync): index what peers send, and report sync honestly
joepio f610ef8
fix(setup): onboarding must record the drive it just created
joepio 350b56b
feat(sync): a paired node may replicate what its owner can read
joepio 2b0f80b
feat(sync): say what the last sync with a peer actually moved
joepio a78ef9c
feat(sync): carry presence across a peer link
joepio f6f6932
fix(sync): detect a half-open peer link instead of writing into it
joepio 2961727
fix(sync): a peer that sends no keepalives is quiet, not dead
joepio 4ac1812
fix(sync): relay drive presence too, not just per-document ephemeral
joepio 6d503f6
fix(sync): the Sync page was wrong in three ways about a healthy link
joepio 7c8d472
fix(presence): a cursor for unsynced content must not throw
joepio 7a133fa
fix(sync): send the edit, not just the cursor, across a peer link
joepio dc3b2ba
feat(desktop): let an agent drive the app, so collab can be tested wi…
joepio 3e4d27c
docs(planning): a peer's new child resources never reach an open page…
joepio d7344dc
docs(planning): correct M10 — the row arrives, its contents do not
joepio e2136a0
docs(planning): the desktop app never retries after its server boots …
joepio b1a38e0
docs(planning): M11 — the reconnect never runs, and Retry retries the…
joepio cf3f1f2
fix(sync): label a snapshot as a snapshot on the external-change path
joepio 48873c2
docs(planning): reproduce M9b on a real document, and note sidebar or…
joepio a688375
fix(sync): recover when a live update can't apply, instead of losing …
joepio 57326a9
fix(table): draw rows that arrive from a peer instead of only this se…
joepio 1f359ca
docs(planning): M9b and M10a verified end-to-end
joepio 7d4f350
fix(ws): a connect that never opened must not pin the auth flag forever
joepio 48af0c2
fix(sidebar): stop keyless children sorting to the top of the tree
joepio 58b798f
style: oxfmt the two new test files
joepio 0ab22fa
test(e2e): let the storage-state origins follow FRONTEND_URL and SERV…
joepio 22ebab5
docs: renumber this branch's findings, and strip conflict markers fro…
joepio 06c59ce
fix(sync): the accepting side must not pair a peer just by recording …
joepio 31ae0b8
docs(planning): four problems from the two-person session (M17-M20)
joepio 5f4ebc2
docs(planning): rows are silently discarded when their class is missi…
joepio e50ed3c
fix(outbox): stop discarding table rows in silence when the class is …
joepio 2e8dd9d
docs(planning): a table writes its class to a different parent than i…
joepio 9cb6b7e
fix(validation): an unknown class must not reject the write
joepio 0b3a256
docs(planning): state of play for the two-person session findings
joepio e2fd7c5
fix(invite): land the invitee in the drive they were invited to
joepio 80c5ec6
docs(planning): M17 fixed, M18 root-caused, M22 found
joepio c1af9e9
fix(sync): reading someone else's resource must not queue a write to it
joepio 3ea75fa
docs(planning): M22 root cause, and the shape of an M18 fix
joepio 2b69cca
fix(auth): agents are publicly readable
joepio 3305479
docs(planning): M18 fixed by making agents public; M19 falls out of it
joepio b2d168d
fix(test): peer sync pulls must identify themselves as the drive's owner
joepio 8e522c0
fix(commit): a repeat materialization merges, flagged genesis or not
joepio 64fadb5
fix(sign-in): a drive we just wrote is not evidence that we have the …
joepio 63a9914
Revert "fix(sign-in): a drive we just wrote is not evidence that we h…
joepio 3a11d9c
docs(planning): the verification session — two branch failures fixed,…
joepio 46cbe2e
fix(sign-in): ask whether the data is here before writing the drive
joepio 4e51480
docs(planning): M23 fixed — the order was the bug, not the predicate
joepio bd6af81
fix(invite): carry the derived home drive through invite acceptance
joepio c9434e6
test(e2e): the offline drive this test creates has to be a non-person…
joepio 3f7b05b
docs(planning): the CI failure list, and a local harness that serves …
joepio 3a31a9a
fix(table): pressing enter must not be swallowed by the previous save
joepio da736bd
docs(planning): desktop <-> Home Assistant sync verified on today's b…
joepio d7754ee
test(e2e): guard the keystroke that arrives while the previous save i…
joepio 0e41c0a
docs(planning): the quick-add fix, and two ways CI lied today
joepio 07c5070
fix(table): queue the mid-save keystroke instead of letting saves ove…
joepio 0af67be
docs(planning): withdraw the runner-contention theory, and say what r…
joepio c85ae43
test(e2e): scope the websocket route to the server's own socket
joepio 8365a1f
fix(invite): accepting an invite must not repoint the device's node i…
joepio 46f798f
docs(planning): the contention was real — WSL loadavg just cannot see…
joepio File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Upgrade leaves WebCrypto home broken
High Severity
Restoring a pre-upgrade IndexedDB agent never backfills
personalDrive, andpersonalDriveSubjectthen throws for non-deterministic WebCrypto signers. Desktop/Tauri sessions stay “signed in” but cannot name or materialize the home drive until the secret is pasted again, with no forced re-auth path.Additional Locations (1)
browser/lib/src/agent.ts#L188-L201Reviewed by Cursor Bugbot for commit 46f798f. Configure here.