From 1a4a8046a36a9ea0b9cc6e3a746bf186fb095506 Mon Sep 17 00:00:00 2001 From: Lex Date: Fri, 21 Aug 2026 02:03:15 +0800 Subject: [PATCH 1/2] docs(release): add v1.0.30 series notes --- .github/releases/v1.0.30.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/releases/v1.0.30.md diff --git a/.github/releases/v1.0.30.md b/.github/releases/v1.0.30.md new file mode 100644 index 000000000..f1a38e693 --- /dev/null +++ b/.github/releases/v1.0.30.md @@ -0,0 +1,33 @@ +## opencode {VERSION} + +{Prerelease/Stable} release from `{branch}` branch. Headless `/init` now stamps project initialization, so MEMORY works from `opencode run` and SDK text prompts, not just the TUI. + +--- + +### ๐Ÿ› Bug Fixes + +- **Headless `/init` never stamped project initialization, #404 (PR #405)**: `opencode run "/init"` and serve `POST /session/:id/message` text prompts delivered slash commands as plain text โ€” command routing existed only in the TUI client, so `SessionPrompt.command` never ran, `Command.Event.Executed` never fired, and `project.time_initialized` stayed NULL, leaving MEMORY fail-closed inert with no hint. The server-side prompt endpoints (`prompt` and `promptAsync`) now route single-text-part prompts that name a registered command through the command lifecycle; a registry miss falls through to the plain prompt, preserving existing text-prompt semantics. The TUI `/command` path is unchanged. + +--- + +### ๐Ÿงช Test Summary + +``` +CI gates on the dev-to-main promotion: +Typecheck: pass +Unit Tests (linux): pass +E2E Tests (linux): pass +E2E Tests (windows): pass +SpecGit Acceptance: pass +``` + +--- + +### ๐Ÿ” Verification + +- The regression is pinned by `test/cli/run/headless-init.test.ts`: four subprocess arms โ€” `opencode run "/init"` and serve message text `/init` (both RED on the parent commit), plus `run --command init` and serve `/command` controls โ€” assert a non-NULL `time_initialized` in the isolated project database. +- End-to-end verification spawned the CLI from source on a fresh git repo with an isolated HOME and confirmed the stamp lands on the `opencode run "/init"` path; the fix was delivered through the specgit harness with an accepted verdict on PR #405. + +--- + +**Full changelog:** [`{previous_tag}`...`{current_tag}`](https://github.com/LeXwDeX/OpenCode-GraphAgent/compare/{previous_tag}...{current_tag}) From c9b96dffb343be6e7f8441c31b6b43d606f963c8 Mon Sep 17 00:00:00 2001 From: Lex Date: Fri, 21 Aug 2026 02:04:06 +0800 Subject: [PATCH 2/2] docs(release): fix non-ASCII violation in v1.0.30 series notes --- .github/releases/v1.0.30.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/releases/v1.0.30.md b/.github/releases/v1.0.30.md index f1a38e693..daf10c72b 100644 --- a/.github/releases/v1.0.30.md +++ b/.github/releases/v1.0.30.md @@ -6,7 +6,7 @@ ### ๐Ÿ› Bug Fixes -- **Headless `/init` never stamped project initialization, #404 (PR #405)**: `opencode run "/init"` and serve `POST /session/:id/message` text prompts delivered slash commands as plain text โ€” command routing existed only in the TUI client, so `SessionPrompt.command` never ran, `Command.Event.Executed` never fired, and `project.time_initialized` stayed NULL, leaving MEMORY fail-closed inert with no hint. The server-side prompt endpoints (`prompt` and `promptAsync`) now route single-text-part prompts that name a registered command through the command lifecycle; a registry miss falls through to the plain prompt, preserving existing text-prompt semantics. The TUI `/command` path is unchanged. +- **Headless `/init` never stamped project initialization, #404 (PR #405)**: `opencode run "/init"` and serve `POST /session/:id/message` text prompts delivered slash commands as plain text - command routing existed only in the TUI client, so `SessionPrompt.command` never ran, `Command.Event.Executed` never fired, and `project.time_initialized` stayed NULL, leaving MEMORY fail-closed inert with no hint. The server-side prompt endpoints (`prompt` and `promptAsync`) now route single-text-part prompts that name a registered command through the command lifecycle; a registry miss falls through to the plain prompt, preserving existing text-prompt semantics. The TUI `/command` path is unchanged. --- @@ -25,7 +25,7 @@ SpecGit Acceptance: pass ### ๐Ÿ” Verification -- The regression is pinned by `test/cli/run/headless-init.test.ts`: four subprocess arms โ€” `opencode run "/init"` and serve message text `/init` (both RED on the parent commit), plus `run --command init` and serve `/command` controls โ€” assert a non-NULL `time_initialized` in the isolated project database. +- The regression is pinned by `test/cli/run/headless-init.test.ts`: four subprocess arms - `opencode run "/init"` and serve message text `/init` (both RED on the parent commit), plus `run --command init` and serve `/command` controls - assert a non-NULL `time_initialized` in the isolated project database. - End-to-end verification spawned the CLI from source on a fresh git repo with an isolated HOME and confirmed the stamp lands on the `opencode run "/init"` path; the fix was delivered through the specgit harness with an accepted verdict on PR #405. ---