Skip to content

Serve the localhost Console Inbox with Focus - #850

Merged
JacobStephens2 merged 4 commits into
issue-776from
issue-817
Oct 19, 2026
Merged

JacobStephens2 merged 4 commits into
issue-776from
issue-817

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Summary

Serve this machine's Inbox on localhost, using the same blocking observations, groups and words as status.

Command records and logs
└── shared Inbox
    ├── thirdshift status [--json]
    └── thirdshift console --no-sign-in
        └── 127.0.0.1 → Inbox · Focus auto/light/dark

The binary embeds compile-time HTML templates, the versioned libraries and Latin WOFF2 fonts. The header names the machine and links to configured Consoles. Replacing the binary re-executes the Console with its original arguments. Sign-in and live updates remain with the later Tickets.

Closes #817

Evidence

  • Before: the HTTP test failed because console was treated as an invalid Issue URL. The nested-Run test then caught escaped HTML being displayed as text.
    After: cargo test --test console passes all four HTTP/CLI tests, including grouping/order parity with status --json, escaped titles, nested Runs, Ticket plans, local assets and executing a replacement binary.
  • Before: the Spec review's injected /unpaired route passed the parity test.
    After: the unchanged reproduction makes the actual parity test reject that route. The retained parity_rejects_a_route_registered_without_a_cli_pair regression passes.
  • Final checks: cargo test (full suite passed, two existing ignored probes); cargo fmt --check; cargo clippy --all-targets -- -D warnings; cd console && npm test (4 passed); cd site && npm test (20 passed). cargo package --locked --offline also compiled the packaged sources without Node/npm.

Test seams

  • The running thirdshift console binary over HTTP, with isolated User config and fixture Command records; the CLI startup/refusal and binary-replacement behavior.
  • The Console's actual registered routes and their paired CLI commands, including an unpaired-route rejection.
  • Playwright against the running Console: 390 px overflow, folds, local requests/fonts, all section headings at 1440 × 900 with ten Needs you items, and automatic/explicit light/dark rendering without JavaScript.
  • Existing thirdshift setup and cargo package --list tests extended for the Console defaults and embedded files.

Review coverage

Reviewed against issue-776 on origin, pinned to 87ca83bd306e764f4787222fb7df239a2eb2b36e. Standards and Spec each read 33 changed files and confirmed four vendored-output exclusions. Standards' duplicated dark palette and Spec's incomplete parity check are addressed.

Both axes intentionally left these vendored outputs unread as source, after byte-for-byte checks against the documented upstream versions, font metadata inspection and browser resource/font checks:

  • src/console/assets/vendor/htmx-2.0.7.min.js
  • src/console/assets/vendor/idiomorph-0.7.4.min.js
  • src/console/assets/fonts/ibm-plex-sans-latin.woff2
  • src/console/assets/fonts/ibm-plex-mono-latin.woff2

Both axes left src/setup.rs unread: the final five-line change completes an existing test fixture with the Console defaults after the review passes. Its focused test and the full suite pass. No other changed file is unread.

Unaddressed findings

Standards

None.

Spec

No confirmed finding remains unaddressed. A fold-restoration concern was withdrawn: #776's Implementation Decisions explicitly place “what's folded” in per-browser local storage. console.js:6 restores that choice; fresh visits open Needs you. This follows an existing plan decision and needs no new Day shift decision.

Merge Danger

Door: two-way

Blast Radius: Console

Adds an explicitly requested, localhost-only reader. Existing Commands keep their blocking execution model; shared Ticket wording is reused by the page and CLI. Setup now completes the Console defaults in the User config.

Built with codex · gpt-6.1-sol · high

The copied executable could fail to spawn with ETXTBSY when a concurrent test child inherited fs::copy's write handle. Copy in a separate cp process, as the existing replacement-test helper does, and wait for it to finish before launching the Console.

Validated the exact failure with a forced inherited-writer reproduction before the fix and its passing result after it; cargo test, cargo fmt --check, and cargo clippy --all-targets -- -D warnings pass.
@JacobStephens2
JacobStephens2 merged commit 37b87de into issue-776 Oct 19, 2026
19 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-817 branch October 19, 2026 23:44
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