Releases: myrgic/cogos
Releases · myrgic/cogos
v0.16.0
What's Changed
- feat(conversations): schema-driven ingest surface v0.1, term-AND search, turn dedup by @chazmaniandinkle in #369
- ci(e2e): probe MCP transport (initialize, golden tools/list, tools/call) by @chazmaniandinkle in #372
- feat(conversations): query-aware URI resolver (ratified RFC, R1-R6) by @chazmaniandinkle in #370
- fix(engine): byte-cap all MCP tool outputs with explicit truncation markers by @chazmaniandinkle in #371
- test(daemon): close gap C — extract wiring to internal/providers/all, add TestDaemonWiring by @chazmaniandinkle in #374
- fix(engine): return 501 before parsing chat body when no router is configured by @chazmaniandinkle in #376
- ci(nightly): run the dormant integration-tagged test suites (v2) by @chazmaniandinkle in #377
- feat(conversations): ontology-as-class enforcement — load L0/L1/L2, quarantine, coverage metric (v0.2 groundwork) by @chazmaniandinkle in #375
- chore: bump version to 0.16.0 by @chazmaniandinkle in #378
Full Changelog: v0.15.1...v0.16.0
v0.15.1
Full Changelog: v0.15.0...v0.15.1
v0.15.0
What's Changed
- fix(engine): unwedge memory consolidation — scanner cap + projection-compiler state persistence by @chazmaniandinkle in #366
- fix(engine): converge lineage projections by ignoring _Last generated: timestamp by @chazmaniandinkle in #367
- feat(blocks): model-weight block cache — streaming GET/PUT, remote-hydrate, manifest CLI (v0.15.0) by @chazmaniandinkle in #368
Full Changelog: v0.14.2...v0.15.0
v0.14.2
What's Changed
- fix(engine): guard against assistant-terminated Anthropic requests (I7 trailing-user) by @chazmaniandinkle in #365
Full Changelog: v0.14.1...v0.14.2
What's Changed
- fix(engine): guard against assistant-terminated Anthropic requests (I7 trailing-user) by @chazmaniandinkle in #365
Full Changelog: v0.14.1...v0.14.2
v0.14.1
Claude Code OAuth credential — read-only mirror (patch release)
This release makes the kernel a strict read-only mirror of the Claude Code OAuth credential it uses for the claude-oauth provider, fixing repeated OAuth token revoked · Please run /login logouts.
Fixes
- #363 / #364 —
claude-oauthWriteBack is now a no-op. The provider's credential lifecycle was rewriting~/.claude/.credentials.jsonon every refresh. Under a local-provider-down fallback loop this rewrote the file ~every 10s, injecting a stale token that poisoned Claude Code's file fallback store and forced re-login (observed with a singleclaude-codeprocess running — not a concurrency race). #361 made the refresh read-only but left the file write active; this completes the read-only-mirror discipline. - #361 —
claude-oauthrefresh is read-only (PATCH-007 port). The provider no longer POSTs Claude Code's single-use OAuth refresh token; it mirrors the keychain and delegates refresh to the owner.
Notes
- Kernel rebuild + redeploy is required to pick up the fix on a running node.
- Verified: write-path removed from the binary; credential file no longer written during active
claude-oauthfallback.
Full changelog: v0.14.0...v0.14.1
What's Changed
- fix(engine): Claude Code OAuth credential is read-only (PATCH-007 port) by @chazmaniandinkle in #361
- fix(engine): make claude-oauth WriteBack a no-op (read-only mirror) — fixes #363 by @chazmaniandinkle in #364
Full Changelog: v0.14.0...v0.14.1
v0.14.0
What's Changed
- feat(lineage): decision-lineage projection +
cog spineby @chazmaniandinkle in #341 - fix(config): patch kernel.yaml in place to preserve comments and avoid zeroing absent fields by @chazmaniandinkle in #343
- fix(build): always rebuild cogos binary so internal/pkg/cmd changes are never stale by @chazmaniandinkle in #345
- RFC: Consolidated MCP transport on kernel daemon by @chazmaniandinkle in #280
- perf(router): probe provider availability off the request hot path by @chazmaniandinkle in #347
- feat(mcp): add cog://kernel/status resource to the MCP sidecar (RFC Phase 1) by @chazmaniandinkle in #348
- fix(engine): E4B as hard floor for local model fallback, reconcile LMS-style names by @chazmaniandinkle in #349
- fix(coherence): compute .cog tree hash via temp index, never mutate the real index by @chazmaniandinkle in #350
- feat(engine): vendor-agnostic OAuth CredentialLifecycle primitive by @chazmaniandinkle in #351
- fix(conversations): guard Index maps with RWMutex to stop kernel crash-loop by @chazmaniandinkle in #352
- fix(sdk): correct stale cogdoc-type test assertion (mem → memory) by @chazmaniandinkle in #353
- feat(session-reg): Fix A — add iss/sub to ChannelSessionRecord (SYNC half) by @chazmaniandinkle in #346
- fix(worktree-reconciler): make the alarm path idempotent (stop unbounded ledger growth) by @chazmaniandinkle in #354
- fix(engine): correct FTS5 JOIN in searchMemoryFTS (rowid → id) by @chazmaniandinkle in #355
- fix(engine): MCP tooling polish — URI hint, type-aware validator, FTS quoting by @chazmaniandinkle in #357
- fix(engine): revert single-word FTS quoting — phrase-match broke multi-word OR by @chazmaniandinkle in #358
- feat(engine): add output_path param to mod3_speak for large audio files by @chazmaniandinkle in #360
- fix(engine): Anthropic wire-layer normalizer + OAuth identity relocation by @chazmaniandinkle in #359
Full Changelog: v0.13.0...v0.14.0
What's Changed
- feat(lineage): decision-lineage projection +
cog spineby @chazmaniandinkle in #341 - fix(config): patch kernel.yaml in place to preserve comments and avoid zeroing absent fields by @chazmaniandinkle in #343
- fix(build): always rebuild cogos binary so internal/pkg/cmd changes are never stale by @chazmaniandinkle in #345
- RFC: Consolidated MCP transport on kernel daemon by @chazmaniandinkle in #280
- perf(router): probe provider availability off the request hot path by @chazmaniandinkle in #347
- feat(mcp): add cog://kernel/status resource to the MCP sidecar (RFC Phase 1) by @chazmaniandinkle in #348
- fix(engine): E4B as hard floor for local model fallback, reconcile LMS-style names by @chazmaniandinkle in #349
- fix(coherence): compute .cog tree hash via temp index, never mutate the real index by @chazmaniandinkle in #350
- feat(engine): vendor-agnostic OAuth CredentialLifecycle primitive by @chazmaniandinkle in #351
- fix(conversations): guard Index maps with RWMutex to stop kernel crash-loop by @chazmaniandinkle in #352
- fix(sdk): correct stale cogdoc-type test assertion (mem → memory) by @chazmaniandinkle in #353
- feat(session-reg): Fix A — add iss/sub to ChannelSessionRecord (SYNC half) by @chazmaniandinkle in #346
- fix(worktree-reconciler): make the alarm path idempotent (stop unbounded ledger growth) by @chazmaniandinkle in #354
- fix(engine): correct FTS5 JOIN in searchMemoryFTS (rowid → id) by @chazmaniandinkle in #355
- fix(engine): MCP tooling polish — URI hint, type-aware validator, FTS quoting by @chazmaniandinkle in #357
- fix(engine): revert single-word FTS quoting — phrase-match broke multi-word OR by @chazmaniandinkle in #358
- feat(engine): add output_path param to mod3_speak for large audio files by @chazmaniandinkle in #360
- fix(engine): Anthropic wire-layer normalizer + OAuth identity relocation by @chazmaniandinkle in #359
Full Changelog: v0.13.0...v0.14.0
v0.13.0
What's Changed
- docs: Windows + Linux install instructions and log path by @chazmaniandinkle in #323
- cli: discoverable --help and workspace-free help/status by @chazmaniandinkle in #324
- daemon: quiet fresh-install WARN spam + reachable default provider by @chazmaniandinkle in #327
- http: availability-gated /v1/models + friendly GET /mcp by @chazmaniandinkle in #326
- cli: daemon lifecycle UX (stop, PID file, detach, add-path) by @chazmaniandinkle in #325
- chore: untrack empty .cog/.state/constellation.db (runtime state) by @chazmaniandinkle in #329
- feat(cluster): cross-platform bep-cert tool — self-generate cert + print DeviceID (Phase 2 S0) by @chazmaniandinkle in #331
- feat(cluster): extract BEPEngine/Provider/Model into internal/engine (Phase 2 S1) by @chazmaniandinkle in #332
- feat(cluster): wire BEPEngine startup into daemon behind cluster.enabled (Phase 2 S2) by @chazmaniandinkle in #333
- feat(cluster): agent-CRD sync over BEP + in-process two-node E2E (Phase 2 S3) by @chazmaniandinkle in #334
- feat(cluster): remote dispatch over BEP — cog_dispatch_to_harness(target_node) (Phase 2 S4) by @chazmaniandinkle in #335
- feat(harness): harness_provider config — default harness inference to a named provider by @chazmaniandinkle in #337
- fix: Windows root-package build (#328) + BEP default port off Syncthing range (#336) by @chazmaniandinkle in #339
Full Changelog: v0.12.0...v0.13.0
v0.12.0
What's Changed
- spike(acp): Go-native bridge to claude CLI via stream-json (ADR-093 validation) by @chazmaniandinkle in #306
- docs(readme): fix Claude Code endpoint listing by @chazmaniandinkle in #307
- docs(adrs): ADR-097 — sector mapping is configuration; trigger source is a config knob by @chazmaniandinkle in #308
- docs(adr-102): correct tool-name reference (cog_search_traces → cog_search_conversations) by @chazmaniandinkle in #309
- feat(substrate): ADR-100 Step 3d minimal — SessionTracking → pkg/substrate/session by @chazmaniandinkle in #311
- Ratify ADR-093: Managed Session Processes (proposed → accepted) by @chazmaniandinkle in #312
- Scaffold internal/conductor — port validated ACP-client contract (RFC-036) by @chazmaniandinkle in #313
Full Changelog: v0.10.0...v0.12.0
v0.10.0
Wave-6b Identity Primitives
- #278 feat(identity): wire IdentityProvider into reconcile registry (Wave 6b)
- #279 docs(adr-099): clarify node-identity layering; mark L2 deprecated-pending-migration
- #284 feat(identity): add workspace_root to IdentityExpression (Brainstorm Primitive 1)
- #285 feat(rbac): K8s-style RBAC binding CRDs + RBACProvider (Brainstorm Primitive 5)
- #297 feat(identity): VoiceProfile + cog://voices namespace; remove legacy Voice string (Primitive 3)
- #298 feat(modality): ChannelDescriptor Mode + Pipeline fields (Primitive 4)
Substrate Library Extraction (ADR-100)
- #281 docs(adrs): ADR-100 substrate library extraction (proposed)
- #283 feat(substrate): scaffold pkg/substrate + reconcile re-export (ADR-100 Step 1+2a)
- #294 feat(substrate): re-export uri, cogfield, bep via pkg/substrate/* (ADR-100 Step 2b)
ADR-101 Testkernel In-Process Boot Harness
- #287 docs(adrs): ADR-101 testkernel in-process boot harness (proposed)
- #289 feat(engine): factor engine.Boot out of runServe + internal/testkernel scaffold (Phase 1)
- #295 feat(engine): WithIsolatedRegistry for testkernel provider injection (Phase 2)
ADR-102 Operator-as-Reconcilable
- #299 docs(adrs): ADR-102 operator-as-Reconcilable codifies the substrate's already-running operating mode
Conversations Observatory
- #300 feat(observatory): Conversations Observatory Reconcilable + MCP tools (operator-state visibility)
Post-Hook Regenerative Reconciliation (Phase 1)
- #303 feat(hooks): Stop hook captures bright-line state for next-turn proprioception (Phase 1)
RFC-0003 R4 CogBlock CanonForm
- #282 feat(cogblock): RFC-0003 R4 — CanonForm field and canonicalization algorithm versioning
Reconcilable Hardening + Tests + Fixes
- #286 test(providers): e2e coverage for IdentityProvider + RBACProvider
- #288 fix(rbac): validate required fields + wire schemaErrors into Health
- #291 cleanup(rbac): convert E2E_HealthOnSchemaError to missing-required-field
- #292 chore(workspace): go work sync reconciliation
- #293 fix(rbac): validate enum values for WorkspaceBinding.Access and NodeBinding.Relation
Docs Accuracy Pass
- #272 docs(adrs): ADR-096 WorktreeReconciler — substrate resource lifecycle as Reconcilable
- #273 docs(adrs): ADR-097 MemoryProjectionReconciler — bidirectional projection
- #277 docs(adrs): ADR-098 SkillProjectionReconciler — provenance-tracked projection
- #304 docs(cogos): accuracy pass — README tool count + ADR statuses
Full Changelog: v0.9.0...v0.10.0
What's Changed
- docs(adrs): ADR-096 WorktreeReconciler — substrate resource lifecycle as Reconcilable by @chazmaniandinkle in #272
- docs(adrs): ADR-097 MemoryProjectionReconciler — bidirectional projection between Claude Code memory and substrate cogdocs by @chazmaniandinkle in #273
- docs(adrs): ADR-098 SkillProjectionReconciler — provenance-tracked projection for substrate skills by @chazmaniandinkle in #277
- docs(adr-099): clarify node-identity layering; mark L2 deprecated-pending-migration by @chazmaniandinkle in #279
- feat(identity): wire IdentityProvider into reconcile registry (Wave 6b) by @chazmaniandinkle in #278
- feat(cogblock): RFC-0003 R4 — CanonForm field and canonicalization algorithm versioning by @chazmaniandinkle in #282
- feat(substrate): scaffold pkg/substrate + reconcile re-export (ADR-100 Step 1+2a) by @chazmaniandinkle in #283
- docs(adrs): ADR-100 substrate library extraction (proposed) by @chazmaniandinkle in #281
- feat(identity): add workspace_root to IdentityExpression (Brainstorm Primitive 1) by @chazmaniandinkle in #284
- feat(rbac): K8s-style RBAC binding CRDs + RBACProvider (Brainstorm Primitive 5) by @chazmaniandinkle in #285
- docs(adrs): ADR-101 testkernel in-process boot harness (proposed) by @chazmaniandinkle in #287
- fix(rbac): validate required fields + wire schemaErrors into Health (closes #285 followups) by @chazmaniandinkle in #288
- test(providers): e2e coverage for IdentityProvider + RBACProvider (closes #284 + #285 deferrals) by @chazmaniandinkle in #286
- feat(engine): factor engine.Boot out of runServe + internal/testkernel scaffold (ADR-101 Phase 1) by @chazmaniandinkle in #289
- chore(workspace): go work sync reconciliation by @chazmaniandinkle in #292
- fix(rbac): validate enum values for WorkspaceBinding.Access and NodeBinding.Relation by @chazmaniandinkle in #293
- cleanup(rbac): convert E2E_HealthOnSchemaError to missing-required-field (closes #290) by @chazmaniandinkle in #291
- feat(substrate): re-export uri, cogfield, bep via pkg/substrate/* (ADR-100 Step 2b) by @chazmaniandinkle in #294
- feat(engine): WithIsolatedRegistry for testkernel provider injection (ADR-101 Phase 2) by @chazmaniandinkle in #295
- feat(identity): VoiceProfile + cog://voices namespace; remove legacy Voice string (Primitive 3) by @chazmaniandinkle in #297
- feat(modality): ChannelDescriptor Mode + Pipeline fields (Primitive 4) by @chazmaniandinkle in #298
- feat(hooks): post-turn regenerative reconciliation — Stop hook captures bright-line state for next-turn proprioception (Phase 1) by @chazmaniandinkle in #303
- docs(adrs): ADR-102 operator-as-Reconcilable (proposed) by @chazmaniandinkle in #299
- feat(observatory): Conversations Observatory Reconcilable + MCP tools (operator-state visibility) by @chazmaniandinkle in #300
- docs(cogos): accuracy pass — README tool count + ADR statuses by @chazmaniandinkle in #304
- chore(release): prepare v0.10.0 by @chazmaniandinkle in #305
Full Changelog: v0.9.0...v0.10.0
v0.9.0
What's Changed
- ADRs 091+092: Substrate as named layer + substrate contracts by @chazmaniandinkle in #264
- feat: lineage observatory — ProjectionReconciler + ADR-094 by @chazmaniandinkle in #265
- ADR-093: Managed session processes (unified channel-mediated form) by @chazmaniandinkle in #266
- feat(engine): daemon reconcile loop driver + ADR-095 by @chazmaniandinkle in #267
- feat(engine): gen_ai.* OTel attribute aliasing layer + span kind constants (H1) by @chazmaniandinkle in #268
- feat(engine): gen_ai.* OTel span emission + conversation/turn/service hierarchy (H1, H2, H3) by @chazmaniandinkle in #269
- Add peer.utterance event type and from_session attribution to cog_emit_event by @chazmaniandinkle in #270
- chore(release): prepare v0.9.0 by @chazmaniandinkle in #271
Full Changelog: v0.8.0...v0.9.0