Repository navigation
docs: introduce GraphAgent features in the README and add 1.0.65 release notes #725
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
c4cf6ce
docs: introduce GraphAgent features in the README and add 1.0.65 rele…
LeXwDeX 10b8964
docs: update 1.0.65 notes for the send fence and final test counts
LeXwDeX d735d62
docs: note the organizer output cap in 1.0.65
LeXwDeX 2f1c65e
Merge remote-tracking branch 'origin/main' into docs/readme-and-relea…
LeXwDeX 90141ec
docs: point DAG prompt and catalog references at their current homes
LeXwDeX cae9552
docs: list the global dag-prompts directory in the configuration tables
LeXwDeX File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| ## opencode 1.0.65 | ||
|
|
||
| Stable release from `main` branch. Reasoning shaping now rewrites each reasoning part through the built-in engine before the model sees it again, and the repository adopts SpecGit 2.5 with a refreshed README. | ||
|
|
||
| --- | ||
|
|
||
| ### 🎯 Features | ||
|
|
||
| - **Reasoning shaping, per step**: Each reasoning part is organized by the configured small model as soon as it ends, while the step's tools run, instead of once after the turn. Before every provider request the session waits for unfinished rewrites up to `OPENCODE_REASONING_DISTILLATION_SETTLE_MS` (default 3000 ms) and seals the rest; a sealed part keeps its original text for good. A part is therefore rewritten before its first resend or never, so earlier prompt-cache prefixes are never invalidated, and within-turn resends now carry the organized text. Adoption is checked per part, so a quick follow-up message no longer discards a whole turn. Disposing a directory or deleting a session cancels its pending rewrites and their model calls (#721). | ||
| - **Engine organizer**: Both runtimes organize through the `@opencode-ai/llm` engine with no tools, temperature 0, no retries and `none`/`low` effort translated per protocol. The opencode runtime keeps the AI SDK only as a fallback for packages the engine does not route. Parts are organized concurrently and independently; the session budget counts reported or estimated tokens instead of stopping when a provider omits usage or after a fixed number of calls (#721). | ||
| - **Send fence across processes**: Adoption is refused once any process has persisted a later assistant attempt. The opencode loop persists each attempt before re-reading the previous message's reasoning for its request, so a rewrite committed by another process is either in that request or refused (#721). | ||
| - **Barrier logs**: Every sealed barrier is logged as `reasoning rewrite sealed` (info) and other barriers as `reasoning rewrite barrier` (debug), with job, adopted and sealed counts and the wait time (#721). | ||
|
|
||
| --- | ||
|
|
||
| ### 🐛 Bug Fixes | ||
|
|
||
| - **Reasoning shaping**: A Chinese rewrite of English reasoning was rejected as larger because the savings check used the conservative reserve estimator, which counts one token per CJK character and four characters per English token. Measured on the configured DeepSeek and GLM tokenizers the rewrite was smaller; the check now uses a script-calibrated estimate (#721). | ||
| - **Reasoning shaping**: An all-noise part was replaced with empty text, which made the core runner drop `reasoning_content` from that assistant message. It is now replaced with a short non-empty placeholder (#721). | ||
| - **Reasoning shaping**: The organizer always requested 24,576 output tokens, so providers that enforce a lower output cap for the small model rejected every rewrite and paused the session. Both transports now clamp to the model's declared output limit (#721). | ||
| - **SpecGit**: Prettier had reformatted the SpecGit-managed block in `AGENTS.md`, so SpecGit 2.5 reported a damaged marker and refused `init`, `migrate` and `remove`. The blocks are regenerated and `AGENTS.md` is excluded from Prettier (#723). | ||
|
|
||
| --- | ||
|
|
||
| ### 🏗️ Architecture / Refactor | ||
|
|
||
| - **Engine-owned reasoning carriers**: `ReasoningCarrier.classify` in `@opencode-ai/llm` decides whether provider metadata is plain, a plaintext mirror, or opaque (signed, encrypted or referenced). Core no longer inspects SDK metadata key names (#721). | ||
| - **Dead code removed**: The unreachable native-wire projector, the propose/judge/claims/gates pipeline, the native-runtime hook, and the core runner's unused per-turn history conversion and request preparation, about 11.7k lines (#721). | ||
|
|
||
| --- | ||
|
|
||
| ### ⚙️ CI / Engineering | ||
|
|
||
| - SpecGit 2.5: `.specgit.yaml` is per-checkout local configuration and is no longer tracked; `AGENTS.md` documents the `specgit init` / `specgit setup --agent opencode` commands. The uncalled v1 bootstrap wrapper is removed. Pull requests merge with merge commits only (#723). | ||
| - The lint ratchet drops from 4850 to 4750 after fixing every warning on touched lines (#721). | ||
|
LeXwDeX marked this conversation as resolved.
|
||
| - The README introduces the fork's own features (reasoning shaping, DAG workflows, Project Memory, autonomous goals, hooks and context management) and drops the retired `dev` prerelease channel. | ||
|
|
||
| --- | ||
|
|
||
| ### 🧪 Test Summary | ||
|
|
||
| ```text | ||
| workspace typecheck tasks: 31/31 passed | ||
| opencode tests: 5245 passed, 0 failed | ||
| core tests: 1462 passed, 0 failed | ||
| llm tests: 325 passed, 0 failed | ||
| tui tests: 282 passed, 0 failed | ||
| DAG behavior/coverage: passed | ||
| lint: 4738 warnings, 0 errors (ratchet 4750) | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ### 🔍 Verification | ||
|
|
||
| New regression tests cover the send barrier (adopt, seal, interrupt, early cleanup), cancellation on directory disposal and session deletion, a rewrite committed by another process before a step's claim, per-part adoption after later messages, the placeholder keeping `reasoning_content`, carrier classification, the calibrated estimator, the organizer engine transport, and integration tests in both runtimes showing the next step's request carries the rewrite. A branch build was installed over the local command and verified by path, version and SHA-256, then exercised in isolated sessions against the configured DeepSeek and GLM models with a recording relay: rewrites were in place in the next step's and next turn's requests, a slow organizer call that missed the window was sealed and its part stayed original in every later request, nothing was organized with the feature off, and no server errors were logged at DEBUG level. SpecGit 2.5 `init --check`, an idempotent `setup` refresh and a clean `remove` preview were confirmed. Native CI verified each pull request head before merge. | ||
|
|
||
| --- | ||
|
|
||
| **Full changelog:** [`graphagent-v1.0.64`...`graphagent-v1.0.65`](https://github.com/LeXwDeX/OpenCode-GraphAgent/compare/graphagent-v1.0.64...graphagent-v1.0.65) | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.