Skip to content

Add Console accounts and sign-in - #860

Merged
JacobStephens2 merged 9 commits into
issue-776from
issue-821
Oct 20, 2026
Merged

JacobStephens2 merged 9 commits into
issue-776from
issue-821

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

Console request
  sign-in form + CSRF → allowlist + password → session cookie
  page / stream → current allowlist + live session → shared CLI data
  sign-out + CSRF → revoke session

Closes #821

Adds owner-only account storage, argon2id passwords, sliding 30-day sessions,
per-address slowdown, CLI account controls, and a Console log shared with the page.
Allowlist removal revokes sessions while retaining the account.

Evidence

Test seams: the binary with a controlling terminal; HTTP pages, actions and streams; the shared account-store interface with a clock and isolated files.

  • Before: console refused authenticated startup; the review reproduction for
    console sign-out --json failed with a usage error.
    After: HTTP/binary account tests pass, including private password prompts,
    CSRF rejection, revocation across CLI/server processes and open streams, and
    JSON sign-out. The exact review reproduction passes; the regression is retained
    in tests/console/accounts.rs.
  • Before: the clock tests reproduced missing session expiry and slowdown.
    After: all three account-store tests pass, including the exact 30-day and
    one-minute boundaries. All 12 Console Playwright tests pass, including sign-in
    and sign-out without JavaScript on a 390 px phone viewport.
  • Before: the Standards review's exact Theme command showed missing Themes on
    Account and Console log. After: that command passes; retained HTTP tests
    cover both explicit Themes and the browser test checks dark appearance with an
    OS light preference. All 19 Console HTTP tests pass, including authorization on
    the base branch's History, Security, peek and log routes.
  • Final Rust suite: 2,012 passed, two intentionally skipped (cargo nextest run).
    Formatting and Clippy pass. An earlier run overlapped the binary rebuild and
    had two Console startup failures; the complete stable-binary rerun passes.

Merge Danger

Door: two-way

Revert the code to roll back; account and Console log files remain on the machine.

Blast Radius: Console

Authentication and account events, plus terminal input shared with Setup.

Unaddressed findings

Standards

None. All five findings addressed: JSON sign-out, shared account-page templates,
typed Console log event kinds, configured Themes and shared navigation.

Spec

None. No findings.

Review coverage

Both independent reviewers read all 26 changed paths against issue-776 at
5af85a5, including changes after reconciling the updated base. Final reviewed
HEAD: e043b52. No generated-output exclusions or unread changed files.

Built with codex · gpt-6.1-sol · high

The new password helper assumed Linux libc signatures. Pass mutable null pointers to openpty and infer ioctl's request type, matching the existing terminal test support.

Validated the exact helper against aarch64-apple-darwin libc: reproduced both E0308 errors before the fix and passed afterward. All 19 Console integration tests, cargo fmt --check, and cargo clippy --test console -- -D warnings pass on Linux.
Preserve account forms and navigation alongside Lanes and Stages. Register the time pages as authenticated GET routes and retain coverage for sign-in, themes, and navigation. Keep g a for Account and use g b for Lanes to avoid the shortcut collision.
Preserve authenticated Console routes and account navigation alongside Waterfall. Retain both Waterfall CLI pairs, key 4 and jump f, and the existing Account and Lanes shortcuts. Extend HTTP authorization coverage to all Waterfall URLs.
Preserve Console authentication alongside live Inbox updates. Recheck sessions on the events stream and stop the observer before restarting the Console.
@JacobStephens2
JacobStephens2 merged commit 7788650 into issue-776 Oct 20, 2026
19 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-821 branch October 20, 2026 06:35
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