docs: add badges and ecosystem links#3
Merged
chazmaniandinkle merged 2 commits intomainfrom Apr 13, 2026
Merged
Conversation
- Add CI/license/Go Report Card badges to README header - Standardize naming: CogOS (prose), cogos (binary/repo) - Add openclaw-plugin to ecosystem table Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tests that load agent CRDs from /Users/slowbro/cog-workspace now check for the definitions directory and skip when unavailable. Also relaxes golangci-lint: disables errcheck and unused (both need dedicated cleanup passes), suppresses staticcheck style suggestions (QF/S1/ST1005) and ineffassign. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chazmaniandinkle
referenced
this pull request
in chazmaniandinkle/cogos
Apr 14, 2026
Add ResolveToFieldKey and FieldKeyToURI — the two directions of the holographic pointer. Any URI form (cog://, cog:, memory-relative, absolute path) normalizes to the field's canonical key. The inverse projects field keys back to portable cog:// URIs. Fixes Codex review finding #2: attention.boost now resolves URIs before calling Field().Boost(), so boosts via MCP actually match field entries. query_field returns proper cog:// URIs instead of raw filesystem paths. Fixes review finding #3: node probes now run concurrently with goroutines. Total wall time is ~2s regardless of service count instead of 2s × N services blocking the heartbeat loop. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chazmaniandinkle
added a commit
that referenced
this pull request
Apr 20, 2026
Issue 1 — Session routing collapses on multi-message cycles: Previously the cycle stamped every reply with firstUserMessageSessionID, so when drainPendingUserMessages returned messages from multiple tabs, only the first session saw the response. Added uniqueUserMessageSessionIDs + WithSessionIDs context helper; both the respond tool and ensureUserTurnReply now fan out one reply per unique session_id in the queue. respondInvokeCount still bumps once per tool invocation so auto-fallback dedup stays correct. Issue 2 — Legacy PID files cleared on upgrade: LocalStatusWithCRD now re-derives the expected argv from the current CRD when the PID file has no recorded Cmd and adopts the live process if it matches — preventing duplicate-spawn on in-place kernel upgrades. Strict refusal preserved when the CRD is missing or argv doesn't match. ListLocalProcessesWithCRDs + FetchLive CRD-map plumbing drives adoption during reconcile.
chazmaniandinkle
added a commit
that referenced
this pull request
Apr 20, 2026
fix: PR #7 review — PID ownership + reply guarantee + venv hash + session_id
6 tasks
chazmaniandinkle
pushed a commit
that referenced
this pull request
Apr 22, 2026
… gap Closes Agent F gap #3 (session management, CRITICAL) — the last of the eight critical MCP surface gaps. Implements the hybrid design in cog://mem/semantic/surveys/2026-04-21-consolidation/ agent-P-session-management-evaluation with a few user-approved amendments (see below). Kernel changes -------------- - internal/engine/sessions.go: typed SessionState, SessionRegistry, HandoffState, HandoffRegistry with RWMutex / Mutex guards; session-id format validation; idempotent-register "update semantics"; atomic first-wins claim with TTL enforcement; replay-from-bus at startup so the in-memory view rebuilds from bus_sessions + bus_handoffs. - internal/engine/serve_sessions_mgmt.go: 8 HTTP handlers — POST /v1/sessions/register POST /v1/sessions/{id}/heartbeat POST /v1/sessions/{id}/end GET /v1/sessions/presence POST /v1/handoffs/offer GET /v1/handoffs POST /v1/handoffs/{id}/claim POST /v1/handoffs/{id}/complete The existing /v1/sessions and /v1/sessions/{id}[/context] routes (TAA inference context, regression-locked) are preserved untouched; the new specific patterns coexist thanks to Go 1.22 method-aware routing. - internal/engine/mcp_sessions.go: 8 cog_* MCP tools over the same registries so a future native client (Wave widget, desktop app, cog CLI) can use handoff without the Python bridge (amendment #5 — two MCP surfaces coexist by design). - internal/engine/sessions_test.go: 15 unit + integration tests (validation, lifecycle 404/409, active-window presence, task-field validation, 8-way concurrent claim atomicity, TTL expiry, phantom offer, complete-without-claim, replay rebuilds state, claim_rejected observability, end-to-end MCP round-trip). Amendments applied vs the survey -------------------------------- 1. No parallel coexistence. All four consumers are in-tree (this PR, the bridge on a local branch, the skill doc, and cmd_bus.go); migrated atomically. The survey's Open Question #1 was skipped. 2. Idempotent register = update-semantics (survey's Open Question #2 recommendation). Re-register during the active window updates the in-memory row; re-register after end is allowed if the prior row is ended or its heartbeat is outside the active window. 3. `handoff.claim_rejected` event emitted on every rejected claim, with reason ∈ {already_claimed, ttl_expired, offer_not_found, out_of_order}, attempting_session, and conflicting_session when relevant. Cheap; big audit value (amendment #4). 4. Two MCP surfaces coexist by design — 8 cogos_* bridge tools over the Python sandbox + 8 cog_* kernel-native tools via /mcp. Both hit the same kernel registries (amendment #5). Bridge migration ---------------- A paired local branch on cog-sandbox-mcp (`feat/sessions-kernel-native- bridge`, NOT pushed) refactors the 8 cogos_* tools to shim over the new kernel routes, removes client-side aggregation, and rewrites tests/test_session_handoff.py for the new wire shape. Bridge MCP signatures and the never-raise {"success": False, "error": ..., "bus_id"} envelope are preserved — no breaking change for agents using the bridge. Testing ------- - `go build ./...`, `go vet ./...`: silent. - `go test ./internal/engine/... -short -race -count=1`: green (pre-existing + new suite passes under race detector). - End-to-end smoke on port 6932 with a test workspace: register → heartbeat → offer → list → claim → second claim (→ 409 + claim_rejected event) → complete. bus_sessions chain: 3 events. bus_handoffs chain: 4 events (offer, claim, claim_rejected, complete). Bridge tools replayed the same flow against the live kernel with back-compat response shapes intact. - The running kernel at :6931 was NOT touched during this work. Survey reference: cog://mem/semantic/surveys/2026-04-21-consolidation/ agent-P-session-management-evaluation
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Test plan
🤖 Generated with Claude Code