Skip to content

feat: tools registry#85

Merged
pedronauck merged 33 commits into
mainfrom
tools-registry
Apr 30, 2026
Merged

feat: tools registry#85
pedronauck merged 33 commits into
mainfrom
tools-registry

Conversation

@pedronauck

@pedronauck pedronauck commented Apr 30, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Chores
    • Added QA test infrastructure files including bootstrap configurations and automation logs to support internal testing and validation scenarios.

pedronauck and others added 27 commits April 28, 2026 17:45
Add the release-grade QA plan for the Tool Registry under
.compozy/tasks/tools-registry/qa/. Task_16 consumes these artifacts
without redefining scope, priorities, sentinels, or output paths.

- test-plans/tool-registry-test-plan.md: feature plan with objectives,
  scope (in/out per MVP boundary), key risks, environment matrix,
  entry/exit criteria, automation lanes, and stable artifact layout.
- test-plans/smoke-regression.md: 14 P0 cases enforcing safety
  invariants 1, 4, 7, 11, 13, 16, 21, 27 plus codegen and make verify.
- test-plans/targeted-regression.md: per-change inclusion map keyed
  off touched surfaces.
- test-plans/full-regression.md: pre-release lane covering P0 + P1
  + P2 sampling.
- test-plans/security-redaction-regression.md: redaction sentinel
  set and grep-based scan command; mandatory pre-release lane.
- test-plans/traceability-matrix.md: maps every P0 and P1 case to
  tasks 01-14, TechSpec sections, ADR-001..011, and Safety
  Invariants 1-27.
- test-cases/TC-{SEC,FUNC,INT,UI,PERF}-*.md: 97 manual cases
  covering native tools, TS extension-host, Go SDK, MCP call-through,
  hosted MCP bind/approval bridge, policy/approval, redaction,
  CLI/HTTP/UDS, web diagnostics, docs, config lifecycle, and
  concurrency stress.

Reserved subdirectories qa/issues/, qa/screenshots/, qa/logs/,
qa/traces/, qa/fixtures/ stand by for task_16 evidence.

memory/task_15.md and memory/MEMORY.md track durable handoff context
so task_16 starts with the lab bootstrap, sentinel set, and lane
ordering already known.

task_15.md: subtasks 15.1-15.6 marked complete; status set to
completed; verification evidence appended.

make verify is not applicable to this planning-only task (no Go/TS
source changed). Final make verify lives in TC-INT-016 for task_16.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Update site docs and regenerate the CLI reference so they teach the canonical
tool-first surface implemented by tasks 01-10. Autonomy, hooks, automation,
extensions, MCP auth, agent definitions, and skills now show the dedicated
agh__ tool families alongside their CLI parity, with deterministic denial
codes and operator-only management exceptions. Adds runtime-tools-canonical-docs
vitest coverage to keep the alignment honest.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Captures the release-grade QA plan for tasks 01-11: feature plan, smoke/targeted/full regression suite, codegen + docs verification dossier, redaction sweep procedure, traceability matrix, and execution-ready manual cases under qa/test-cases/. Reserves the verification-report scaffold for task_13.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pedronauck pedronauck self-assigned this Apr 30, 2026
@coderabbitai

coderabbitai Bot commented Apr 30, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

This PR adds QA bootstrap configuration files and test execution logs. It includes environment variable exports for QA scenario setup and runtime configuration, a session automation log for MCP server initialization, and several test failure logs documenting expected error conditions related to authentication and configuration constraints.

Changes

Cohort / File(s) Summary
Bootstrap Environment Configuration
.compozy/tasks/tools-refac/qa/bootstrap.env, .compozy/tasks/tools-refac/qa/logs/bootstrap/bootstrap.env
Defines QA scenario slug, workspace paths, AGH runtime configuration (HTTP port, UDS socket, tmux bridge), web API proxy target, provider directories, and browser automation settings (BROWSER_MODE=browser-use).
Session Automation Logs
.compozy/tasks/tools-refac/qa/logs/bootstrap/acpmock-automation-runner.jsonl
Records automation-runner session initialization with MCP server setup and follow-up turns containing situation context (workspace metadata, capability summaries, limits).
Test Failure Logs
.compozy/tasks/tools-refac/qa/logs/live-runtime/task-complete-session-cli-raw-token-denied.*, tool-config-set-secret-denied.*, tool-invoke-mcp-auth-operator.*
Error and status log pairs documenting expected failures: raw credential validation rejection, configuration mutation denial, and MCP server unavailability (exit=1 status codes).

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.73% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The PR title 'feat: tools registry' is vague and does not clearly reflect the actual changes, which involve QA bootstrap environment files and error log test cases. Provide a more specific title that describes the actual changes, such as 'feat: add QA bootstrap configuration and test error log cases' or 'feat: add tools-refac QA test fixtures'.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 19

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
internal/cli/cli_integration_test.go (1)

1753-1769: ⚠️ Potential issue | 🟡 Minor

Keep the stale-lease checks specific.

Both branches now pass on any non-nil error, so an unrelated CLI/transport failure would still leave the test green. Please assert the expected stale/inactive-lease rejection text from stderr in addition to the redaction check.

As per coding guidelines, "MUST have specific error assertions (ErrorContains, ErrorAs)".

Also applies to: 1892-1900

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/cli/cli_integration_test.go` around lines 1753 - 1769, The test
currently treats any non-nil error as success; change the assertion after
executeRootCommand (used with "task complete", enqueued.ID) to specifically
assert stderr contains the expected stale/inactive-lease rejection message (use
an ErrorContains-style check for the known rejection text) and still assert the
raw token is not leaked (the existing strings.Contains on err.Error() for
"agh_claim_"), and apply the same specific stderr assertion pattern to the other
occurrence around the enqueued retry block (the similar check at lines
~1892-1900) so failures due to unrelated CLI/transport issues no longer pass.
internal/cli/task_test.go (1)

678-684: ⚠️ Potential issue | 🟡 Minor

Add the raw-token leak assertion to task next output.

This is the primary response shape that used to carry the lease credential, but the subtest only checks that claim_token_hash is present. A regression that serialized both the hash and a raw agh_claim_... token would still pass here.

Suggested assertion
 		var output AgentTaskNextRecord
 		if err := json.Unmarshal([]byte(stdout), &output); err != nil {
 			t.Fatalf("json.Unmarshal(task next) error = %v", err)
 		}
+		if strings.Contains(stdout, "agh_claim_") {
+			t.Fatalf("task next output leaked raw claim token pattern: %s", stdout)
+		}
 		if !output.Claimed || output.Claim == nil || output.Claim.Lease.ClaimTokenHash == "" {
 			t.Fatalf("task next output = %#v, want claimed session-bound response", output)
 		}

As per coding guidelines, "Raw claim_token (agh_claim_*) ... must NEVER appear in logs, status APIs, settings views, error payloads, channel messages, SSE, web UI, or memory; use hash forms (claim_token_hash) over the wire".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/cli/task_test.go` around lines 678 - 684, The test currently
verifies only that ClaimTokenHash is set on the AgentTaskNextRecord (variable
output) but not that a raw claim token wasn't leaked; update the subtest to
assert that no raw claim token appears by checking that either
output.Claim.Lease.ClaimToken (or the field that would carry the raw token) is
empty/nil and also that the captured stdout does not contain the prefix
"agh_claim_"; modify the assertions around AgentTaskNextRecord (output) and the
stdout string to explicitly fail if a raw "agh_claim_" token is present while
keeping the existing ClaimTokenHash check.
🧹 Nitpick comments (7)
internal/api/core/conversions_parsers_test.go (1)

231-255: Wrap this test case in a t.Run("Should ...") subtest.

The test uses monolithic assertions in the function body instead of following the t.Run("Should ...") pattern required for Go tests in this repository. Refactor to organize assertions into subtests with the pattern t.Run("Should ...", func(t *testing.T) { ... }).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/api/core/conversions_parsers_test.go` around lines 231 - 255, Wrap
the existing assertions that validate payload (the checks on payload.Name,
payload.Provider, payload.MCPServers length and the string comparisons for
payload.Tools, payload.Toolsets, payload.DenyTools) into a t.Run subtest (e.g.
t.Run("Should parse payload fields", func(t *testing.T) { ... })) so each group
of assertions executes as a named subtest; keep the same checks and error
messages but move them inside the anonymous func(t *testing.T) and call t.Run
around them to follow the repository's t.Run("Should ...") pattern.
internal/api/core/tools.go (1)

288-499: Add doc comments for unexported helpers introduced in this file.

This file adds many unexported functions without comments (toolDescriptorPayload, toolBackendPayload, bindToolSearch, toolErrorLayer, etc.). Please add short intent-focused comments for maintainability and policy compliance.

As per coding guidelines, "Comments in Go must explain the 'why' and 'what', not just 'what'. Unexported identifiers must have a comment."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/api/core/tools.go` around lines 288 - 499, Add concise,
intent-focused Go doc comments for each unexported helper to explain what they
do and why (not just how): add comments above toolDescriptorPayload,
toolBackendPayload, toolSourcePayload, toolAvailabilityPayload,
toolDecisionPayload describing the payload mapping purpose and any important
invariants; above bindToolSearch, toolIDParam, operatorToolScope,
sessionToolScope, toolScopeFromSearch explain the request/param binding and
scoping intent; above respondToolError, toolErrorCodeForStatus, toolErrorLayer
describe the error normalization, status→code mapping and layer derivation
logic; keep each comment short, mention the “why” (reason for
normalization/mapping) and any non-obvious behavior or constraints so
maintainability/policy requirements are satisfied.
internal/api/udsapi/udsapi_integration_test.go (1)

354-355: Avoid pinning this test to JSON field order.

This exact-string comparison is brittle to harmless marshaling changes. Decode created.Record.Spec and assert the projected fields instead of the serialized byte layout.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/api/udsapi/udsapi_integration_test.go` around lines 354 - 355, The
test is brittle because it compares created.Record.Spec as a raw JSON string
which depends on field order; instead unmarshal created.Record.Spec into a
map[string]any or a struct and assert individual fields (e.g., id, backend.kind,
backend.native_name, description, input_schema.type, source.kind, source.owner,
visibility, risk, read_only) using the test helpers; locate the assertion around
created.Record.Spec in udsapi_integration_test.go and replace the exact-string
comparison with JSON decoding and targeted field checks so the test passes
regardless of marshal ordering.
internal/cli/tool_integration_test.go (1)

53-57: The expected payload shares the same client stack as the CLI path.

direct := NewClient(...) and deps.newClient: NewClient both exercise the same internal/cli request/decoding code, so a regression in the client transport layer can make both sides wrong in the same way and still pass. Prefer a raw UDS/HTTP oracle or build the expected contract directly from the registry fixture.

As per coding guidelines, "Verify tests can fail when business logic changes".

Also applies to: 182-190

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/cli/tool_integration_test.go` around lines 53 - 57, The test
currently uses the same client transport code twice (NewClient used for both
direct and deps.newClient), masking regressions; replace the duplicated client
usage by making the "direct" side a raw UDS/HTTP call or construct the expected
request/response directly from the registry fixture instead of calling NewClient
so the oracle is independent of internal request/decoding code (update the setup
in toolIntegrationDeps and the direct call sites referencing NewClient and
deps.newClient; apply the same change for the other occurrence around the
182-190 block).
internal/api/spec/spec_test.go (1)

310-417: Add schema coverage for the tool search operations too.

This block covers list/invoke/approvals/toolsets, but the dedicated tool search endpoints are still unasserted. A missing operation or wrong request/response schema there will slip through this suite.

As per coding guidelines, "Must Check: Focus on critical paths: workflow execution, state management, error handling".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/api/spec/spec_test.go` around lines 310 - 417, Add explicit
assertions for the tool search endpoints by calling operationFor(t, doc, "<tool
search path>", "<HTTP method>") (e.g., the dedicated search route(s) in the
API), then use assertTagsContain to ensure the "tools" tag,
jsonRequestSchema/jsonResponseSchema to extract request/response bodies,
assertResponseStatus for expected statuses, and
assertRequired/assertNotRequired/propertySchema to verify the search request
contains the expected query/filter fields (e.g., "query", "cursor", "limit",
"workspace_id") and the response defines the expected results array (e.g.,
"results" or "tools") with items schema requiring the same tool descriptor
fields already asserted (descriptor.tool_id, descriptor.backend, etc.); reuse
helpers from the test (operationFor, jsonRequestSchema, jsonResponseSchema,
assertRequired, propertySchema, assertEnumValues, assertTagsContain) so the
search endpoints have parity with list/invoke/approvals/toolsets checks.
internal/cli/task_test.go (1)

623-824: Normalize these subtest names to the Should ... pattern.

The changed subtests here use short labels like "next" and "release", which drifts from the repository’s required Go test naming convention.

As per coding guidelines, "MUST use t.Run("Should...") pattern for ALL test cases".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/cli/task_test.go` around lines 623 - 824, Tests use terse subtest
names ("next", "next no work", table names "heartbeat", "complete", "fail",
"release") which violate the project's "t.Run('Should...')" naming rule; update
each t.Run invocation and the table-driven test case name fields (the literal
values in the []struct{ name string ... } slice and the two standalone t.Run
calls) to use the "Should ..." pattern (e.g. "Should claim next task", "Should
return no work", "Should heartbeat", "Should complete", "Should fail", "Should
release") while keeping the existing assertions and behavior unchanged; verify
the loop that uses tt.name still references the updated names.
internal/api/core/tools_test.go (1)

20-128: Add coverage for the session-search and single-toolset handlers.

newToolCoreEngine wires /sessions/:id/tools/search and /toolsets/:id, but this suite never hits either path. Those two handlers have different scoping/parameter behavior than the operator list/search cases, so they can drift without any regression signal.

As per coding guidelines, **/*_test.go: Focus on critical paths: workflow execution, state management, error handling.

Also applies to: 236-248

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@internal/api/core/tools_test.go` around lines 20 - 128, The test misses
exercise of the session-specific search and single-toolset endpoints wired by
newToolCoreEngine; add subtests in
TestToolHandlersExposeOperatorSessionInvokeAndToolsets that call POST
"/sessions/sess-1/tools/search" (with a query payload like
{"query":"skill","limit":1}) and GET "/toolsets/ts-1" (or the id created by
newAPITestToolRegistry) to assert HTTP 200 and correct response shapes (e.g.,
ToolsResponse contains expected tool and ToolsetResponse.Status == "expanded"
and ExpandedTools contains toolspkg.ToolIDSkillView), reusing performRequest,
decodeToolJSON, and the same registry to ensure scoping/parameter behavior is
covered.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.compozy/tasks/tools-refac/qa/bootstrap.env:
- Around line 2-10: The file currently commits machine-specific absolute paths
for environment variables (e.g., WORKSPACE_PATH, QA_OUTPUT_PATH, AGH_HOME,
AGH_UDS_PATH, TMUX_BRIDGE_SOCKET, PROVIDER_HOME, PROVIDER_CODEX_HOME), which
should be replaced with portable, template-style or runtime-resolved values;
update bootstrap.env to use either environment-variable fallbacks or
placeholders (e.g., reference an external config or use ${VAR:-default} style
semantics) instead of hardcoded developer paths, ensure socket/temporary paths
default to OS temp (or relative workspace) and keep AGH_HTTP_PORT as a
configurable value, and document the expected variables so CI/dev machines can
supply their own values.

In `@internal/acp/client_test.go`:
- Around line 731-779: The test TestStartMCPServersSkipsRemoteTransports is a
top-level test body but must follow the repo convention to use a t.Run("Should
...") subtest; modify the function to call t.Run("Should skip remote transports
when starting MCP servers", func(t *testing.T) { t.Parallel(); /* existing test
body */ }) so the existing assertions and helper calls (New, startHelperProcess,
captureRequestParams, decodeCapturedNewSessionRequest, stopProcess) move inside
that subtest and retain t.Parallel; ensure you do not duplicate defer
stopProcess outside the subtest and keep helperEnvWithCapture, StartOpts and
MCPServers setup inside the subtest scope.

In `@internal/api/core/network_details.go`:
- Line 479: Add a leading comment above the unexported function
networkChannelAggregates that explains why the helper exists and what it does
(not just that it aggregates), e.g., describe its purpose in computing
channel-level aggregates from per-node/per-socket network stats and any
important assumptions or invariants it relies on; place this short “why/what”
comment immediately above the networkChannelAggregates function declaration so
it satisfies the guideline for unexported identifiers.
- Around line 479-495: The function networkChannelAggregates calls
service.ListPeers without validating service; add a nil check for the service
parameter at the top of networkChannelAggregates (similar to existing checks for
networkStore and sessionsManager) and return a descriptive error like "api:
network service is required" to avoid a nil-interface panic when NetworkService
is nil before invoking service.ListPeers; ensure the check references the
service variable so callers of networkChannelAggregates or exported
NetworkChannelPayloads cannot trigger a panic.

In `@internal/api/core/tools.go`:
- Around line 96-111: The scope defaults computed by operatorToolScope are
merged into the local scope variable but the downstream payloads
(ApprovalRequest in ToolApprovals.CreateToolApproval and CallRequest in the tool
call path) still use raw req.SessionID/req.WorkspaceID/req.AgentName; update
those payload constructions to use scope.SessionID, scope.WorkspaceID, and
scope.AgentName (and keep Input as cloneRawMessage(req.Input) and InputDigest as
req.InputDigest) so the normalized defaults are propagated to
ToolApprovals.CreateToolApproval and the CallRequest creation; ensure the same
change is applied in both the approval branch (where ApprovalRequest is built)
and the call branch (where CallRequest is built).
- Around line 421-445: The code currently assigns payload.Message directly from
toolErr.Error() and err.Error(), which may leak secrets; replace those direct
assignments in the error handling branch (cases using toolErr, the err != nil
branch, and the final payload.Message defaults) with a sanitization step that
returns a non-sensitive message — e.g., map known toolErr.Code and
toolspkg.ReasonOf(err) to a safe canonical message or call a new helper like
sanitizeErrorMessage(err, toolErr.Code, payload.ReasonCodes) that strips secret
tokens (or returns http.StatusText(status) / a code-based message) and only
includes hashed identifiers if needed; keep returning ReasonCodes and Layer (via
toolErrorLayer) but never expose raw err.Error() in payload.Message, and ensure
MaskInternalErrors still forces generic messages for 5xx responses.

In `@internal/api/httpapi/routes.go`:
- Around line 130-131: The routes POST /:id/approvals and POST /:id/invoke
register handlers CreateToolApproval and InvokeTool without the
privilegedMutationGuard, leaving tool mutation/execution endpoints unprotected;
update the tools route registrations in routes.go to wrap these handlers with
privilegedMutationGuard() (the same guard used for settings/extensions routes)
so that CreateToolApproval and InvokeTool are only reachable when the privileged
guard allows it, matching the pattern used elsewhere and preventing remote
non-loopback tool invocation.

In `@internal/api/udsapi/hosted_mcp.go`:
- Around line 145-156: releaseHostedMCP currently calls
HostedMCP.ReleaseBind(req.BindID) without validating the requesting peer,
allowing one local client to revoke another's bind; replicate the peer-check
logic used by the bind/projection/call handlers: extract the peer identity from
the UDS connection/context (same method those handlers use), verify that the
peer owns or is authorized for req.BindID (either call an existing method that
accepts peer info or query HostedMCP for the bind owner) and only then call
ReleaseBind (or a ReleaseBindWithPeer equivalent) and respond; update
releaseHostedMCP to perform this ownership check before teardown.
- Around line 76-82: Validate request parameters and perform all auth/peer/nonce
checks and call core.RespondError (or other HTTP error responses) before calling
core.PrepareSSE so the HTTP status code and body are sent on failure instead of
being emitted as SSE events; specifically, move or duplicate the validation
logic that inspects bindID (from c.Query("bind_id")), lastDigest,
peer/nonce/auth checks and any calls that can return 400/403/503 so they run and
return on error prior to invoking core.PrepareSSE (and do the same for the other
block around the Projection call at the later section), then only call
core.PrepareSSE and proceed to writer/Projection when all validations pass.

In `@internal/cli/client_test.go`:
- Around line 691-810: The test TestUnixSocketClientHostedMCPMethods contains
multiple assertions for different API flows but they are all in one top-level
test with a single t.Parallel(), violating the repo rule to use named subtests;
split the monolithic body into separate t.Run("Should ...") subtests for each
scenario (e.g., "Should bind hosted MCP", "Should fetch projection", "Should
stream projection", "Should call hosted tool", "Should release hosted MCP") and
call t.Parallel() at the start of each subtest; move the relevant request setup,
client call (BindHostedMCP, HostedMCPProjection, StreamHostedMCPProjection,
CallHostedMCP, ReleaseHostedMCP) and assertions into their corresponding t.Run
blocks while keeping the same httpClient roundTripper behavior, and repeat this
pattern for the other test blocks noted (the other ranges mentioned) so every
case uses t.Run + t.Parallel().

In `@internal/cli/client_tools.go`:
- Around line 268-284: The sensitiveToolFieldName matcher is too broad (it
treats any key containing "token" as sensitive), so update the function to only
redact credential-shaped names: modify the markers list to remove the generic
"token" and instead detect token-like segments (e.g., keys that equal "token" or
"access_token" or end with "_token"/"-token"), and/or split the normalized key
on non-alphanumeric separators and check segments for exact marker matches
(including plural "tokens" where appropriate); adjust sensitiveToolFieldName
(and its use of normalized variable) to use this stricter segment-or-suffix
matching so fields like "completion_tokens" or "token_count" are not redacted.
- Around line 133-150: InvokeTool currently returns the decoded
ToolInvokeResponseRecord without applying redaction; call the existing
sanitizeToolInvokeResponse helper on the response (e.g.,
sanitizeToolInvokeResponse(&response) or the appropriate signature) after doJSON
succeeds and before returning so preview, structured, content[*].data and
metadata are sanitized and secrets (agh_claim_*, MCP/OAuth/PKCE tokens, secret
bindings) are removed; update the return path in InvokeTool to run this
sanitization and return the sanitized response.

In `@internal/cli/client.go`:
- Around line 1051-1054: The SSE handler currently returns raw error frames
(errors.New(strings.TrimSpace(string(event.Data)))) which bypasses redaction;
instead pass event.Data through the existing readAPIError parser/scrubber and
return the resulting error (e.g., call readAPIError(event.Data) and return its
error), falling back to a sanitized generic error only if readAPIError itself
fails—this ensures SSEEvent error frames are redacted the same way as other API
errors. Refer to SSEEvent, event.Data, readAPIError, and the current errors.New
usage when making the change.

In `@internal/cli/config_test.go`:
- Around line 407-409: The test currently only checks that
parseStringSliceValue(`["ok",1]`) returns a non-nil error; change it to assert
the specific error class or message so the failure mode is guaranteed. Update
the assertion for parseStringSliceValue to use a specific test helper (e.g.,
ErrorContains or ErrorAs) to verify the error is the expected JSON/type error
(match the substring or error type produced by parseStringSliceValue) instead of
a generic non-nil check; keep the call and input the same and replace
t.Fatal(...) with the targeted assertion referencing parseStringSliceValue.
- Around line 279-410: The test TestConfigRenderingAndMutationHelpers bundles
many independent checks; split it into separate t.Run("Should ...") subtests
(e.g., "Should render show bundle human", "Should render show bundle toon",
"Should list bundle human", "Should list bundle toon", "Should render path
bundle human", "Should render path bundle toon", "Should classify mutation
paths", "Should parse string slice values") and move each logical block that
calls configShowBundle.human()/toon(), configListBundle.human()/toon(),
configPathBundle.human()/toon(), the table-driven calls to configMutationPath,
and parseStringSliceValue into its own subtest; ensure each subtest calls
t.Parallel() where safe, and change the table-driven t.Run names for the
mutation path cases to the required "Should ..." pattern (not the raw path
string) while keeping the existing assertions and use of symbols unchanged so
failures are isolated and guidelines-compliant.

In `@internal/cli/mcp_auth_test.go`:
- Around line 46-93: Split the monolithic
TestMCPAuthStatusBundlesRenderHumanAndToon into multiple t.Run subtests (e.g.,
"Should render single status human", "Should render single status toon", "Should
render list human", "Should render list toon"), move t.Parallel() into each
subtest where safe, and group the related assertions inside their respective
subtest blocks; keep the shared setup (fixedTestNow, status creation) at the top
of TestMCPAuthStatusBundlesRenderHumanAndToon and call
mcpAuthStatusBundle(status) and
mcpAuthStatusListBundle([]mcpauth.Status{status}) inside the appropriate
subtests, then run bundle.human(), bundle.toon(), listBundle.human(), and
listBundle.toon() with their existing checks inside the corresponding t.Run
bodies so failures isolate to the specific behavior.

In `@internal/cli/tool_integration_test.go`:
- Around line 47-50: In the t.Cleanup block that creates ctx,cancel via
context.WithTimeout and calls server.Shutdown(ctx), stop discarding the returned
error from server.Shutdown; capture it and handle it (e.g., if err != nil {
t.Fatalf("server.Shutdown failed: %v", err) } or t.Errorf(...) ) so test
failures or leaked resources are surfaced; ensure you still call cancel() via
defer cancel() and reference the server.Shutdown(ctx) call by name when adding
the conditional error handling.

In `@internal/cli/tool_operator.go`:
- Around line 23-31: The tool invoke flow never captures or forwards an approval
token; update the CLI to accept and pass approval_token by adding an
approvalToken string field to the toolInvokeFlags struct, wire a corresponding
CLI flag parser where toolInvokeFlags is populated (the same location that sets
input/inputFile/toolCallID/etc.), and include this approvalToken value in the
invoke request payload when calling the function that sends the tool invocation
(the code that constructs the request object for the tool invoke API). Ensure
the field name is approvalToken in toolInvokeFlags and map it to the API
request's approval_token property so approval-gated tools can complete the
second invoke from the CLI.

In `@internal/cli/tool.go`:
- Around line 35-39: The validation trims sessionID and bindNonce but the
original variables (sessionID, bindNonce) are later forwarded untrimmed to the
proxy; update the code so you assign the trimmed values back (or use new trimmed
variables) and pass those trimmed values to the proxy call that binds the hosted
session (the call that currently forwards sessionID and bindNonce), keeping the
same error checks that return mcppkg.ErrHostedSessionRequired and
mcppkg.ErrHostedNonceRequired when blank.

---

Outside diff comments:
In `@internal/cli/cli_integration_test.go`:
- Around line 1753-1769: The test currently treats any non-nil error as success;
change the assertion after executeRootCommand (used with "task complete",
enqueued.ID) to specifically assert stderr contains the expected
stale/inactive-lease rejection message (use an ErrorContains-style check for the
known rejection text) and still assert the raw token is not leaked (the existing
strings.Contains on err.Error() for "agh_claim_"), and apply the same specific
stderr assertion pattern to the other occurrence around the enqueued retry block
(the similar check at lines ~1892-1900) so failures due to unrelated
CLI/transport issues no longer pass.

In `@internal/cli/task_test.go`:
- Around line 678-684: The test currently verifies only that ClaimTokenHash is
set on the AgentTaskNextRecord (variable output) but not that a raw claim token
wasn't leaked; update the subtest to assert that no raw claim token appears by
checking that either output.Claim.Lease.ClaimToken (or the field that would
carry the raw token) is empty/nil and also that the captured stdout does not
contain the prefix "agh_claim_"; modify the assertions around
AgentTaskNextRecord (output) and the stdout string to explicitly fail if a raw
"agh_claim_" token is present while keeping the existing ClaimTokenHash check.

---

Nitpick comments:
In `@internal/api/core/conversions_parsers_test.go`:
- Around line 231-255: Wrap the existing assertions that validate payload (the
checks on payload.Name, payload.Provider, payload.MCPServers length and the
string comparisons for payload.Tools, payload.Toolsets, payload.DenyTools) into
a t.Run subtest (e.g. t.Run("Should parse payload fields", func(t *testing.T) {
... })) so each group of assertions executes as a named subtest; keep the same
checks and error messages but move them inside the anonymous func(t *testing.T)
and call t.Run around them to follow the repository's t.Run("Should ...")
pattern.

In `@internal/api/core/tools_test.go`:
- Around line 20-128: The test misses exercise of the session-specific search
and single-toolset endpoints wired by newToolCoreEngine; add subtests in
TestToolHandlersExposeOperatorSessionInvokeAndToolsets that call POST
"/sessions/sess-1/tools/search" (with a query payload like
{"query":"skill","limit":1}) and GET "/toolsets/ts-1" (or the id created by
newAPITestToolRegistry) to assert HTTP 200 and correct response shapes (e.g.,
ToolsResponse contains expected tool and ToolsetResponse.Status == "expanded"
and ExpandedTools contains toolspkg.ToolIDSkillView), reusing performRequest,
decodeToolJSON, and the same registry to ensure scoping/parameter behavior is
covered.

In `@internal/api/core/tools.go`:
- Around line 288-499: Add concise, intent-focused Go doc comments for each
unexported helper to explain what they do and why (not just how): add comments
above toolDescriptorPayload, toolBackendPayload, toolSourcePayload,
toolAvailabilityPayload, toolDecisionPayload describing the payload mapping
purpose and any important invariants; above bindToolSearch, toolIDParam,
operatorToolScope, sessionToolScope, toolScopeFromSearch explain the
request/param binding and scoping intent; above respondToolError,
toolErrorCodeForStatus, toolErrorLayer describe the error normalization,
status→code mapping and layer derivation logic; keep each comment short, mention
the “why” (reason for normalization/mapping) and any non-obvious behavior or
constraints so maintainability/policy requirements are satisfied.

In `@internal/api/spec/spec_test.go`:
- Around line 310-417: Add explicit assertions for the tool search endpoints by
calling operationFor(t, doc, "<tool search path>", "<HTTP method>") (e.g., the
dedicated search route(s) in the API), then use assertTagsContain to ensure the
"tools" tag, jsonRequestSchema/jsonResponseSchema to extract request/response
bodies, assertResponseStatus for expected statuses, and
assertRequired/assertNotRequired/propertySchema to verify the search request
contains the expected query/filter fields (e.g., "query", "cursor", "limit",
"workspace_id") and the response defines the expected results array (e.g.,
"results" or "tools") with items schema requiring the same tool descriptor
fields already asserted (descriptor.tool_id, descriptor.backend, etc.); reuse
helpers from the test (operationFor, jsonRequestSchema, jsonResponseSchema,
assertRequired, propertySchema, assertEnumValues, assertTagsContain) so the
search endpoints have parity with list/invoke/approvals/toolsets checks.

In `@internal/api/udsapi/udsapi_integration_test.go`:
- Around line 354-355: The test is brittle because it compares
created.Record.Spec as a raw JSON string which depends on field order; instead
unmarshal created.Record.Spec into a map[string]any or a struct and assert
individual fields (e.g., id, backend.kind, backend.native_name, description,
input_schema.type, source.kind, source.owner, visibility, risk, read_only) using
the test helpers; locate the assertion around created.Record.Spec in
udsapi_integration_test.go and replace the exact-string comparison with JSON
decoding and targeted field checks so the test passes regardless of marshal
ordering.

In `@internal/cli/task_test.go`:
- Around line 623-824: Tests use terse subtest names ("next", "next no work",
table names "heartbeat", "complete", "fail", "release") which violate the
project's "t.Run('Should...')" naming rule; update each t.Run invocation and the
table-driven test case name fields (the literal values in the []struct{ name
string ... } slice and the two standalone t.Run calls) to use the "Should ..."
pattern (e.g. "Should claim next task", "Should return no work", "Should
heartbeat", "Should complete", "Should fail", "Should release") while keeping
the existing assertions and behavior unchanged; verify the loop that uses
tt.name still references the updated names.

In `@internal/cli/tool_integration_test.go`:
- Around line 53-57: The test currently uses the same client transport code
twice (NewClient used for both direct and deps.newClient), masking regressions;
replace the duplicated client usage by making the "direct" side a raw UDS/HTTP
call or construct the expected request/response directly from the registry
fixture instead of calling NewClient so the oracle is independent of internal
request/decoding code (update the setup in toolIntegrationDeps and the direct
call sites referencing NewClient and deps.newClient; apply the same change for
the other occurrence around the 182-190 block).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7ff68159-7200-4220-8ca3-3a0dacd90534

📥 Commits

Reviewing files that changed from the base of the PR and between 0e34690 and 29de5ff.

⛔ Files ignored due to path filters (212)
  • .agents/skills/agh-qa-bootstrap/scripts/bootstrap-qa-env.py is excluded by !.agents/**
  • .compozy/tasks/tools-refac/qa/bootstrap-manifest.json is excluded by !**/*.json
  • .compozy/tasks/tools-refac/qa/issues/BUG-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/issues/BUG-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/issues/BUG-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/issues/BUG-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/issues/BUG-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/issues/BUG-006.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-AUDIT-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-AUT-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-AUT-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-AUT-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-AUT-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-AUT-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-AUT-006.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-FUNC-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-FUNC-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-FUNC-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-FUNC-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-FUNC-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-FUNC-006.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-FUNC-007.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-FUNC-008.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-INT-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-INT-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-INT-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-INT-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-INT-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-INT-006.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-REG-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-REG-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-REG-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-REG-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-REG-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-SEC-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-SEC-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-SEC-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-SEC-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-SEC-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-SEC-006.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-cases/TC-UI-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-plans/tools-refac-codegen-and-docs.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-plans/tools-refac-redaction-suite.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-plans/tools-refac-regression.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-plans/tools-refac-test-plan.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/test-plans/tools-refac-traceability.md is excluded by !**/*.md
  • .compozy/tasks/tools-refac/qa/verification-report.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/_tasks.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/_techspec.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/adrs/adr-010-remote-mcp-call-through.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/adrs/adr-011-mark3labs-mcp-go.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/analysis/analysis_mark3labs_mcp_go.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/MEMORY.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_01.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_02.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_03.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_04.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_05.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_06.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_07.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_08.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_09.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_10.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_11.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_12.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_13.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_14.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_15.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/memory/task_16.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/behavioral-scenario-charter.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/bootstrap-manifest.json is excluded by !**/*.json
  • .compozy/tasks/tools-registry/qa/fixtures/redaction-sentinels.json is excluded by !**/*.json, !**/fixtures/**
  • .compozy/tasks/tools-registry/qa/issues/BUG-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/issues/BUG-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/issues/BUG-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/logs/baseline-failing-packages-env-narrow.log is excluded by !**/*.log
  • .compozy/tasks/tools-registry/qa/logs/baseline-make-verify-rerun.log is excluded by !**/*.log
  • .compozy/tasks/tools-registry/qa/logs/baseline-make-verify.log is excluded by !**/*.log
  • .compozy/tasks/tools-registry/qa/logs/bootstrap-rerun-short-runtime.log is excluded by !**/*.log
  • .compozy/tasks/tools-registry/qa/logs/fix-api-homepaths-targeted-rerun.log is excluded by !**/*.log
  • .compozy/tasks/tools-registry/qa/logs/fix-api-homepaths-targeted.log is excluded by !**/*.log
  • .compozy/tasks/tools-registry/qa/logs/fix-policy-deny-all-targeted-rerun.log is excluded by !**/*.log
  • .compozy/tasks/tools-registry/qa/logs/fix-policy-deny-all-targeted.log is excluded by !**/*.log
  • .compozy/tasks/tools-registry/qa/logs/smoke/TC-SEC-001.log is excluded by !**/*.log
  • .compozy/tasks/tools-registry/qa/peer-review-prompt-round3.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/peer-review-prompt-round6.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/peer-review-result-round3.json is excluded by !**/*.json
  • .compozy/tasks/tools-registry/qa/peer-review-result-round4.json is excluded by !**/*.json
  • .compozy/tasks/tools-registry/qa/peer-review-result-round5.json is excluded by !**/*.json
  • .compozy/tasks/tools-registry/qa/peer-review-result-round6.json is excluded by !**/*.json
  • .compozy/tasks/tools-registry/qa/peer-review-summary-round6.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-006.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-007.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-008.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-009.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-010.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-011.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-012.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-013.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-014.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-015.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-016.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-017.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-018.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-019.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-020.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-021.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-022.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-023.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-024.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-025.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-026.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-027.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-028.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-029.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-030.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-031.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-032.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-033.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-034.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-035.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-036.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-037.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-038.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-039.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-040.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-041.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-042.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-043.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-044.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-045.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-046.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-047.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-048.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-049.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-050.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-051.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-052.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-053.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-054.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-055.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-056.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-057.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-FUNC-058.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-006.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-007.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-008.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-009.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-010.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-011.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-012.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-013.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-014.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-015.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-INT-016.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-PERF-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-PERF-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-PERF-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-006.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-007.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-008.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-009.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-010.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-011.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-012.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-013.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-SEC-014.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-UI-001.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-UI-002.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-UI-003.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-UI-004.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-UI-005.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-cases/TC-UI-006.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-plans/full-regression.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-plans/security-redaction-regression.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-plans/smoke-regression.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-plans/targeted-regression.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-plans/tool-registry-test-plan.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/qa/test-plans/traceability-matrix.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_01.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_02.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_03.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_04.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_05.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_06.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_07.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_08.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_09.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_10.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_11.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_12.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_13.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_14.md is excluded by !**/*.md
  • .compozy/tasks/tools-registry/task_15.md is excluded by !**/*.md
  • config.toml is excluded by !**/*.toml
  • docs/_refacs/20260429-tools-builtin-domain-split.md is excluded by !**/*.md
  • go.sum is excluded by !**/*.sum
📒 Files selected for processing (88)
  • .compozy/tasks/tools-refac/qa/bootstrap.env
  • .compozy/tasks/tools-registry/qa/peer-review-result-round3.err
  • .compozy/tasks/tools-registry/qa/peer-review-result-round4.err
  • .compozy/tasks/tools-registry/qa/peer-review-result-round5.err
  • .compozy/tasks/tools-registry/qa/peer-review-result-round6.err
  • Makefile
  • go.mod
  • internal/acp/client.go
  • internal/acp/client_test.go
  • internal/acp/permission.go
  • internal/api/contract/agents.go
  • internal/api/contract/agents_test.go
  • internal/api/contract/contract.go
  • internal/api/contract/tools.go
  • internal/api/contract/tools_test.go
  • internal/api/core/agent_tasks.go
  • internal/api/core/automation.go
  • internal/api/core/conversions.go
  • internal/api/core/conversions_parsers_test.go
  • internal/api/core/errors.go
  • internal/api/core/handlers.go
  • internal/api/core/interfaces.go
  • internal/api/core/network_details.go
  • internal/api/core/settings_internal_test.go
  • internal/api/core/settings_test.go
  • internal/api/core/tools.go
  • internal/api/core/tools_test.go
  • internal/api/httpapi/handlers.go
  • internal/api/httpapi/handlers_test.go
  • internal/api/httpapi/routes.go
  • internal/api/httpapi/server.go
  • internal/api/httpapi/server_test.go
  • internal/api/spec/spec.go
  • internal/api/spec/spec_test.go
  • internal/api/testutil/apitest.go
  • internal/api/udsapi/agent_tasks_bindings_test.go
  • internal/api/udsapi/agent_tasks_test.go
  • internal/api/udsapi/handlers_test.go
  • internal/api/udsapi/hosted_mcp.go
  • internal/api/udsapi/routes.go
  • internal/api/udsapi/server.go
  • internal/api/udsapi/server_test.go
  • internal/api/udsapi/transport_parity_integration_test.go
  • internal/api/udsapi/udsapi_integration_test.go
  • internal/cli/agent_kernel_test.go
  • internal/cli/cli_historical_mixed_ownership_integration_test.go
  • internal/cli/cli_integration_test.go
  • internal/cli/client.go
  • internal/cli/client_test.go
  • internal/cli/client_tools.go
  • internal/cli/config_test.go
  • internal/cli/doc_test.go
  • internal/cli/helpers_test.go
  • internal/cli/hooks.go
  • internal/cli/mcp_auth_test.go
  • internal/cli/root.go
  • internal/cli/task.go
  • internal/cli/task_test.go
  • internal/cli/tool.go
  • internal/cli/tool_integration_test.go
  • internal/cli/tool_operator.go
  • internal/cli/tool_test.go
  • internal/config/agent.go
  • internal/config/agent_resource.go
  • internal/config/agent_resource_test.go
  • internal/config/agent_test.go
  • internal/config/config.go
  • internal/config/config_test.go
  • internal/config/hooks.go
  • internal/config/hooks_test.go
  • internal/config/merge.go
  • internal/config/provider.go
  • internal/config/provider_test.go
  • internal/config/tool_grammar.go
  • internal/config/tool_surface.go
  • internal/config/tool_surface_test.go
  • internal/config/tools.go
  • internal/config/tools_test.go
  • internal/daemon/agent_skill_resources.go
  • internal/daemon/agent_skill_resources_integration_test.go
  • internal/daemon/agent_skill_resources_test.go
  • internal/daemon/boot.go
  • internal/daemon/composed_assembler_test.go
  • internal/daemon/daemon.go
  • internal/daemon/daemon_memory_e2e_integration_test.go
  • internal/daemon/daemon_mock_agents_integration_test.go
  • internal/daemon/daemon_test.go
  • internal/daemon/harness_context.go

Comment thread .compozy/tasks/tools-refac/qa/bootstrap.env Outdated
Comment thread internal/acp/client_test.go
Comment thread internal/api/core/network_details.go
Comment thread internal/api/core/network_details.go
Comment thread internal/api/core/tools.go
Comment thread internal/cli/config_test.go Outdated
Comment thread internal/cli/mcp_auth_test.go
Comment thread internal/cli/tool_integration_test.go Outdated
Comment thread internal/cli/tool_operator.go
Comment thread internal/cli/tool.go Outdated
pedronauck added a commit that referenced this pull request May 26, 2026
## Release v0.0.1

This PR prepares the release of version v0.0.1.

### Changelog

## 0.0.1 - 2026-05-26



### Other Changes

- Lessons learned



### ♻️ Refactoring

- Project structure (#7)
- Kb improvements (#12)
- Rename spaces to channels (#17)
- Add extensions gaps (#21)
- Improve tool calls ui (#22)
- Remove web app header
- Module improvements (#29)
- Memory improvements (#35)
- Storybook for web and ui (#38)
- Enable AGH network by default for new installs (#57)
- Hermes adjustments (#69)
- Badges design (#84)
- Storybook scenario and logos gallery
- Migrate typescript tests (#114)
- Internal go packages (#120)
- Ui patterns (#127)
- Improve e2e tests (#130)
- Ui redesign
- Workspace isolation across runtime surfaces (#145)
- Prod ready applies (#162)
- Tool card ui (#164)
- Alpha on logo
- Prod ready features (#167)
- Thread sheet (#202)



### 🎉 Features

- Implement config foundation packages
- Implement sqlite store package
- Add ACP client package
- Add session lifecycle manager
- Implement observe package
- Add daemon composition root
- Add uds api server
- Implement cli package
- Add http api server
- Add system design
- Add foundation types, schemas, and layout shell for web client
- Add daemon health polling and agent sidebar systems for web client
- Add session system CRUD, streaming core, and session store for web
client
- Add chat view, messages, and composer tests for web client
- Add tool cards and renderers for web client
- Add file-backed memory store core
- Scaffold memory session seams
- Add memory dream consolidation service
- Wire memory assembler into daemon
- Add memory api and cli
- New skills system (#1)
- Add workspace entity (#5)
- Add new skill capabilities (#8)
- Web ui v2 (#9)
- Improve hooks system (#10)
- Session resilience (#11)
- Add extensability (#13)
- Add automation (#16)
- Add channels (#14)
- Add network implementation (#15)
- Add network, bridges and automations web pages (#18)
- Ext registry (#20)
- Add core tasks (#19)
- Bridge adapters (#23)
- Add site (#26)
- Add ext refac and sandbox (#25)
- Settings ui (#37)
- Tasks ui (#36)
- Harness improvements (#44)
- Agent capabilities (#49)
- Redesign ui (#48)
- Unify capability (#53)
- Redesign network workspace (#59)
- Add task deletion and split session delete from stop (#58)
- Session provider selection (#60)
- Production grade adjustments (#66)
- Autonomous system (#75)
- Add agent session route (#80)
- Tools registry (#85)
- Agents soul (#88)
- Add network threads (#105)
- Orchestration improvements (#106)
- Memory v2 (#108)
- Agent categories (#113)
- Providers model (#118)
- Add canonical AGH bundled skill (#143)
- Onboarding and improvements (#198)
- Onboarding and improvements (#201)



### 🐛 Bug Fixes

- Review round
- Review rounds
- Resolve memory extensibility review batch
- Embed web into daemon
- Defaults agents
- Acp integration (#4)
- Lint errors
- Prd folder
- Remove orphan web actions and dead surfaces (#55)
- Qa testing and fixes (#73)
- New review rounds (#82)
- Security audit (#90)
- Release qa round (#95)
- Add missing tools (#141)
- New qa round (#147)
- Advanced qa round (#149)
- Homebrew tap
- Final review round (#151)
- Daemon healthy
- Reasoning models (#158)
- Lint errors (#160)
- Review round (#168)
- Release adjustments (#171)
- Stabilize release ci fixtures
- Stabilize release integration gate
- Stabilize release verify gates
- Stabilize release integration flows
- Stabilize release verify gates
- Stabilize main verify shutdown
- Ignore stale acpmock cancel
- Marketplace search focus and filtering (#193)
- Website video
- Workspace command select



### 📚 Documentation

- Update agents.md
- Update prd
- Update skills
- Update compozy tasks
- Update compozy
- Update compozy
- Add new skills
- Archive prd
- Update prds
- Update rfc
- Update prds
- Update prds
- Add automation prd
- Channels prd
- Update prd
- Update prd
- New prds
- Archive prds
- Bridges adapters prd
- Sandbox prd
- Update
- Archive prd
- Update
- Add new prd
- New design
- Update prd
- Archive prds
- Update prds
- Tasks-ui prd tasks
- Update prd
- Update design docs
- Agent capabilities prd
- Improve site docs
- Remove old design references
- Udpate
- Autonomous prd
- Update skills
- Blog design
- Agent sould prd
- Final qa plan
- Update
- Remove codex ledgers from gitignore
- Remove not needed files
- Udpate ledger
- Update cy-codex-loop skill
- Orchestration improves prd
- Update prds
- Orch improvs prd
- Memv2 prd
- Providers model prd
- Update refacs prd
- New design proposal
- Update rules
- Update skills
- New blog posts (#173)
- Format docs
- Remove old design files
- Remove old
- Skeeper update



### 📦 Build System

- Initial structure
- Commitlint
- Frontend base structure
- Update vscode settings
- Add subagents
- Coderabbit
- Prd and tooling
- Bun lock
- Lint tooling
- Copy.md and tooling adjusts
- Add repoclone rc
- Upgrade skeeper to v0.2.0
- Update go.mod
- Adopt task artifacts into skeeper
- Sync codex plans with skeeper
- Skeeper lock
- Skeeper lock
- New skills
- Skeeper lock
- Skeeper lock
- Skeeper lock
- Update deps and go
- Regenerate daytona sidecar assets for go 1.26.3
- Fix cliff
- Ignore docs on fmt
- Build web assets before goreleaser
- Extend release dry-run timeout



### 🔧 CI/CD

- Lint errors
- Fint release pr
- Fix goreleaser



### 🧪 Testing

- Add e2e tests (#27)
- Qa rounds (#78)
- Improve test suite (#138)
- Harden daemon-served restart reloads
- Harden daemon-served readiness waits
- Stabilize dashboard focus assertion
- Stabilize release integration gates
- Stabilize release e2e markers
- Stabilize release e2e flows

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This was referenced May 26, 2026
pedronauck added a commit that referenced this pull request May 26, 2026
## Release v0.0.1

This PR prepares the release of version v0.0.1.

### Changelog

## 0.0.1 - 2026-05-26



### Other Changes

- Lessons learned



### ♻️ Refactoring

- Project structure (#7)
- Kb improvements (#12)
- Rename spaces to channels (#17)
- Add extensions gaps (#21)
- Improve tool calls ui (#22)
- Remove web app header
- Module improvements (#29)
- Memory improvements (#35)
- Storybook for web and ui (#38)
- Enable AGH network by default for new installs (#57)
- Hermes adjustments (#69)
- Badges design (#84)
- Storybook scenario and logos gallery
- Migrate typescript tests (#114)
- Internal go packages (#120)
- Ui patterns (#127)
- Improve e2e tests (#130)
- Ui redesign
- Workspace isolation across runtime surfaces (#145)
- Prod ready applies (#162)
- Tool card ui (#164)
- Alpha on logo
- Prod ready features (#167)
- Thread sheet (#202)



### 🎉 Features

- Implement config foundation packages
- Implement sqlite store package
- Add ACP client package
- Add session lifecycle manager
- Implement observe package
- Add daemon composition root
- Add uds api server
- Implement cli package
- Add http api server
- Add system design
- Add foundation types, schemas, and layout shell for web client
- Add daemon health polling and agent sidebar systems for web client
- Add session system CRUD, streaming core, and session store for web
client
- Add chat view, messages, and composer tests for web client
- Add tool cards and renderers for web client
- Add file-backed memory store core
- Scaffold memory session seams
- Add memory dream consolidation service
- Wire memory assembler into daemon
- Add memory api and cli
- New skills system (#1)
- Add workspace entity (#5)
- Add new skill capabilities (#8)
- Web ui v2 (#9)
- Improve hooks system (#10)
- Session resilience (#11)
- Add extensability (#13)
- Add automation (#16)
- Add channels (#14)
- Add network implementation (#15)
- Add network, bridges and automations web pages (#18)
- Ext registry (#20)
- Add core tasks (#19)
- Bridge adapters (#23)
- Add site (#26)
- Add ext refac and sandbox (#25)
- Settings ui (#37)
- Tasks ui (#36)
- Harness improvements (#44)
- Agent capabilities (#49)
- Redesign ui (#48)
- Unify capability (#53)
- Redesign network workspace (#59)
- Add task deletion and split session delete from stop (#58)
- Session provider selection (#60)
- Production grade adjustments (#66)
- Autonomous system (#75)
- Add agent session route (#80)
- Tools registry (#85)
- Agents soul (#88)
- Add network threads (#105)
- Orchestration improvements (#106)
- Memory v2 (#108)
- Agent categories (#113)
- Providers model (#118)
- Add canonical AGH bundled skill (#143)
- Onboarding and improvements (#198)
- Onboarding and improvements (#201)



### 🐛 Bug Fixes

- Review round
- Review rounds
- Resolve memory extensibility review batch
- Embed web into daemon
- Defaults agents
- Acp integration (#4)
- Lint errors
- Prd folder
- Remove orphan web actions and dead surfaces (#55)
- Qa testing and fixes (#73)
- New review rounds (#82)
- Security audit (#90)
- Release qa round (#95)
- Add missing tools (#141)
- New qa round (#147)
- Advanced qa round (#149)
- Homebrew tap
- Final review round (#151)
- Daemon healthy
- Reasoning models (#158)
- Lint errors (#160)
- Review round (#168)
- Release adjustments (#171)
- Stabilize release ci fixtures
- Stabilize release integration gate
- Stabilize release verify gates
- Stabilize release integration flows
- Stabilize release verify gates
- Stabilize main verify shutdown
- Ignore stale acpmock cancel
- Marketplace search focus and filtering (#193)
- Website video
- Workspace command select



### 📚 Documentation

- Update agents.md
- Update prd
- Update skills
- Update compozy tasks
- Update compozy
- Update compozy
- Add new skills
- Archive prd
- Update prds
- Update rfc
- Update prds
- Update prds
- Add automation prd
- Channels prd
- Update prd
- Update prd
- New prds
- Archive prds
- Bridges adapters prd
- Sandbox prd
- Update
- Archive prd
- Update
- Add new prd
- New design
- Update prd
- Archive prds
- Update prds
- Tasks-ui prd tasks
- Update prd
- Update design docs
- Agent capabilities prd
- Improve site docs
- Remove old design references
- Udpate
- Autonomous prd
- Update skills
- Blog design
- Agent sould prd
- Final qa plan
- Update
- Remove codex ledgers from gitignore
- Remove not needed files
- Udpate ledger
- Update cy-codex-loop skill
- Orchestration improves prd
- Update prds
- Orch improvs prd
- Memv2 prd
- Providers model prd
- Update refacs prd
- New design proposal
- Update rules
- Update skills
- New blog posts (#173)
- Format docs
- Remove old design files
- Remove old
- Skeeper update



### 📦 Build System

- Initial structure
- Commitlint
- Frontend base structure
- Update vscode settings
- Add subagents
- Coderabbit
- Prd and tooling
- Bun lock
- Lint tooling
- Copy.md and tooling adjusts
- Add repoclone rc
- Upgrade skeeper to v0.2.0
- Update go.mod
- Adopt task artifacts into skeeper
- Sync codex plans with skeeper
- Skeeper lock
- Skeeper lock
- New skills
- Skeeper lock
- Skeeper lock
- Skeeper lock
- Update deps and go
- Regenerate daytona sidecar assets for go 1.26.3
- Fix cliff
- Ignore docs on fmt
- Build web assets before goreleaser
- Extend release dry-run timeout



### 🔧 CI/CD

- Lint errors
- Fint release pr
- Fix goreleaser
- Fix release



### 🧪 Testing

- Add e2e tests (#27)
- Qa rounds (#78)
- Improve test suite (#138)
- Harden daemon-served restart reloads
- Harden daemon-served readiness waits
- Stabilize dashboard focus assertion
- Stabilize release integration gates
- Stabilize release e2e markers
- Stabilize release e2e flows

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
pedronauck added a commit that referenced this pull request May 26, 2026
## Release v0.0.2

This PR prepares the release of version v0.0.2.

### Changelog

## 0.0.2 - 2026-05-26



### Other Changes

- Lessons learned



### ♻️ Refactoring

- Project structure (#7)
- Kb improvements (#12)
- Rename spaces to channels (#17)
- Add extensions gaps (#21)
- Improve tool calls ui (#22)
- Remove web app header
- Module improvements (#29)
- Memory improvements (#35)
- Storybook for web and ui (#38)
- Enable AGH network by default for new installs (#57)
- Hermes adjustments (#69)
- Badges design (#84)
- Storybook scenario and logos gallery
- Migrate typescript tests (#114)
- Internal go packages (#120)
- Ui patterns (#127)
- Improve e2e tests (#130)
- Ui redesign
- Workspace isolation across runtime surfaces (#145)
- Prod ready applies (#162)
- Tool card ui (#164)
- Alpha on logo
- Prod ready features (#167)
- Thread sheet (#202)



### 🎉 Features

- Implement config foundation packages
- Implement sqlite store package
- Add ACP client package
- Add session lifecycle manager
- Implement observe package
- Add daemon composition root
- Add uds api server
- Implement cli package
- Add http api server
- Add system design
- Add foundation types, schemas, and layout shell for web client
- Add daemon health polling and agent sidebar systems for web client
- Add session system CRUD, streaming core, and session store for web
client
- Add chat view, messages, and composer tests for web client
- Add tool cards and renderers for web client
- Add file-backed memory store core
- Scaffold memory session seams
- Add memory dream consolidation service
- Wire memory assembler into daemon
- Add memory api and cli
- New skills system (#1)
- Add workspace entity (#5)
- Add new skill capabilities (#8)
- Web ui v2 (#9)
- Improve hooks system (#10)
- Session resilience (#11)
- Add extensability (#13)
- Add automation (#16)
- Add channels (#14)
- Add network implementation (#15)
- Add network, bridges and automations web pages (#18)
- Ext registry (#20)
- Add core tasks (#19)
- Bridge adapters (#23)
- Add site (#26)
- Add ext refac and sandbox (#25)
- Settings ui (#37)
- Tasks ui (#36)
- Harness improvements (#44)
- Agent capabilities (#49)
- Redesign ui (#48)
- Unify capability (#53)
- Redesign network workspace (#59)
- Add task deletion and split session delete from stop (#58)
- Session provider selection (#60)
- Production grade adjustments (#66)
- Autonomous system (#75)
- Add agent session route (#80)
- Tools registry (#85)
- Agents soul (#88)
- Add network threads (#105)
- Orchestration improvements (#106)
- Memory v2 (#108)
- Agent categories (#113)
- Providers model (#118)
- Add canonical AGH bundled skill (#143)
- Onboarding and improvements (#198)
- Onboarding and improvements (#201)



### 🐛 Bug Fixes

- Review round
- Review rounds
- Resolve memory extensibility review batch
- Embed web into daemon
- Defaults agents
- Acp integration (#4)
- Lint errors
- Prd folder
- Remove orphan web actions and dead surfaces (#55)
- Qa testing and fixes (#73)
- New review rounds (#82)
- Security audit (#90)
- Release qa round (#95)
- Add missing tools (#141)
- New qa round (#147)
- Advanced qa round (#149)
- Homebrew tap
- Final review round (#151)
- Daemon healthy
- Reasoning models (#158)
- Lint errors (#160)
- Review round (#168)
- Release adjustments (#171)
- Stabilize release ci fixtures
- Stabilize release integration gate
- Stabilize release verify gates
- Stabilize release integration flows
- Stabilize release verify gates
- Stabilize main verify shutdown
- Ignore stale acpmock cancel
- Marketplace search focus and filtering (#193)
- Website video
- Workspace command select



### 📚 Documentation

- Update agents.md
- Update prd
- Update skills
- Update compozy tasks
- Update compozy
- Update compozy
- Add new skills
- Archive prd
- Update prds
- Update rfc
- Update prds
- Update prds
- Add automation prd
- Channels prd
- Update prd
- Update prd
- New prds
- Archive prds
- Bridges adapters prd
- Sandbox prd
- Update
- Archive prd
- Update
- Add new prd
- New design
- Update prd
- Archive prds
- Update prds
- Tasks-ui prd tasks
- Update prd
- Update design docs
- Agent capabilities prd
- Improve site docs
- Remove old design references
- Udpate
- Autonomous prd
- Update skills
- Blog design
- Agent sould prd
- Final qa plan
- Update
- Remove codex ledgers from gitignore
- Remove not needed files
- Udpate ledger
- Update cy-codex-loop skill
- Orchestration improves prd
- Update prds
- Orch improvs prd
- Memv2 prd
- Providers model prd
- Update refacs prd
- New design proposal
- Update rules
- Update skills
- New blog posts (#173)
- Format docs
- Remove old design files
- Remove old
- Skeeper update



### 📦 Build System

- Initial structure
- Commitlint
- Frontend base structure
- Update vscode settings
- Add subagents
- Coderabbit
- Prd and tooling
- Bun lock
- Lint tooling
- Copy.md and tooling adjusts
- Add repoclone rc
- Upgrade skeeper to v0.2.0
- Update go.mod
- Adopt task artifacts into skeeper
- Sync codex plans with skeeper
- Skeeper lock
- Skeeper lock
- New skills
- Skeeper lock
- Skeeper lock
- Skeeper lock
- Update deps and go
- Regenerate daytona sidecar assets for go 1.26.3
- Fix cliff
- Ignore docs on fmt
- Build web assets before goreleaser
- Extend release dry-run timeout



### 🔧 CI/CD

- Lint errors
- Fint release pr
- Fix goreleaser
- Fix release
- Fix release process



### 🧪 Testing

- Add e2e tests (#27)
- Qa rounds (#78)
- Improve test suite (#138)
- Harden daemon-served restart reloads
- Harden daemon-served readiness waits
- Stabilize dashboard focus assertion
- Stabilize release integration gates
- Stabilize release e2e markers
- Stabilize release e2e flows
- Improve suite speed

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
pedronauck added a commit that referenced this pull request May 27, 2026
## Release v0.0.2

This PR prepares the release of version v0.0.2.

### Changelog

## 0.0.2 - 2026-05-26



### Other Changes

- Lessons learned



### ♻️ Refactoring

- Project structure (#7)
- Kb improvements (#12)
- Rename spaces to channels (#17)
- Add extensions gaps (#21)
- Improve tool calls ui (#22)
- Remove web app header
- Module improvements (#29)
- Memory improvements (#35)
- Storybook for web and ui (#38)
- Enable AGH network by default for new installs (#57)
- Hermes adjustments (#69)
- Badges design (#84)
- Storybook scenario and logos gallery
- Migrate typescript tests (#114)
- Internal go packages (#120)
- Ui patterns (#127)
- Improve e2e tests (#130)
- Ui redesign
- Workspace isolation across runtime surfaces (#145)
- Prod ready applies (#162)
- Tool card ui (#164)
- Alpha on logo
- Prod ready features (#167)
- Thread sheet (#202)



### 🎉 Features

- Implement config foundation packages
- Implement sqlite store package
- Add ACP client package
- Add session lifecycle manager
- Implement observe package
- Add daemon composition root
- Add uds api server
- Implement cli package
- Add http api server
- Add system design
- Add foundation types, schemas, and layout shell for web client
- Add daemon health polling and agent sidebar systems for web client
- Add session system CRUD, streaming core, and session store for web
client
- Add chat view, messages, and composer tests for web client
- Add tool cards and renderers for web client
- Add file-backed memory store core
- Scaffold memory session seams
- Add memory dream consolidation service
- Wire memory assembler into daemon
- Add memory api and cli
- New skills system (#1)
- Add workspace entity (#5)
- Add new skill capabilities (#8)
- Web ui v2 (#9)
- Improve hooks system (#10)
- Session resilience (#11)
- Add extensability (#13)
- Add automation (#16)
- Add channels (#14)
- Add network implementation (#15)
- Add network, bridges and automations web pages (#18)
- Ext registry (#20)
- Add core tasks (#19)
- Bridge adapters (#23)
- Add site (#26)
- Add ext refac and sandbox (#25)
- Settings ui (#37)
- Tasks ui (#36)
- Harness improvements (#44)
- Agent capabilities (#49)
- Redesign ui (#48)
- Unify capability (#53)
- Redesign network workspace (#59)
- Add task deletion and split session delete from stop (#58)
- Session provider selection (#60)
- Production grade adjustments (#66)
- Autonomous system (#75)
- Add agent session route (#80)
- Tools registry (#85)
- Agents soul (#88)
- Add network threads (#105)
- Orchestration improvements (#106)
- Memory v2 (#108)
- Agent categories (#113)
- Providers model (#118)
- Add canonical AGH bundled skill (#143)
- Onboarding and improvements (#198)
- Onboarding and improvements (#201)



### 🐛 Bug Fixes

- Review round
- Review rounds
- Resolve memory extensibility review batch
- Embed web into daemon
- Defaults agents
- Acp integration (#4)
- Lint errors
- Prd folder
- Remove orphan web actions and dead surfaces (#55)
- Qa testing and fixes (#73)
- New review rounds (#82)
- Security audit (#90)
- Release qa round (#95)
- Add missing tools (#141)
- New qa round (#147)
- Advanced qa round (#149)
- Homebrew tap
- Final review round (#151)
- Daemon healthy
- Reasoning models (#158)
- Lint errors (#160)
- Review round (#168)
- Release adjustments (#171)
- Stabilize release ci fixtures
- Stabilize release integration gate
- Stabilize release verify gates
- Stabilize release integration flows
- Stabilize release verify gates
- Stabilize main verify shutdown
- Ignore stale acpmock cancel
- Marketplace search focus and filtering (#193)
- Website video
- Workspace command select



### 📚 Documentation

- Update agents.md
- Update prd
- Update skills
- Update compozy tasks
- Update compozy
- Update compozy
- Add new skills
- Archive prd
- Update prds
- Update rfc
- Update prds
- Update prds
- Add automation prd
- Channels prd
- Update prd
- Update prd
- New prds
- Archive prds
- Bridges adapters prd
- Sandbox prd
- Update
- Archive prd
- Update
- Add new prd
- New design
- Update prd
- Archive prds
- Update prds
- Tasks-ui prd tasks
- Update prd
- Update design docs
- Agent capabilities prd
- Improve site docs
- Remove old design references
- Udpate
- Autonomous prd
- Update skills
- Blog design
- Agent sould prd
- Final qa plan
- Update
- Remove codex ledgers from gitignore
- Remove not needed files
- Udpate ledger
- Update cy-codex-loop skill
- Orchestration improves prd
- Update prds
- Orch improvs prd
- Memv2 prd
- Providers model prd
- Update refacs prd
- New design proposal
- Update rules
- Update skills
- New blog posts (#173)
- Format docs
- Remove old design files
- Remove old
- Skeeper update



### 📦 Build System

- Initial structure
- Commitlint
- Frontend base structure
- Update vscode settings
- Add subagents
- Coderabbit
- Prd and tooling
- Bun lock
- Lint tooling
- Copy.md and tooling adjusts
- Add repoclone rc
- Upgrade skeeper to v0.2.0
- Update go.mod
- Adopt task artifacts into skeeper
- Sync codex plans with skeeper
- Skeeper lock
- Skeeper lock
- New skills
- Skeeper lock
- Skeeper lock
- Skeeper lock
- Update deps and go
- Regenerate daytona sidecar assets for go 1.26.3
- Fix cliff
- Ignore docs on fmt
- Build web assets before goreleaser
- Extend release dry-run timeout



### 🔧 CI/CD

- Lint errors
- Fint release pr
- Fix goreleaser
- Fix release
- Fix release process
- Fix release sync
- Decouple release dry-run npm auth
- Persist web assets git auth



### 🧪 Testing

- Add e2e tests (#27)
- Qa rounds (#78)
- Improve test suite (#138)
- Harden daemon-served restart reloads
- Harden daemon-served readiness waits
- Stabilize dashboard focus assertion
- Stabilize release integration gates
- Stabilize release e2e markers
- Stabilize release e2e flows
- Improve suite speed


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated web assets dependency to a newer version for improved
stability and performance.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/compozy/agh/pull/211?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
pedronauck added a commit that referenced this pull request May 27, 2026
## Release v0.0.2

This PR prepares the release of version v0.0.2.

### Changelog

## 0.0.2 - 2026-05-27



### Other Changes

- Lessons learned



### ♻️ Refactoring

- Project structure (#7)
- Kb improvements (#12)
- Rename spaces to channels (#17)
- Add extensions gaps (#21)
- Improve tool calls ui (#22)
- Remove web app header
- Module improvements (#29)
- Memory improvements (#35)
- Storybook for web and ui (#38)
- Enable AGH network by default for new installs (#57)
- Hermes adjustments (#69)
- Badges design (#84)
- Storybook scenario and logos gallery
- Migrate typescript tests (#114)
- Internal go packages (#120)
- Ui patterns (#127)
- Improve e2e tests (#130)
- Ui redesign
- Workspace isolation across runtime surfaces (#145)
- Prod ready applies (#162)
- Tool card ui (#164)
- Alpha on logo
- Prod ready features (#167)
- Thread sheet (#202)



### 🎉 Features

- Implement config foundation packages
- Implement sqlite store package
- Add ACP client package
- Add session lifecycle manager
- Implement observe package
- Add daemon composition root
- Add uds api server
- Implement cli package
- Add http api server
- Add system design
- Add foundation types, schemas, and layout shell for web client
- Add daemon health polling and agent sidebar systems for web client
- Add session system CRUD, streaming core, and session store for web
client
- Add chat view, messages, and composer tests for web client
- Add tool cards and renderers for web client
- Add file-backed memory store core
- Scaffold memory session seams
- Add memory dream consolidation service
- Wire memory assembler into daemon
- Add memory api and cli
- New skills system (#1)
- Add workspace entity (#5)
- Add new skill capabilities (#8)
- Web ui v2 (#9)
- Improve hooks system (#10)
- Session resilience (#11)
- Add extensability (#13)
- Add automation (#16)
- Add channels (#14)
- Add network implementation (#15)
- Add network, bridges and automations web pages (#18)
- Ext registry (#20)
- Add core tasks (#19)
- Bridge adapters (#23)
- Add site (#26)
- Add ext refac and sandbox (#25)
- Settings ui (#37)
- Tasks ui (#36)
- Harness improvements (#44)
- Agent capabilities (#49)
- Redesign ui (#48)
- Unify capability (#53)
- Redesign network workspace (#59)
- Add task deletion and split session delete from stop (#58)
- Session provider selection (#60)
- Production grade adjustments (#66)
- Autonomous system (#75)
- Add agent session route (#80)
- Tools registry (#85)
- Agents soul (#88)
- Add network threads (#105)
- Orchestration improvements (#106)
- Memory v2 (#108)
- Agent categories (#113)
- Providers model (#118)
- Add canonical AGH bundled skill (#143)
- Onboarding and improvements (#198)
- Onboarding and improvements (#201)



### 🐛 Bug Fixes

- Review round
- Review rounds
- Resolve memory extensibility review batch
- Embed web into daemon
- Defaults agents
- Acp integration (#4)
- Lint errors
- Prd folder
- Remove orphan web actions and dead surfaces (#55)
- Qa testing and fixes (#73)
- New review rounds (#82)
- Security audit (#90)
- Release qa round (#95)
- Add missing tools (#141)
- New qa round (#147)
- Advanced qa round (#149)
- Homebrew tap
- Final review round (#151)
- Daemon healthy
- Reasoning models (#158)
- Lint errors (#160)
- Review round (#168)
- Release adjustments (#171)
- Stabilize release ci fixtures
- Stabilize release integration gate
- Stabilize release verify gates
- Stabilize release integration flows
- Stabilize release verify gates
- Stabilize main verify shutdown
- Ignore stale acpmock cancel
- Marketplace search focus and filtering (#193)
- Website video
- Workspace command select



### 📚 Documentation

- Update agents.md
- Update prd
- Update skills
- Update compozy tasks
- Update compozy
- Update compozy
- Add new skills
- Archive prd
- Update prds
- Update rfc
- Update prds
- Update prds
- Add automation prd
- Channels prd
- Update prd
- Update prd
- New prds
- Archive prds
- Bridges adapters prd
- Sandbox prd
- Update
- Archive prd
- Update
- Add new prd
- New design
- Update prd
- Archive prds
- Update prds
- Tasks-ui prd tasks
- Update prd
- Update design docs
- Agent capabilities prd
- Improve site docs
- Remove old design references
- Udpate
- Autonomous prd
- Update skills
- Blog design
- Agent sould prd
- Final qa plan
- Update
- Remove codex ledgers from gitignore
- Remove not needed files
- Udpate ledger
- Update cy-codex-loop skill
- Orchestration improves prd
- Update prds
- Orch improvs prd
- Memv2 prd
- Providers model prd
- Update refacs prd
- New design proposal
- Update rules
- Update skills
- New blog posts (#173)
- Format docs
- Remove old design files
- Remove old
- Skeeper update



### 📦 Build System

- Initial structure
- Commitlint
- Frontend base structure
- Update vscode settings
- Add subagents
- Coderabbit
- Prd and tooling
- Bun lock
- Lint tooling
- Copy.md and tooling adjusts
- Add repoclone rc
- Upgrade skeeper to v0.2.0
- Update go.mod
- Adopt task artifacts into skeeper
- Sync codex plans with skeeper
- Skeeper lock
- Skeeper lock
- New skills
- Skeeper lock
- Skeeper lock
- Skeeper lock
- Update deps and go
- Regenerate daytona sidecar assets for go 1.26.3
- Fix cliff
- Ignore docs on fmt
- Build web assets before goreleaser
- Extend release dry-run timeout
- Fix release dry-run token contract



### 🔧 CI/CD

- Lint errors
- Fint release pr
- Fix goreleaser
- Fix release
- Fix release process
- Fix release sync
- Decouple release dry-run npm auth
- Persist web assets git auth
- Require npm auth before release merge



### 🧪 Testing

- Add e2e tests (#27)
- Qa rounds (#78)
- Improve test suite (#138)
- Harden daemon-served restart reloads
- Harden daemon-served readiness waits
- Stabilize dashboard focus assertion
- Stabilize release integration gates
- Stabilize release e2e markers
- Stabilize release e2e flows
- Improve suite speed


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
  * Updated dependencies to latest versions.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/compozy/agh/pull/214?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
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