- detect OpenCode v2 (serve --help has --service) and configure it with 'opencode service set hostname/port/password/cors'; the unit runs 'opencode serve --service' (what the v2 manager spawns)
- v2 stores the password in OpenCode's own service config; v1 keeps the EnvironmentFile + flags
- password-based (portable) access for the web app: Add server -> address + password, username 'opencode'
- README documents v2 vs v1
- --cors ORIGIN (repeatable) and an interactive CORS prompt; adds --cors to ExecStart
- warn when a password is set with a username other than 'opencode' (the web UI always authenticates as opencode)
- README: --cors + the 'don't stack two basic-auth layers' note
- the OpenCode web app's 'Add server' dialog asks for server address + password; the username defaults to 'opencode' and is never sent by the browser
- so the installer no longer asks for a username (a custom one would break the web login); --username/OPENCODE_SERVER_USERNAME remain for API clients
- README explains the add-server dialog and what to enter
- install-service.sh: interactive password prompt (hidden input); --password/--username/--no-password and OPENCODE_SERVER_PASSWORD/USERNAME env
- credentials are written to a root-only env file (mode 600) referenced by the unit via EnvironmentFile=; the password never appears in the unit
- unit name/env path overridable for testing (OPENCODE_SERVICE_NAME, OPENCODE_ENV_FILE)
- README documents the auth option
- new install-service.sh: creates/removes the OpenCode web UI systemd service as its own process (interactive by default, flags for automation, --uninstall, --dry-run, backs up an existing unit)
- install.sh no longer embeds the service logic; run_service_setup locates the sibling script (or downloads it) and invokes it as a separate process
- README documents running install-service.sh on its own
- prompts (location, OpenCode activation, web UI service, collision strategy) now read from the controlling terminal, not stdin
- have_tty()/tty_read() helpers; all read sites routed through tty_read
- previously 'curl | bash' had no TTY on stdin, so every prompt was silently skipped
- README: note the one-liner is interactive (and falls back to safe defaults in CI)
- ensure_opencode no longer reports 'already installed' when the binary exists but isn't reachable; it now reports the PATH gap
- activate_opencode: explains the rc line / 'source ~/.bashrc', and interactively offers to symlink opencode into /usr/local/bin so it works immediately in every shell
- post-install hint reflects whether opencode is actually on PATH
- README: PATH & activation section
- install.sh: at the end of an interactive install, offer to set up the OpenCode web UI as a systemd service. Prompts for bind address (default 127.0.0.1), port (4096), working dir and enable-on-boot, shows the unit, then asks to install. --service/--no-service for scripting; off by default non-interactively. Non-systemd hosts get the manual command.
- fix: perform_install returned non-zero under set -e, aborting the post-install and service steps
- README: repository is now public (quick curl|bash install, no token); document the web UI service and its security default
- install.sh now ensures the OpenCode runtime is present: detects it on PATH or at $HOME/.opencode/bin, and otherwise runs the official installer (opencode.ai/v2/install)
- new flags: --with-opencode, --no-opencode, --opencode-version V, --opencode-no-path
- --dry-run never installs the runtime; OPENCODE_INSTALLER_URL can be overridden (mirrors/tests)
- README documents the all-in-one behaviour and the new runtime flags
- agent/subagents/openagent.md: drop the embedded GMS AGENTS.md (repo URL, Codi/Sam, FOR-CLAUS, Go/domain rules); generic builder whose name+role come from the task prompt
- introduce two named parallel builders (defaults: Leo and Mia) for two components
- escalation now happens in chat, not via an escalation file
- README updated to match (named builders, no escalation file); OpenArchitect.md personal absolute path -> .opencode/context
- remove the GMS reference project, the Codi/Sam role names and the FOR-CLAUS escalation file
- rename the escalation queue to FOR-HUMAN.md and note the file names are a convention
- state that the Architect + builders pattern is project-agnostic and reusable across repositories
- README rewritten around the Controlling Architect concept (spec -> build -> report -> verify), the architect/builder agency and the channels; upstream README preserved as README.upstream.md
- install.sh: fork-native installer adapted from Darren Hinde's OAC installer. Syncs the complete .opencode payload (no registry), supports local/global/custom, skip/overwrite/backup, --source/--token/--branch/--yes/--force/--dry-run