You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The fork server's route auth is verifiably a no-op without a server password — any localhost page can drive the amicode routes (ADR 0002, graft 1).
Approach
The extension mints a cryptographically random per-boot server password and injects it into the opencode server spawn env; the app's existing authenticated-fetch path carries it. Never persisted, never logged. Code lands in the amicode extension.
Acceptance Criteria
The spawn env includes the password variable with a fresh random value per activation — the test asserts exactly the keys the extension adds (the server inherits the host env by platform design; that inheritance is out of scope).
With the password set, an unauthenticated request to an amicode route is rejected (asserted against the fork's auth-layer contract).
The password value appears in no output channel or log line (scan test).
A restart mints a different value.
Testing Decisions
Extend the existing extension spawn/config-injection tests (the boot-smoke suite stays scope-pure per the parent). New tests only for the mint + added-env assertion.
Key Decisions
Per-boot random, in-memory only; no file, no setting.
Source
Part of #159 · ADR 0002 graft 1 (PR #158) · Blocked by: none · Lands in: amicode extension
Important
Problem
The fork server's route auth is verifiably a no-op without a server password — any localhost page can drive the amicode routes (ADR 0002, graft 1).
Approach
The extension mints a cryptographically random per-boot server password and injects it into the opencode server spawn env; the app's existing authenticated-fetch path carries it. Never persisted, never logged. Code lands in the amicode extension.
Acceptance Criteria
Testing Decisions
Extend the existing extension spawn/config-injection tests (the boot-smoke suite stays scope-pure per the parent). New tests only for the mint + added-env assertion.
Key Decisions
Source
Part of #159 · ADR 0002 graft 1 (PR #158) · Blocked by: none · Lands in: amicode extension