Repository navigation
AgentsView archive unit with --require-auth; the workstation runs it - #404
Merged
seathatflowsinourveins merged 1 commit intoSep 27, 2026
Merged
Conversation
seathatflowsinourveins
force-pushed
the
claude/agentsview-require-auth-20260927
branch
from
September 27, 2026 15:00
70c3740 to
ad779e6
Compare
seathatflowsinourveins
pushed a commit
that referenced
this pull request
Sep 27, 2026
…ding, config-level require_auth Answers the GPT-6 review of ad779e6 (needs_changes: P2, P3) and the coordinator's own pre-merge check, in the one repair round. - P2 (docs/acceptance-evidence-policy.md:42): the persistence receipt now runs the identical status check against an isolated instance started without require_auth (scratch HOME and data dir, port 17399). It returned root=200 api_ping=200 api_sessions=200 and the check exited 1, asserted nonzero, next to the passing run on the unit (200/401/401). - P3: the docs and the unit example no longer say "every token check". v0.43.0 checks no token on the dashboard's own /api/ routes, while the remote-sync, raw-sync and artifact-exchange routes keep their own auth (auth.go#L110-L161). Host and Origin checks stop browser pages, not local programs. - require_auth also goes into the archive's config.toml (examples/ agentsview.toml.example; on the workstation, appended without reading any value): a read without --server starts a detached daemon when none runs (transport.go#L275-L303), and that daemon reads the config, not the unit's flags, and syncs, since NoSync has no config key (config.go#L711). - Docs: the data-dir form cites the transport from source; a direct NO_DAEMON write is refused while the unit runs (main.go#L1421-L1427); the pricing refresh still reaches raw.githubusercontent.com and openrouter.ai; the workstation archive is the default directory with no allowlist. - The receipt's claim stays within its printed output (no transport claim), adds the config check, and records at catalog_revision a42f0f7 on main rather than the branch commit, which a squash merge would orphan. Tests: 26 covering modules, 1722 run, OK. validate.py and host_receipts.py validate (168) passed; git diff --check clean. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5
Collaborator
Author
|
GPT-6 cross-family review of
Also in this round, from the coordinator's pre-merge check:
Checks: 26 covering modules, 1722 run, OK; 🤖 Generated with Claude Code |
The adopted agentsview-archive.service now passes upstream --require-auth. Without it, v0.43.0 skips every token check on /api/ (auth.go), and the API includes session resume/open actions that start programs (openers.go) plus a terminal setting that picks what they start; with WSL mirrored networking, Windows processes share the loopback address. - examples/agentsview-archive.service.example: --require-auth, with the reason. - docs/native-dashboards.md: a dated "Token on the archive API" section (the UI prompts once for config.toml auth_token; the data-dir CLI form finds the daemon and sends the token; explicit --server needs --server-token-file), a 401 check line, the alternatives and the overturn condition. - docs/native-dashboard-data.md and native-dashboard-operations-resolution.md: a dated note after their --server commands. - recipes/README.md History and usage, and the manual start in docs/native-dashboards.md: serve with --require-auth too (at 0.43.0 an explicit port that is taken is not an error, so the recipe's server would otherwise start elsewhere without a token). - evidence/hosts: persistence receipt from scripts/host_receipts.py record (native_proven): unit enabled and active with the flag; without a token / 200 and /api/ping, /api/v1/sessions 401; data-dir CLI listed 11 projects; explicit --server without a token file returned HTTP 401. Tests: 26 covering modules, 1722 run, OK. validate.py and host_receipts.py validate passed. Repair round (GPT-6 review of ad779e6: P2 discriminating control, P3 scoped wording): - P2 (docs/acceptance-evidence-policy.md:42): the persistence receipt now runs the identical status check against an isolated instance started without require_auth (scratch HOME and data dir, port 17399). It returned root=200 api_ping=200 api_sessions=200 and the check exited 1, asserted nonzero, next to the passing run on the unit (200/401/401). - P3: the docs and the unit example no longer say "every token check". v0.43.0 checks no token on the dashboard's own /api/ routes, while the remote-sync, raw-sync and artifact-exchange routes keep their own auth (auth.go#L110-L161). Host and Origin checks stop browser pages, not local programs. - require_auth also goes into the archive's config.toml (examples/ agentsview.toml.example; on the workstation, appended without reading any value): a read without --server starts a detached daemon when none runs (transport.go#L275-L303), and that daemon reads the config, not the unit's flags, and syncs, since NoSync has no config key (config.go#L711). - Docs: the data-dir form cites the transport from source; a direct NO_DAEMON write is refused while the unit runs (main.go#L1421-L1427); the pricing refresh still reaches raw.githubusercontent.com and openrouter.ai; the workstation archive is the default directory with no allowlist. - The receipt's claim stays within its printed output (no transport claim), adds the config check, and records at catalog_revision a42f0f7 on main rather than the branch commit, which a squash merge would orphan. Tests: 26 covering modules, 1722 run, OK. validate.py and host_receipts.py validate passed; git diff --check clean. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
seathatflowsinourveins
force-pushed
the
claude/agentsview-require-auth-20260927
branch
from
September 27, 2026 15:47
4924d26 to
a82827c
Compare
seathatflowsinourveins
deleted the
claude/agentsview-require-auth-20260927
branch
September 27, 2026 16:12
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
The adopted AgentsView archive unit now requires a token on its API, and this workstation runs it.
Why. In agentsview v0.43.0, with
require_authoff, the auth middleware checks no token on the dashboard's own/api/routes; only the remote-sync, raw-sync and artifact-exchange routes keep their own authentication (internal/server/auth.go#L110-L161).POST /sessions/{id}/resumeand/open, which start programs (openers.go,exec.Command).POST /api/v1/config/terminal, which saves a custom terminal binary and argument template for them to start (huma_routes_config.go:19,119-157).The upstream
--require-authflag closes this. Static pages stay open, so the interface loads and asks once for theauth_tokenin the archive'sconfig.toml. Serve never prints the token (main.go:150-156 in both 0.43.0 and 0.44.0).Changes
examples/agentsview-archive.service.example:--require-auth, with the reason.examples/agentsview.toml.example:require_auth = true, because a read without--serverstarts a detached daemon when none runs (transport.go#L275-L303); that daemon reads the config, not the unit's flags, and it syncs, sinceNoSynchas no config key (config.go#L711). On the workstation the line was appended to~/.agentsview/config.tomlwithout reading any value.docs/native-dashboards.md: a dated "Token on the archive API" section:--serverneeds--server-token-file;AGENTSVIEW_NO_DAEMON=1write is refused while the unit runs (main.go#L1421-L1427);docs/native-dashboard-data.mdanddocs/native-dashboard-operations-resolution.md: a dated note after their--servercommands, which now return 401 without a token file.recipes/README.md(History and usage) and the manual start indocs/native-dashboards.md:servewith--require-authtoo.serve_runtime.go:39-48prints "Port %d in use, using %d", so the recipe's server would otherwise start on another port without a token.projectsandsession searchcalls send the token themselves.evidence/hosts/…--agentsview--persistence--20260927.json: a receipt fromscripts/host_receipts.py record,native_proven, catalog revisiona42f0f7f(on main, so a squash merge cannot orphan it).Evidence (the receipt's own output)
enabled / active / unit_require_auth_flag_presentarchive_config_require_auth_lines=1root=200 api_ping=401 api_sessions=401require_auth(port 17399)root=200 api_ping=200 api_sessions=200, check exit 1, asserted nonzerodata_dir_form_projects 11--serverwithout a token fileHTTP 401: UnauthorizedLimitations:
--no-sync.Verification
python3 -m unitteston the 26 modules that reference these paths: 1722 run, OK (41 skipped).python3 scripts/validate.pypassed;python3 scripts/host_receipts.py validatepassed (168 receipts).a42f0f7fper the hot-file protocol; the manifest re-registration matched the commit.ad779e61: needs_changes (P2 control, P3 wording); both are fixed in4924d26a, the one repair round.Coordination
token-efficiency-evidence-cardsowns the agentsview 0.44.0 qualification. It holds the pin at 0.43.0 and asked for this to stay a separate PR. It recorded the port constraint for a later re-pin: the unit holds 17384, and 0.44.0 hard-errors on an occupied explicit port (serve_runtime.go:61-65), sorecipes/README.md:772will need--port 0or the unit's server.SOTA sources
agentsview v0.43.0 at 9be7745ad1906ee24e04eb05bb86c872ef0939a1:
internal/server/auth.go;internal/server/huma_routes_sessions.go:44,47;internal/server/huma_routes_config.go:19;internal/server/openers.go;cmd/agentsview/main.go:150-156;cmd/agentsview/session_sync.go:66-70;cmd/agentsview/serve_runtime.go:39-48;serve --helpandsession list --helpflags--require-authand--server-token-file.v0.44.0:
cmd/agentsview/serve_runtime.go:57-65.🤖 Generated with Claude Code
https://claude.ai/code/session_012qwXNtFyUhY5x2dtrm7tG5