Skip to content

build(deps): bump GJC SDK to 0.17.6, port the lifecycle patch, regenerate built-in presets - #176

Merged
devswha merged 5 commits into
mainfrom
chore/gjc-sdk-0.17.6
Sep 25, 2026
Merged

devswha merged 5 commits into
mainfrom
chore/gjc-sdk-0.17.6

Conversation

@devswha

@devswha devswha commented Sep 25, 2026

Copy link
Copy Markdown
Owner

First batch toward beta.20. Nothing in it touches Opus 5.5 presets.

SDK 0.16.4 → 0.17.6

  • Every @gajae-code/* package is at 0.17.6 with a single copy of each and none nested. Re-running npm ci from scratch applies the lifecycle patch (32 applied), and check:sdk-patch then passes.
  • Lifecycle patch ported: 32 files, 209 replace-once edits (was 191), none dropped. For 11 files the old anchors no longer matched and were re-anchored. 4 new edits take ownership of work 0.17.6 now leaves detached (host activity heartbeat, broker recovery timer, the abandoned deadline hook, and an extension-effects marker). The decision for each edit is in patches/gjc-sdk-lifecycle/README.md.
  • devin-acp is left unpatched on purpose. It already fails closed as sdk_provider_producer_unrepresented, and patching it would exceed maxFiles 32.
  • server/gjc-runtime-manifest.json regenerated (--update --all-platforms). gjc-command-surface.generated.ts and THIRD-PARTY-NOTICES.md regenerated.
  • Top-level sessions pass an empty preloadedExtensions, so agent/project/settings extension modules stay out of app sessions exactly as on 0.16.4. disableExtensionDiscovery is not used because on 0.17.6 it also disables project hooks. A new contract test covers this.
  • Behavior change: 0.17.6 strips unknown strict-object keys before the app sees them, so a delegated task with an unknown model key now runs on the parent's model instead of being rejected. A child on a mismatched model still fails closed. Separate commit; documented in GJC-LIVE-SPEC.md.
  • Upstream fixes for bug(telemetry): crash recorder logs designed refusals and tool exits as crashes #158 (fix(crash): stop recording designed tool outcomes as crashes and make handled fingerprints dedupe Yeachan-Heo/gajae-code#5743) and bug(runtime): recurring boot noise — dead MCP timeouts, Invalid port preconnect, N-way usage polling #162 (#5745) are contained in the v0.17.4 and v0.17.6 tags. I'll close both once they are confirmed on a running build.

Built-in preset copy

gjc-builtin-model-profiles.ts still described GJC 0.13.1. It is now regenerated from 0.17.6:

  • 17 presets that were missing from the picker are added: astra, grok 4.6, oMLX, spark, commandcode-goat, astra-fable(-opus). Two new groups, OMLX and COMMAND CODE.
  • claude-fable and fable-opus-codex updated to claude-fable-5-1, glm presets to glm-5.3, and grok-45-eco corrected.
  • server/builtin-model-profiles-contract.bun.test.ts pins names, order and first-of-chain roles to the SDK. Against the old copy it fails 2 of 3 tests.

Verification

  • npm run verify: exit 0 on the branch head.
  • npm run server:payload:macos, cargo fmt --check and cargo test --locked --manifest-path src-tauri/Cargo.toml: 382 + 11 pass.
  • Not run: signed/notarized bundle, live GUI smoke. Those belong to the beta.20 release drill.

Pin @gajae-code/coding-agent (and its agent-core/ai/natives closure) to
0.17.6 and port the app-owned lifecycle manifest to pristine 0.17.6.

- Recompute every before/after SHA-256; re-anchor the edits whose anchors
  moved in 11 files with the same semantics (none dropped).
- Own new 0.17.6 detached work inside patched files: host activity
  heartbeats, periodic broker recovery, abandoned deadline-flush hooks,
  and fail-closed marking of re-enabled extension-module discovery.
- Regenerate the runtime manifest (all platform natives closures and patch
  post-hashes), third-party notices and the command surface.
- Update release runbooks and test pins to 0.17.6.
SDK 0.17.6 re-enabled extension-module discovery in createAgentSession
(agent, project .gjc/extensions, plugin and settings modules). Opening a
repository must not run its code in the worker, the same trust boundary
as the refused project MCP config.

Pass an empty preloadedExtensions result (0.16.4's own default) with a
fresh ExtensionRuntime per session. disableExtensionDiscovery is avoided
because on 0.17.6 it also turns off hook-convention discovery, which
top-level sessions kept on 0.16.4. The contract test seeds real modules
and a project hook, and a control run proves the same inputs load every
module without the empty result.
… an unknown model key

SDK 0.17.6 ExtensionToolWrapper validates direct tool execution like the
model-facing agent loop, which strips unknown keys of strict objects, so a
task call carrying model can no longer be rejected by the app (the SDK's
customToolToDefinition drops rawArgumentValidation). Assert the real
invariant instead: the override is ignored, reaches no child option, and
the child runs on the parent's exact provider/model. Add a fail-closed
test for a child that resolves to a different model.
…y with a contract test

The app's preset copy still described GJC 0.13.1: 17 runtime presets
(astra, grok 4.6, oMLX, spark, commandcode-goat, astra-fable combos) were
missing from the picker and claude-fable, fable-opus-codex and glm presets
advertised models the runtime no longer runs. The new bun test fails when a
future SDK bump moves the runtime away from the copy.
@devswha
devswha merged commit e2d6de8 into main Sep 25, 2026
6 checks passed
@devswha
devswha deleted the chore/gjc-sdk-0.17.6 branch September 25, 2026 07:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant