Skip to content

Show other local accounts' Commands read-only in Console and status - #1452

Merged
JacobStephens2 merged 12 commits into
mainfrom
issue-1446
Oct 28, 2026
Merged

JacobStephens2 merged 12 commits into
mainfrom
issue-1446

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

The Console serving one OS account now includes opted-in readable Commands from other local accounts, including Needs you and its tab count. status follows the same setting.

[console].other_accounts = "none" | "readable" | ["conductor"]
  → passwd homes + readable logs.dir overrides
  → Console views / status / log readers
      own Commands: existing controls
      other accounts: owner tag, read-only

Setup and thirdshift console other-accounts set/show the choice. Named unavailable accounts are reported once by status; filesystem permissions or ACLs grant access. Stop, Requeue, Dismiss and Undo refuse foreign Commands before writing or signaling.

Closes #1446

Test seams: User config and Setup; local-account source discovery; shared Command observation and Inbox presentation; CLI and Console HTTP reads and Stop/Dismissal requests.

Evidence

  • Before: the new CLI/source regressions failed (unknown setting command; only the serving account's Command appeared). Reviewer reproductions also failed for trailing-slash log roots, unreadable foreign logs and Session traces, and Lanes/Stages.
    After: cargo test --test console other_accounts passes all 7 retained regressions, including live-process/no-write assertions, foreign-only status, foreign Process naming, and unreadable Session-trace isolation. Each reviewer's exact behavior reproduction now passes.
  • cargo test --bin thirdshift setup::: 61 passed; focused Setup integration passed. Captured-inventory tests: 4 passed. Command-surface tests: 20 passed, 1 fixture entry ignored.
  • cargo fmt --check and cargo clippy --all-targets -- -D warnings pass.
  • scripts/affected-tests main passes on the reconciled head f23c133f: full Rust suite and 51 public-site browser tests. Measured with /usr/bin/time -p: 1644.21s wall for the required validation, compilation included. The existing Process heading test also passes.
  • npm test --prefix console: 106 browser tests passed on the final implementation.
  • Independent reviews against main, including a fresh review after merging upstream: Standards 2 findings, Spec 4; all addressed. Both axes cover every changed file. Generated output was inspected directly; no exclusions or unread changed files.

Merge Danger

Door: two-way

Blast Radius: Console

The default remains the serving account only. Other-account sources are read-only and require existing filesystem access; rollback restores the previous views without changing their records.

Unaddressed findings

Standards

None.

Spec

None.

Security

None.

Built with codex codex-cli 0.164.0 · gpt-6.1-sol · xhigh

Security review outcome

No unaddressed introduced findings.

CI notes

  • site-test job 122443333941 was cancelled after 3h24m during the unchanged npx playwright install --with-deps chromium step while APT retried azure.archive.ubuntu.com; npm test never started. The branch changes none of .github/workflows/ci.yml, site/package.json, site/package-lock.json or site/tests/**, and the same installer succeeded in console-test on this head. Locally, npm test --prefix site passed all 51 tests (0 skipped).

  • Local scripts/affected-tests main (574.69s, cached compilation) passed all 51 site tests and 141 Console integration tests, then stopped in code_graders::snapshot_preserves_files_directories_and_symlinks_but_skips_special_files: the fixture failed launching a freshly copied binary at tests/experiments.rs:791 with ETXTBSY / "Text file busy", before the snapshot assertion. The test, fixture and Code Grader are unchanged against main; the exact focused rerun passed (1/1), and the Rust CI job for head 7455dd69 succeeded. No unrelated code was changed; the local full suite did not complete.

# Conflicts:
#	src/logs/status/inbox.rs
#	src/logs/status/time.rs
An opted-in account's issue URL and repository were interpolated into the serving account's gh GraphQL query and security-advisory path. Accept only a GitHub name on each side of owner/repo, and skip an invalid findings repository without failing the rest of the refresh.
show --spans followed a Session path from another account's Command record and printed the trace. Keep the path only when it is a regular file inside that record's directory.
Preserve other-account tags alongside the Inbox's split repository and issue-number subjects. Keep both site documentation additions, cover the combined desktop layout, and remove the unnecessary Session predicate borrow reported by Clippy.

Validation: cargo fmt --check; cargo clippy --all-targets -- -D warnings; node --test console/tests/inbox.test.cjs (57 passed); scripts/affected-tests main (site browser checks and full Rust suite passed).
A live Inbox refresh could remove the synthetic account tag between its insertion and measurement. Perform both in one browser task, retaining every layout assertion.

Compile shell_quote only on Linux, matching its sole test caller and preventing dead-code failures in macOS Clippy.

Validated with the forced-refresh reproduction, 111 Console browser tests, scripts/affected-tests origin/main (1681.77 seconds, compilation included), cargo fmt --check, and Linux Clippy with warnings denied. An isolated macOS-target helper compile also passes; full macOS cross-validation is blocked by the missing Apple C toolchain.
The account-aware migration left load_details compiled in every test build while its only caller lived in the Linux-only metrics module. This made the macOS Clippy gate fail on dead_code. Remove the duplicate loader and exercise details_for_user from the existing regression, preserving every assertion.

Validation: cargo fmt --check; cargo clippy --all-targets -- -D warnings; all four metrics tests; scripts/affected-tests main (1545.95s, compilation included, full Rust suite and 51 site checks). A temporary build excluding the Linux-only metrics module reproduced the CI diagnostic before this fix and passes afterward. Native macOS execution was unavailable on this Linux host.
@JacobStephens2
JacobStephens2 merged commit 34c85a4 into main Oct 28, 2026
18 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-1446 branch October 28, 2026 00:07
@JacobStephens2 JacobStephens2 mentioned this pull request Oct 28, 2026
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.

Console: opt-in setting to show other local accounts' Commands (read-only)

1 participant