Dashboard › opencode › Distillation
29f9cfd7-4907-4991-9f25-959c552c5d86["lore_tm_v1_vh8inVJ0ksaDEs6GxBQwmVingu-NTQXR9MOCdJ24yKc","lore_tm_v1_vNU63jS5TSo0lEkuonu5H25u6q4x3hBeWTJwr0UHyaU","lore_tm_v1_XzrQchZMGl4wuEXUXtdwbmAaXo0rSEfe93pvAa9bMto","lore_tm_v1_8KrqDD7QkkI3LX1EUQTTWzNITYge2KXnt1GqE1DS-4E","lore_tm_v1_J4j7C6-l0_IkPf9l09JUDVGuRTQbreQHhA7BH4Y9DVA","lore_tm_v1_WOcaytYQBsuZmIiau7E3s-WtKAxnqv388vzYFAyGYw8","lore_tm_v1_ouEGLAoIIg_IhSvfPhHbKe3pcfOXzsbf_CGXAxG7b1Q","lore_tm_v1_6-6dZG1IELMqnQF-uV3ATBWRMnRmWrz7-uT6ITNnBLQ","lore_tm_v1_I6RBdv1DDlK5g5EdXvns6Fg8xOyJ7ndA6dL_-nb1xfs","lore_tm_v1_bioKPfcUDbjRKsYAJdM9aBZiVPEnR_JKgupnn_GpGco","lore_tm_v1_m_g1lXoXiha02vJoOvFJTrFW2q90Wjl7FRhPlRF2t4Q","lore_tm_v1_1angSXyiHK5lI2scL1nvTU-rgMhTdNBQX7SYdNy0h9U","lore_tm_v1_YFczcNvQZ-EN5rh9m3YbO1UpyszfTBaOLbLHpjDsiEY","lore_tm_v1_Bbs6lfwUIZKazasD76k5nUHaB0Lh-Nrsh8LGsBBCUdA","lore_tm_v1_6XvsKYGm0nQBRH0msDi09NiFF25CmaQxzrmLSCIrhME","lore_tm_v1_7I-peZUwHRIO5CbWpsjGWUdFPdl8O6MjsWDt45dvFE8","lore_tm_v1_O491ZcGfPY0QfYOcSwm2VR-QofQRclsfrNX3b9ssIyo"]
/home/byk/.local/share/opencode-v2-pilot/config/opencode/opencode.json contains only "$schema": "https://opencode.ai/config.json" in a 3-line JSON object./home/byk/.local/share/opencode-v2-pilot/CUTOVER.md states that the V2 executable serves the API and web UI from one origin and directs: βDo not add nginx.β4096; 2. confirm the candidate revision with git -C /home/byk/Code/opencode-v2-pilot rev-parse HEAD and smoke-build version with /home/byk/Code/opencode-v2-pilot/packages/cli/dist-v2-pilot-final/cli-node-linux-x64/bin/opencode2-node --version; 3. verify the isolated candidate on port 14102 using authenticated /api/health and unauthenticated /; 4. call POST /api/plugin/await-activation and confirm both local plugins are active; 5. create mode-0600 /home/byk/.local/share/opencode-v2-pilot/server.env containing OPENCODE_PASSWORD=<password>.supervisor/ROOT-ACCEPTANCE.md to be completed against freshly built, root-owned /usr/local/libexec/opencode-pty-supervisor, /usr/local/libexec/opencode-pty-launcher, and /usr/local/libexec/opencode-pty-client; the Node SEA MainPID must open the authenticated socket, while the fixed client helper may transfer only the approved cwd descriptor.26.4 SEA binary: the reviewed runtime must provide the authenticated socket and cwd only to the fixed helper. User stated Node 24 never satisfies this gate.ptrace, /proc descriptor access, inheritance, process control, or descriptor delegation to impersonate the service MainPID or use its socket.supervisor/verify-readiness to be installed at /usr/local/libexec/opencode-pty-verify-readiness; root-owned mode-0644 /etc/opencode/pty-supervisor-verified may be created only after all root-acceptance and review gates pass./etc/opencode/pty-supervisor-verified to use the exact 4-line, fixed-order, newline-terminated format from supervisor/ROOT-ACCEPTANCE.md: its exact content-bound revision/source-manifest value followed by 3 standard sha256sum records for the fixed installed paths.systemd-analyze verify; preflight must confirm that opencode-v2.service requires and starts after the supervisor without starting, stopping, or changing production./etc/systemd/system/opencode-v2.service; 2. run sudo systemctl daemon-reload; 3. run sudo systemctl stop opencode.service; 4. run sudo systemctl start opencode-v2.service; 5. wait for the socket, then verify /api/health, /, /site.webmanifest, /sw.js, and /openapi.json on port 4096; 6. call POST /api/plugin/await-activation, then confirm followup and local-pty are active via GET /api/plugin; 7. observe real browser traffic and run one follow-up plus one PTY smoke session; 8. enable opencode-v2.service only after every check passes, retaining opencode.service installed and disabled for rollback.sudo systemctl stop opencode-v2.service; 2. run sudo systemctl start opencode.service; 3. verify the legacy health endpoint and browser UI on port 4096; 4. disable opencode-v2.service only after legacy service health is confirmed./home/byk/.local/share/opencode-v2-pilot/data and that rollback never rewrites or deletes either database./home/byk/.local/share/opencode-v2-pilot/config/opencode/plugins/pty.ts failed because the expected context containing const session: Session = { was not found./home/byk/.local/share/opencode-v2-pilot/config/opencode/plugins/pty.ts./home/byk/.local/share/opencode-v2-pilot/config/opencode/plugins/pty.ts./home/byk/.local/share/opencode-v2-pilot/config/opencode/plugins/pty-transport.ts, /home/byk/.local/share/opencode-v2-pilot/config/opencode/plugins/pty.ts, and 7 bun-pty native libraries: librust_pty.so, librust_pty_musl.so, librust_pty_arm64.so, librust_pty_arm64_musl.so, librust_pty.dylib, librust_pty_arm64.dylib, and rust_pty.dll under config/opencode/node_modules/bun-pty/rust-pty/target/release/.signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) at supervisor/cmd/supervisor/main.go:14; fixed launcher environment entries LANG=C.UTF-8, PATH=/usr/local/bin:/usr/bin:/bin, and TERM=xterm-256color, plus the error text set fixed environment: %w, in supervisor/cmd/launcher/main.go; and test shell command kill -TERM $$ at supervisor/cmd/launcher/main_test.go:80./home/byk/.local/share/opencode-v2-pilot/supervisor/cmd/launcher/main.go validates decoded command arguments by enforcing protocol.MaxArgsSize, rejects an empty first command with errors.New("command is empty"), and returns errors.New("aggregate arguments exceed limit") when aggregate arguments exceed the limit.setFixedEnvironment() in /home/byk/.local/share/opencode-v2-pilot/supervisor/cmd/launcher/main.go calls os.Clearenv() and sets exactly: HOME=/home/byk, LANG=C.UTF-8, LOGNAME=byk, PATH=/usr/local/bin:/usr/bin:/bin, SHELL=/bin/sh, TERM=xterm-256color, and USER=byk.scriptArguments() in /home/byk/.local/share/opencode-v2-pilot/supervisor/cmd/launcher/main.go returns []string{"script", "-q", "-e", "-f", "-c", "/bin/sh -i -c 'exec /proc/self/fd/3 --exec'", "/dev/null"}./home/byk/.local/share/opencode-v2-pilot/config/opencode/plugins/pty.ts showed type PtyPluginOptions = {, NOTIFICATION_TIMEOUT_MS = 5_000, a spawn description of "Start an interactive command in a background PTY.", positive timeout validation bounded by MAX_TIMEOUT_SECONDS, per-owner session-limit enforcement using MAX_SESSIONS_PER_OWNER, and process opening through (supervisor.openProcess ?? openPtyProcess)(binding.handle, input.command, input.args).pty.ts also showed session deletion handling for event.type === "session.deleted", cleanup timeout/error reporting, shell-command construction, command argument-limit enforcement via MAX_ARGUMENTS, shell permission checking through assertShell(...), and grep termination using grep.kill("SIGKILL") when needed./home/byk/.local/share/opencode-v2-pilot/config/opencode/plugins/pty.ts.