refactor: prod ready applies#162
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
WalkthroughAdds provider/bridge/skill diagnostics, native-CLI auth status, MCP runtime probing, transcript/tool redaction, model canonicalization, CLI/daemon enhancements, permission hardening, and extensive tests/spec/install/footer updates. ChangesDiagnostics, auth surfaces, and hardening
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
|
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Nitpick comments (3)
internal/api/core/provider_auth_status_test.go (1)
93-98: ⚡ Quick winAssert the new native-CLI fields directly in this test.
Please also assert
AuthStatus.NativeCLI.Present == falseandAuthStatus.NativeCLI.Source == "auth_login_command"so regressions on the new auth diagnostics surface are caught.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@internal/api/core/provider_auth_status_test.go` around lines 93 - 98, The test currently checks NativeCLI non-nil and Command but misses asserting the new fields; update the assertions in provider_auth_status_test.go to also verify authStatus.NativeCLI.Present == false and authStatus.NativeCLI.Source == "auth_login_command" (in addition to the existing Command == "codex") and keep the existing LoginEnv assertion; reference the authStatus variable and its NativeCLI field when adding these checks so regressions in the new auth diagnostic fields are caught.internal/transcript/transcript.go (1)
203-216: 💤 Low valueRedundant flush when marker text is empty.
When
markerTextis empty,flushAssistantBufferis called at line 206, then the function returns at line 208. WhenmarkerTextis non-empty, anotherflushAssistantBufferis called at line 209. The flush at line 209 is always needed for non-empty markers, but the structure could be cleaner.♻️ Optional simplification
func appendMarkerTranscriptMessage(messages *[]Message, assistant *assistantBuffer, parsed event) { markerText := transcriptMarkerText(parsed) + flushAssistantBuffer(messages, assistant) if markerText == "" { - flushAssistantBuffer(messages, assistant) return } - flushAssistantBuffer(messages, assistant) *messages = append(*messages, Message{ ID: parsed.ID, Role: RoleSystem, Content: markerText, Timestamp: parsed.Timestamp, }) }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@internal/transcript/transcript.go` around lines 203 - 216, The function appendMarkerTranscriptMessage currently calls flushAssistantBuffer twice; compute markerText via transcriptMarkerText(parsed), then call flushAssistantBuffer(messages, assistant) only once before the empty check, and if markerText=="" return; otherwise append the Message (using parsed.ID, RoleSystem, markerText, parsed.Timestamp). Update appendMarkerTranscriptMessage to remove the redundant flush and ensure a single flush occurs for both empty and non-empty marker cases.internal/transcript/redaction.go (1)
141-174: 💤 Low valueIn-place mutation of unmarshaled JSON value.
redactJSONDisplayValuemutates the inputmap[string]anyand[]anyin place while also returning them. Since the caller inredactRawMessageunmarshal into a freshanyvariable and immediately re-marshals the result, this works correctly. However, if this function were reused elsewhere with a shared value, the mutation would affect the original. The current usage is safe, but consider documenting this behavior or cloning the input for defensive coding.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@internal/transcript/redaction.go` around lines 141 - 174, redactJSONDisplayValue currently mutates map[string]any and []any inputs in place which can unexpectedly modify shared data; update redactJSONDisplayValue to avoid in-place mutation by deep-cloning maps and slices before writing (or explicitly document the in-place behavior) so callers like redactRawMessage remain safe; specifically, when handling case map[string]any and case []any, allocate new maps/slices, copy keys/elements, apply redaction into the new copy, and return that copy (refer to function redactJSONDisplayValue and its callers such as redactRawMessage, and preserve behavior of sensitiveDisplayJSONField and redactDisplayString).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@internal/api/core/bridge_diagnostics.go`:
- Around line 40-44: The diagnostics path currently calls
bridgeProviderForInstance (which invokes ListProviders) for each instance,
causing N instances ⇒ N catalog calls; instead, compute the provider catalog
once and reuse it when building diagnostics: change the diagnostics builder to
accept a pre-fetched provider catalog/map (or memoize ListProviders) and look up
the provider info per instance rather than calling bridgeProviderForInstance
repeatedly; update usages around bridgeSecretBindingsForDiagnostics and the code
paths referenced (the blocks at and around the calls to
bridgeProviderForInstance and bridgeSecretBindingsForDiagnostics) to use the
shared catalog/provider map so ListProviders is invoked only once.
In `@internal/api/core/bridges.go`:
- Around line 75-79: The handler currently aborts with h.respondError and return
when h.bridgeHealthPayloadForInstance fails; change this to degrade gracefully
by catching the error, logging it (or using h.logger if available) and
continuing without returning — set enrichedHealth to the basic health value (or
nil/empty diagnostics) so the rest of the response can be built and returned;
specifically update the error branch around the call to
h.bridgeHealthPayloadForInstance so it does not call h.respondError/return but
instead records the error and proceeds using the original health data in
enrichedHealth.
In `@internal/bridges/diagnostics.go`:
- Around line 115-117: The code is directly embedding provider error/degradation
strings into BridgeDiagnostic.Message (e.g., provider.HealthMessage,
provider.DegradationMessage and other error strings); replace that by first
passing those strings through a redaction helper (e.g., redactSensitiveTokens(s
string)) that strips/replaces claim_token patterns (agh_claim_*), MCP auth
tokens, OAuth codes, PKCE verifiers, secret bindings and other credential-like
patterns with a fixed "<redacted>" placeholder, then use the sanitized result
when building the message and when setting BridgeDiagnostic.Message; add and
reuse this helper wherever provider.* messages or error strings are appended
(refer to BridgeDiagnostic.Message, provider.HealthMessage and
provider.DegradationMessage to locate places to change). Ensure tests or
examples cover typical token patterns to verify redaction.
In `@internal/daemon/settings.go`:
- Line 28: Replace the hardcoded constant settingsMCPProbeTimeout with a
configurable value sourced from config/env/CLI: add a configuration field (e.g.,
MCPProbeTimeout) to your daemon settings struct and load it from config.toml or
an environment variable (with CLI flag override), parse it as a time.Duration,
and use that field wherever settingsMCPProbeTimeout is referenced (including any
duplicate uses), providing a sensible default of 5s if not set; ensure code
refers to the struct field (e.g., cfg.Daemon.MCPProbeTimeout) instead of the old
constant and validate the parsed duration (>0) before use.
In `@internal/settings/models.go`:
- Around line 528-530: cloneProviderItem currently doesn't deep-copy the new
mutable fields on ProviderAuthStatus (LoginEnv and NativeCLI), which can cause
shared-state leaks; update cloneProviderItem to perform a deep copy of LoginEnv
(allocate a new []string and copy elements) and deep-copy NativeCLI by creating
a new ProviderNativeCLIStatus and copying its fields (or cloning via its own
copy helper) before assigning to the cloned ProviderAuthStatus so the returned
struct has independent mutable sub-objects.
---
Nitpick comments:
In `@internal/api/core/provider_auth_status_test.go`:
- Around line 93-98: The test currently checks NativeCLI non-nil and Command but
misses asserting the new fields; update the assertions in
provider_auth_status_test.go to also verify authStatus.NativeCLI.Present ==
false and authStatus.NativeCLI.Source == "auth_login_command" (in addition to
the existing Command == "codex") and keep the existing LoginEnv assertion;
reference the authStatus variable and its NativeCLI field when adding these
checks so regressions in the new auth diagnostic fields are caught.
In `@internal/transcript/redaction.go`:
- Around line 141-174: redactJSONDisplayValue currently mutates map[string]any
and []any inputs in place which can unexpectedly modify shared data; update
redactJSONDisplayValue to avoid in-place mutation by deep-cloning maps and
slices before writing (or explicitly document the in-place behavior) so callers
like redactRawMessage remain safe; specifically, when handling case
map[string]any and case []any, allocate new maps/slices, copy keys/elements,
apply redaction into the new copy, and return that copy (refer to function
redactJSONDisplayValue and its callers such as redactRawMessage, and preserve
behavior of sensitiveDisplayJSONField and redactDisplayString).
In `@internal/transcript/transcript.go`:
- Around line 203-216: The function appendMarkerTranscriptMessage currently
calls flushAssistantBuffer twice; compute markerText via
transcriptMarkerText(parsed), then call flushAssistantBuffer(messages,
assistant) only once before the empty check, and if markerText=="" return;
otherwise append the Message (using parsed.ID, RoleSystem, markerText,
parsed.Timestamp). Update appendMarkerTranscriptMessage to remove the redundant
flush and ensure a single flush occurs for both empty and non-empty marker
cases.
🪄 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: 30a361fe-f0c8-4c02-988a-8afa86a15a53
⛔ Files ignored due to path filters (17)
.agents/skills/agent-exploration/SKILL.mdis excluded by!**/*.md,!.agents/**.agents/skills/agent-exploration/assets/AGENT.mdis excluded by!**/*.md,!.agents/**.agents/skills/agent-exploration/assets/explorer-agent.mdis excluded by!**/*.md,!.agents/**.agents/skills/agent-exploration/assets/explorer-agent.tomlis excluded by!**/*.toml,!.agents/**.agents/skills/agent-exploration/references/checklist.mdis excluded by!**/*.md,!.agents/**.agents/skills/agent-exploration/references/dispatch-rules.mdis excluded by!**/*.md,!.agents/**.agents/skills/agent-exploration/scripts/dispatch-slices.shis excluded by!.agents/**.agents/skills/agent-exploration/scripts/install-explorer.shis excluded by!.agents/**.agents/skills/handoff/SKILL.mdis excluded by!**/*.md,!.agents/**internal/sandbox/daytona/sidecar_assets/agh-daytona-sidecar-linux-amd64.gzis excluded by!**/*.gzinternal/sandbox/daytona/sidecar_assets/agh-daytona-sidecar-linux-arm64.gzis excluded by!**/*.gzopenapi/agh.jsonis excluded by!**/*.jsonpackages/site/content/runtime/core/agents/providers.mdxis excluded by!**/*.mdxpackages/site/content/runtime/core/configuration/config-toml.mdxis excluded by!**/*.mdxpackages/site/content/runtime/core/operations/troubleshooting.mdxis excluded by!**/*.mdxskills-lock.jsonis excluded by!**/*.jsonweb/src/generated/agh-openapi.d.tsis excluded by!**/generated/**
📒 Files selected for processing (83)
.claudeignore.goreleaser.release-footer.md.tmplinternal/acp/failure.gointernal/acp/failure_test.gointernal/acp/provider_failure.gointernal/api/contract/bridges.gointernal/api/contract/contract.gointernal/api/contract/settings.gointernal/api/core/bridge_diagnostics.gointernal/api/core/bridge_diagnostics_test.gointernal/api/core/bridges.gointernal/api/core/conversions.gointernal/api/core/provider_auth_status_test.gointernal/api/core/skills_test.gointernal/api/spec/settings_test.gointernal/api/spec/spec.gointernal/api/spec/spec_test.gointernal/bridges/diagnostics.gointernal/bridges/diagnostics_test.gointernal/cli/client.gointernal/cli/client_actionable_errors_test.gointernal/cli/daemon.gointernal/cli/mcp_auth.gointernal/cli/mcp_auth_test.gointernal/cli/provider.gointernal/cli/provider_test.gointernal/cli/root.gointernal/config/dotenv.gointernal/config/dotenv_permissions_test.gointernal/config/hermetic_env_test.gointernal/config/provider.gointernal/config/provider_alias_test.gointernal/config/provider_test.gointernal/config/release_config_test.gointernal/daemon/boot.gointernal/daemon/settings.gointernal/daemon/settings_test.gointernal/diagnostics/redact.gointernal/diagnostics/redact_test.gointernal/extension/bridge_delivery_integration_test.gointernal/extension/manager_test.gointernal/extension/reference_integration_test.gointernal/modelcatalog/sources.gointernal/modelcatalog/sources_test.gointernal/providerauth/native_cli.gointernal/providerenv/env.gointernal/scheduler/scheduler_integration_test.gointernal/session/manager_prompt.gointernal/session/provider_runtime.gointernal/session/provider_runtime_test.gointernal/settings/collections.gointernal/settings/mcp_runtime_status_test.gointernal/settings/models.gointernal/settings/provider_auth_status_test.gointernal/settings/sections.gointernal/settings/service.gointernal/settings/skill_diagnostics_test.gointernal/skills/diagnostics.gointernal/skills/registry.gointernal/skills/registry_agent.gointernal/skills/registry_diagnostics.gointernal/skills/registry_diagnostics_test.gointernal/skills/registry_snapshot.gointernal/skills/registry_workspace_cache.gointernal/skills/types.gointernal/store/globaldb/global_db_task_claim_adversarial_test.gointernal/testutil/e2e/runtime_harness.gointernal/testutil/hermetic_env.gointernal/testutil/hermetic_env_test.gointernal/tools/dispatch_test.gointernal/tools/result_limit.gointernal/transcript/markers.gointernal/transcript/redaction.gointernal/transcript/transcript.gointernal/transcript/transcript_test.gointernal/transcript/ui_messages.gointernal/vault/crypto.gointernal/vault/service_test.gopackages/site/lib/__tests__/public-install-contract.test.tspackages/site/public/install.shpackages/site/scripts/__tests__/generate-changelog-release.test.tspackages/site/scripts/generate-changelog-release.tsweb/src/lib/__tests__/settings-api-contract.test.ts
There was a problem hiding this comment.
🧹 Nitpick comments (1)
internal/bridges/diagnostics.go (1)
76-76: ⚡ Quick winVariable
diagnosticsshadows the imported package name.The local variable
diagnosticson line 76 shadows the importeddiagnosticspackage from line 7. This can cause confusion and potential bugs if future modifications attempt to calldiagnostics.Redact()within this function scope.♻️ Suggested rename to avoid shadowing
func BuildBridgeDiagnostics(input BridgeDiagnosticsInput) []BridgeDiagnostic { instance := input.Instance.normalize() - diagnostics := make([]BridgeDiagnostic, 0, 5) - diagnostics = append(diagnostics, providerDiagnostics(instance, input)...) - diagnostics = append(diagnostics, missingTokenDiagnostics(instance, input)...) - diagnostics = append(diagnostics, destinationDiagnostics(instance, input)...) + results := make([]BridgeDiagnostic, 0, 5) + results = append(results, providerDiagnostics(instance, input)...) + results = append(results, missingTokenDiagnostics(instance, input)...) + results = append(results, destinationDiagnostics(instance, input)...) if diagnostic, ok := permissionDiagnostic(instance, input); ok { - diagnostics = append(diagnostics, diagnostic) + results = append(results, diagnostic) } if diagnostic, ok := transientDeliveryDiagnostic(instance, input); ok { - diagnostics = append(diagnostics, diagnostic) + results = append(results, diagnostic) } - return diagnostics + return results }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@internal/bridges/diagnostics.go` at line 76, The local variable diagnostics in the function that initializes BridgeDiagnostic slices shadows the imported diagnostics package; rename the local variable (e.g., bridgeDiagnostics or diagList) wherever it's declared and referenced (the make([]BridgeDiagnostic, ...) line and subsequent uses) so the package symbol diagnostics remains available (e.g., to call diagnostics.Redact()). Update all references inside the function to the new variable name.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@internal/bridges/diagnostics.go`:
- Line 76: The local variable diagnostics in the function that initializes
BridgeDiagnostic slices shadows the imported diagnostics package; rename the
local variable (e.g., bridgeDiagnostics or diagList) wherever it's declared and
referenced (the make([]BridgeDiagnostic, ...) line and subsequent uses) so the
package symbol diagnostics remains available (e.g., to call
diagnostics.Redact()). Update all references inside the function to the new
variable name.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 135fb078-e6e4-47fe-8b21-a9fde48bd068
📒 Files selected for processing (10)
internal/api/core/bridge_diagnostics.gointernal/api/core/bridge_diagnostics_test.gointernal/api/core/bridges.gointernal/api/core/provider_auth_status_test.gointernal/bridges/diagnostics.gointernal/bridges/diagnostics_test.gointernal/daemon/settings.gointernal/daemon/settings_test.gointernal/settings/models.gointernal/settings/provider_auth_status_test.go
## 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>
## 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>
## 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>
## 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 --> [](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>
## 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 --> [](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>
Summary by CodeRabbit
New Features
Improvements
Bug Fixes