Conversation
- add durable loop scheduling, policy, audit, receipt, and cleanup state\n- isolate loop harness execution and expose safe loop observability\n- add guarded console controls, UI coverage, and operational docs
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
Post-PR review — pass 1/3Request changes: 2 Must Fix (1 security), 1 Should Fix.
All three are being repaired before browser QA. The full report is retained in the run artifacts; this comment records the PR state, not acceptance proof. |
|
Post-PR review pass 2/3: request changes — the three pass-1 findings are independently verified fixed, and the full gate remains green (591 backend + 21 console tests, one existing guarded skip). One remaining Must Fix security boundary was reproduced: Evidence: |
|
Post-PR review pass 3/3: request changes — all prior findings, including authenticated loop-draft response redaction, are verified fixed. The final full gate is green (593 backend + 21 console tests; one existing guarded skip). One new Must Fix deployment issue remains: Evidence: |
|
Post-review paired refactor audit: 2 Critical, 7 Warning after max-severity merge. Reproduced blockers:
Important repairs also queued: reason + confirmation for retry/cancel, abortable loop polling, post-terminal config refresh, slash-command-safe skill inventory, revision-bound fresh loop capacity, truthful run-id navigation, and decomposition of the dense loop UI. Both audit plans and the merged dispatch are retained under |
Summary
Adds a loopback-only Orchestra Console for observing daemon health, runs, sub-agent timelines, MCP servers, skills, and harnesses; safely previewing and confirming a bounded set of daemon operations; and managing fixed-interval declarative agent loops.
This replaces routine SSH-only inspection and configuration work while preserving the local machine trust boundary: the console binds only to
127.0.0.1, rejects invalid Host/Origin/CSRF contexts before reading mutations, never exposes stored secrets, and offers no arbitrary command surface. The daemon remains the authority for execution, capacity, recovery, and audit state.Done means: a logged-in Mac Mini user can use
http://localhost:8790to observe and safely operate the daemon, while remote URL access, arbitrary execution, synthetic Linear traffic, and unbounded scheduling remain impossible.Visual overview
Approved console direction used to implement the local control plane:
After-shots: landing with the QA drive.
User journeys
J1 — Observer: open the local console, understand aggregate health, inspect a run and its invocation timeline, then follow an exact Linear or artifact link only when one exists.
J2 — Operator: review dependency/configuration state, draft a supported operation, inspect the redacted before/after and impact, supply a reason, then confirm one audited operation with health acceptance or rollback.
J3 — Automation owner: define a bounded fixed-interval agent loop, confirm and enable it, observe deduplicated occurrences in normal run history, and recover retained cleanup before explicitly re-enabling.
Coverage gap: direct access from a second logged-in Mini account and real LaunchDaemon operation are intentionally left to the human because this run does not mutate the live Mini.
Verification
127.0.0.1, reject non-loopback values, and expose no LAN/public route.pnpm install --frozen-lockfile, backend/console typecheck, and the production build pass from the one pinned pnpm workspace.Manual tests
Must (auth/data/process safety):
loop_revision_changedand blocked state remain intact.Important (user-facing):
Areas not affected: the public webhook hostname, Cloudflare tunnel routing, Linear webhook signatures, and consumer-repo skill sync.
QA results
Pending — the three-pass correctness/security loop is repaired, including deploy command parity. The required paired refactor audit then reproduced two additional blockers (runtime/snapshot default drift and a reload path that restarted without deploying) plus state-freshness, confirmation, inventory, and maintainability warnings. Their merged repair is in progress before scoped adversarial review and the single Playwright QA drive.
Deploy notes
DAEMON_CONSOLE_BIND_ADDR=127.0.0.1,DAEMON_CONSOLE_PORT=8790(or another free loopback port), andDAEMON_CONSOLE_CAPABILITY_MODE=read-onlyor explicitlylocal-trustedin the site config. LeaveLINEAR_WORKSPACE_BASE_URLunset until the exact workspace base is confirmed; links fail closed when absent.EventLog; there is no manual external database SQL or staging environment for this local daemon.pnpm --frozen-lockfile.Residual risks
local-trustedintentionally trusts every logged-in local desktop user; remote identities and RBAC belong to the separate remote-access item.