chore(site): re-record the demo replay for the editor sign-in pages #194

Merged
ryangr0 merged 2 commits from ryangr0/vloer-editor-sign-in-approval into development 2026-10-04 08:39:14 +00:00 AGit
Owner

The browser gained the editor approval and Signed-in editors pages and the
replay refuses their routes, so the recorded file hashes changed.

Three commits: Vloer ADR-0037 (accepted per the owner's 2026-10-03 go-ahead on the ticket), the fix, and a separate chore(site) replay re-record. Signing in only claims the editor ticket; the person must approve on a page showing the same user code as VS Code. Approval mints a separate 30-day vle_ bearer credential (hash-only in SQLite, editor scope cannot approve or mint more, revocable in Settings › Signed-in editors; revocation also kills its Agent Host tokens). The original phishing flow is a test and now fails. RELEASE NOTE: a VS Code extension built before this change cannot complete browser sign-in against the new server; update both together.

Verified with mise run verify on the pinned toolchain (all gates passed).

Ticket: https://vikunja.webgrip.dev/tasks/1718

🤖 Generated with Claude Code

The browser gained the editor approval and Signed-in editors pages and the replay refuses their routes, so the recorded file hashes changed. Three commits: Vloer ADR-0037 (accepted per the owner's 2026-10-03 go-ahead on the ticket), the fix, and a separate chore(site) replay re-record. Signing in only claims the editor ticket; the person must approve on a page showing the same user code as VS Code. Approval mints a separate 30-day vle_ bearer credential (hash-only in SQLite, editor scope cannot approve or mint more, revocable in Settings › Signed-in editors; revocation also kills its Agent Host tokens). The original phishing flow is a test and now fails. RELEASE NOTE: a VS Code extension built before this change cannot complete browser sign-in against the new server; update both together. Verified with `mise run verify` on the pinned toolchain (all gates passed). Ticket: https://vikunja.webgrip.dev/tasks/1718 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Anyone could start an editor sign-in and collect a full workbench session
for whoever signed in through the link, which made the flow a phishing kit.
ADR-0037 records the approval page with a shared code, a separate
editor-scoped bearer credential with its own lifetime that the person can
see and revoke, the rate limits, the threat model (RFC 8628 remote phishing
by analogy) and the options considered. The owner approved the approach on
2026-10-03.

VIK-1718
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signing in through an editor's link no longer completes the ticket. The
callback records who signed in and lands on an approval page that names the
request ("A VS Code editor is asking to sign in to <workbench> as you"),
shows the short code the editor also shows, and offers Approve and Deny.
Polling stays pending until approval; a denied, expired, consumed or
mismatched ticket yields nothing.

Approval issues a vle_ bearer token, stored only as a hash in
editor_credentials, scoped to keep it from approving or managing editors,
valid for thirty days, and listed under Settings > Signed-in editors where
the person can sign it out together with the Agent Host tokens it issued.
Ticket starts are limited per address and polls answer slow_down when they
come too fast. The extension shows the code, honours slow_down and sends
the credential as Authorization: Bearer.

VIK-1718
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
chore(site): re-record the demo replay for the editor sign-in pages
Some checks failed
[Workflow] On Pull Request / checks (pull_request) Failing after 9m17s
[Workflow] On Pull Request / release-policy (pull_request) Successful in 38s
[Workflow] On Pull Request / warnings (pull_request) Has been cancelled
26648db057
The browser gained the editor approval and Signed-in editors pages and the
replay refuses their routes, so the recorded file hashes changed.

VIK-1718
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ryangr0 force-pushed ryangr0/vloer-editor-sign-in-approval from 26648db057
Some checks failed
[Workflow] On Pull Request / checks (pull_request) Failing after 9m17s
[Workflow] On Pull Request / release-policy (pull_request) Successful in 38s
[Workflow] On Pull Request / warnings (pull_request) Has been cancelled
to b9d707ba5a
Some checks failed
[Workflow] On Pull Request / ploeg-pin (pull_request) Successful in 1m58s
[Workflow] On Pull Request / checks (pull_request) Failing after 5m56s
[Workflow] On Pull Request / release-policy (pull_request) Successful in 1m44s
[Workflow] On Pull Request / warnings (pull_request) Successful in 0s
2026-10-04 00:16:28 +00:00
Compare
ryangr0 force-pushed ryangr0/vloer-editor-sign-in-approval from b9d707ba5a
Some checks failed
[Workflow] On Pull Request / ploeg-pin (pull_request) Successful in 1m58s
[Workflow] On Pull Request / checks (pull_request) Failing after 5m56s
[Workflow] On Pull Request / release-policy (pull_request) Successful in 1m44s
[Workflow] On Pull Request / warnings (pull_request) Successful in 0s
to d6aa7e81f5
Some checks failed
[Workflow] On Pull Request / warnings (pull_request) Has been cancelled
[Workflow] On Pull Request / ploeg-pin (pull_request) Has been cancelled
[Workflow] On Pull Request / release-policy (pull_request) Has been cancelled
[Workflow] On Pull Request / checks (pull_request) Has been cancelled
2026-10-04 07:09:01 +00:00
Compare
ryangr0 force-pushed ryangr0/vloer-editor-sign-in-approval from d6aa7e81f5
Some checks failed
[Workflow] On Pull Request / warnings (pull_request) Has been cancelled
[Workflow] On Pull Request / ploeg-pin (pull_request) Has been cancelled
[Workflow] On Pull Request / release-policy (pull_request) Has been cancelled
[Workflow] On Pull Request / checks (pull_request) Has been cancelled
to 9ada416ab3
All checks were successful
[Workflow] On Pull Request / ploeg-pin (pull_request) Successful in 36s
[Workflow] On Pull Request / release-policy (pull_request) Successful in 40s
[Workflow] On Pull Request / checks (pull_request) Successful in 5m0s
[Workflow] On Pull Request / warnings (pull_request) Successful in 0s
2026-10-04 07:12:43 +00:00
Compare
ryangr0 merged commit d1506e055c into development 2026-10-04 08:39:14 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
webgrip/unfold!194
No description provided.