Open
freemo
wants to merge 6 commits from
feature/m7-post-server into master
pull from: feature/m7-post-server
merge into: cleveragents:master
cleveragents:master
cleveragents:fix/config-service-remove-undocumented-local-scope
cleveragents:bugfix/validation-attach-named-option-format
cleveragents:docs/add-example-tool-and-validation-management
cleveragents:bugfix/project-show-resource-name
cleveragents:bugfix/backlog-resource-schema-missing-overlay-strategy
cleveragents:fix/action-argument-schema/misleading-error-message
cleveragents:fix/remove-executable-resource-type
cleveragents:fix/config-get-output-missing-origin-panel-and-envelope
cleveragents:fix/tui-help-command-full-catalog-listing
cleveragents:fix/a2a-plan-execute-full-lifecycle
cleveragents:fix/invariant-service-action-scope-effective
cleveragents:fix/plan-explain-rich-output-panels
cleveragents:fix/a2a-dispatch-not-found-error-response
cleveragents:fix/project-service-namespaced-project
cleveragents:fix/automation-profile-remove-rich-output-panel
cleveragents:fix/container-handler-module-missing
cleveragents:fix/format-output-rich-color-renderers
cleveragents:fix/type-safety-legacy-migrator-type-ignore
cleveragents:spec/update-sse-streaming-event-example
cleveragents:fix/acms-skeleton-compressor-signature
cleveragents:controller-state-machine
cleveragents:fix/skill-add-yaml-wrapper-key
cleveragents:fix/1476-tool-list-cols
cleveragents:bugfix/permissions-diff-mode-cycle
cleveragents:fix/1444-access-type
cleveragents:fix/1429-node-ref
cleveragents:fix/1443-tier-defaults
cleveragents:bugfix/session-export-format-flag
cleveragents:feature/aws-cloud-handler-sdk
cleveragents:feat/output-renderer-registry
cleveragents:fix/1432-lsp
cleveragents:bugfix/1039-missing-validation-unit-tests-yaml
cleveragents:feature/audit-preserve-event-timestamp
cleveragents:feature/m8-tui-materializer
cleveragents:tdd/m4-automation-profile-di-bypass
cleveragents:bugfix/m7-audit-session-race
cleveragents:fix/1441-ctrl-tab
cleveragents:feature/m9-entity-sync
cleveragents:feature/extract-cleveractors-library
cleveragents:feature/m9-agent-card
cleveragents:feature/m9-team-collab
cleveragents:feature/m7-postgresql-backend
cleveragents:feature/m9-container-lifecycle
cleveragents:fix/issue-11189-config-actor-format
cleveragents:bugfix/m5-actor-options-ignored
cleveragents:fix-11004-tui-suggestions
cleveragents:feature/9827-wrap-plan-status-json-envelope
cleveragents:fix/arg-swap-validation-attachment-8177
cleveragents:pr-fix/9663-hot-warm-cold-tier-reliability
cleveragents:pr_fix-11000-conflict-report
cleveragents:bugfix/m3.6.0-lsp-7044-subprocess-cleanup
cleveragents:fix/7478-file-ops-security-fix
cleveragents:impl-tui-materializer
cleveragents:test/hierarchical-plan-4phase-lifecycle
cleveragents:feature/security-fix-relpath-pr-11217
cleveragents:feature/m2-implementation-pool-supervisor-checklist
cleveragents:fix-file-tools-path-validation
cleveragents:bugfix/m8-tui-input-live-refresh
cleveragents:feature/9126-fix-action-scope-invariant-merge
cleveragents:bugfix/m7-tool-calling-llm-options
cleveragents:fix-7478-startswith-bypass
cleveragents:bugfix/m3-cleanup-subprocess-on-failed-init
cleveragents:bugfix/m8-tui-anthropic-model-name
cleveragents:feat/integrate-cleveractors
cleveragents:feature/m8-tui-llm-dispatch
cleveragents:bugfix/m3.6.0-lsp-transport-header-injection-ascii
cleveragents:fix-11175
cleveragents:fix/auto_debug-partial-state
cleveragents:fix/issue-9124-add-bdd-tags
cleveragents:pr-9673-budget-enforcement
cleveragents:fix/actor-loader-list-actors-race-condition
cleveragents:pr-9675
cleveragents:feat/v3.3.0-three-way-merge-engine
cleveragents:fix/issue-7478-inline-executor-startswith-bypass
cleveragents:fix/plan-apply-json-envelope
cleveragents:feat/v3.4.0-acms-storage-tiers
cleveragents:feat/tui-tuimat-5326
cleveragents:fix-9675-context-show-clear
cleveragents:agents/final-working
cleveragents:feat/v3.4.0-context-show-clear-cli
cleveragents:fix/10356-eventbus-unsubscribe
cleveragents:11229-fix-acms-hot-max-tokens-regression-tests
cleveragents:pr-fix-7801
cleveragents:pr-8701-invariant-model
cleveragents:pr-fix/10597-lsp-transport-cleanup
cleveragents:bugfix/m3.6.0-lsp-transport-resource-leak
cleveragents:bugfix/9558-plan-conflict-detection
cleveragents:pr-fix-9608
cleveragents:feat/v3.3.0-plan-correct-revert-append
cleveragents:dmpipeline-v2
cleveragents:pr-fix-10608-header-injection
cleveragents:pr-9827-fix
cleveragents:bugfix/7492-validation-attachment-argument-swap
cleveragents:pr-fix-11002
cleveragents:feat/v3.4.0-context-list-add-cli
cleveragents:fix/plan-status-json-envelope
cleveragents:feat/v370/multi-session-tabs
cleveragents:fix-branch
cleveragents:fix/project-show-missing-panels
cleveragents:AUTO-IMP/PR-10069-checklist
cleveragents:feature/m2-pr-compliance-checklist
cleveragents:feature/pr-10592-cloud-resource-types
cleveragents:fix-lsp-transport-cleanup
cleveragents:feat/v360/cloud-resource-types
cleveragents:feature/context-strategy-protocol
cleveragents:refactor/v3.6.0-acp-to-a2a-rename
cleveragents:fix/context-cli-consolidation
cleveragents:fix/10608-lsp-header-injection
cleveragents:feat/acms-context-index
cleveragents:fix/plan-status-missing-output-panels
cleveragents:pr/fix-arg-swap-validation-attachment-8177
cleveragents:feature/issue-4748-actor-context-list-show-clear
cleveragents:fix-cli-plan-status-envelope
cleveragents:fix/plan-tree-color-format-ansi-output
cleveragents:pr/9981
cleveragents:pr/11153-auto-debug-fix
cleveragents:pr/10589-tui-materializer
cleveragents:fix/validate_path_security
cleveragents:pr-fix-11177-status-check-native-expressions
cleveragents:bugfix/m6-validate-path-startswith
cleveragents:security/relpath-containment-fallback
cleveragents:a2a-materializer-pr-fix
cleveragents:pr-fix-10608
cleveragents:bugfix/9250-a2a-session-id-validation-before-cleanup
cleveragents:pr-fix-11053
cleveragents:fix/10496-auto-debug-node-state-mutation
cleveragents:feat/tui-v370/tui-materializer
cleveragents:fix/a2a-handle-session-close-missing-session-id
cleveragents:fix/validation-attachment-arg-swap-8177
cleveragents:pr-fix-11196-invariant
cleveragents:feat/v3.4.0-acms-budget-enforcement
cleveragents:pr-fix-11196
cleveragents:bugfix/m5-fix-hot-max-tokens-tier
cleveragents:pr-fix-9675
cleveragents:perf/acms-large-project-indexing-optimization
cleveragents:perf-fix
cleveragents:pr-9608
cleveragents:feature/ten-way-merge-engine
cleveragents:pr-fix-branch
cleveragents:pr-11217
cleveragents:bugfix/9608-three-way-merge-engine
cleveragents:11101-three-way-merge-engine
cleveragents:feat/v3.4.0/acms-context-policy
cleveragents:fix/remove-silent-argument-swap
cleveragents:fix-pr-11000-structured-conflict-report
cleveragents:pr-fix-11053-session-id-validation
cleveragents:agents/fix-eventbus-unsubscribe
cleveragents:pr-10356
cleveragents:fix/invariant-action-scope
cleveragents:bugfix/issue-8395-sanitise-db-url
cleveragents:bugfix/m3-fix-action-scope-invariant-merge
cleveragents:pr-9671
cleveragents:feature/wire-missing-event-emitters
cleveragents:bugfix/m3.6.0-lsp-transport-post-spawn-cleanup
cleveragents:dmpipeline
cleveragents:bugfix/m5-acms-project-budget-override
cleveragents:fix/iterate-all-actors
cleveragents:pr/11217-fix-prefix-collision-bypass
cleveragents:fix/pr-11011-subprocess-cleanup
cleveragents:pr-11217-fix
cleveragents:pr-11217-relpath-fix
cleveragents:feat/v3.6.0-context-strategy-protocol
cleveragents:bugfix/tui-actor-overlay-render-shadow
cleveragents:bugfix/m5-revert-acms-budget-assembler
cleveragents:fix/eventbus-unsubscribe
cleveragents:feature/pr-9981
cleveragents:fix/v3.7.0/actor-add-update-flag
cleveragents:agents/fix-invariant-persistence-8573
cleveragents:fix/invariant-database-persistence
cleveragents:feat/tui-materializer-a2a
cleveragents:fix/tui-tui-materializer-a2a-event-queue
cleveragents:fix/unsubscribe-eventbus
cleveragents:pr-11153
cleveragents:feature/11201
cleveragents:pr-fix-11153-patched
cleveragents:pr-branch
cleveragents:fix/10813-strategy-decision-persistence
cleveragents:fix-pr-11145-status-check
cleveragents:pr-11053
cleveragents:pr-fix-10597-subprocess-cleanup
cleveragents:bugfix/mcp-infer-resource-slots-null-properties
cleveragents:pr-11166
cleveragents:pr-9675-fix
cleveragents:feat/structural-component-output-validation
cleveragents:fix/invariant-service-thread-safety
cleveragents:pr-fix-8179-implementation
cleveragents:pr-fix-9313
cleveragents:cleveragents-pr-fix-11038
cleveragents:fix/m2-acceptance-test
cleveragents:fix/pr-11042-rename-render
cleveragents:fix/action-scope-inmerge
cleveragents:fix/wf12-oom-sigkill
cleveragents:fix/wf18-container-clone-e2e
cleveragents:tdd/mcp-client-timer-cancel-race
cleveragents:feature/auto-debug-nodes
cleveragents:feat/v3.2.0-decision-recording-persistence
cleveragents:bugfix/m6-actor-overlay-render-shadow
cleveragents:bugfix/m7-plan-strategy-decisions-json
cleveragents:fix/10911-tui-suggestions-query-extraction
cleveragents:fix/lsp-transport-subprocess-cleanup
cleveragents:pr-fix-8177-validation
cleveragents:bugfix/m3-plan-status-json-envelope
cleveragents:fix/invariant-persistence-8573
cleveragents:pr-fix-11037
cleveragents:pr-11015-fix
cleveragents:pr_fix_11015
cleveragents:fix/m1-security-fix-startswith-bypass
cleveragents:fix/automation-profile-gates-lifecycle
cleveragents:fix-status-check-brittle-pipeline-11212
cleveragents:feat/pr-10590-dual-capability-strategies
cleveragents:feat/structural-output-validation
cleveragents:bugfix/m2-ci-status-check-resilience
cleveragents:fix-sandbox-cache-invalidation
cleveragents:feature/acp-a2a-rename-fix
cleveragents:feature/m3-plan-correction-data-model
cleveragents:pr-fix-10356-unsubscribe
cleveragents:pr-fix-11011
cleveragents:pr_fix/lsp-transport-header-injection-ascii
cleveragents:fix-pr-11002-startswith-bypass-7478
cleveragents:bugfix/acms-project-budget-override
cleveragents:fix/ci-status-check-resilience
cleveragents:bugfix/pr-fix-10597-cleanup-subprocess-on-init-failure
cleveragents:bugfix/sandbox-reexecute-cleanup
cleveragents:pr-fix-8701-invariant-model
cleveragents:fix/test-dotdot-traversal-assertion
cleveragents:fix/cleanup-stale-preserve-commits
cleveragents:fix/10592-pr-compliance
cleveragents:fix/security-file-tools-path-traversal-7478
cleveragents:pr-11180-fix
cleveragents:fix-combined-format
cleveragents:fix-9131-invariant-propagation
cleveragents:fix/tui-actor-selection-overlay
cleveragents:pr-11201
cleveragents:merge/pr-11196-invariant-fix
cleveragents:fix/issue-10813-strategize-decision-persistence
cleveragents:pr-fix-11170
cleveragents:pr/11165
cleveragents:temp-pr-11174
cleveragents:feat/invariant-enforcement-validation-pipeline
cleveragents:pr-fix-10356-unsubscribe-eventbus
cleveragents:pr-fix-11156-python313-deprecation
cleveragents:feature/pr-7801-fix-validate-path-security
cleveragents:fix/11039-render-refresh
cleveragents:fix/tui-actor-selection-render-rename
cleveragents:pr-fix-11089-session-close-validation
cleveragents:pr-fix/11089-session-close-validation
cleveragents:pr-fix-11182
cleveragents:feature/7926-persist-decision-dependencies
cleveragents:bugfix/m3-rxpy-subject-close
cleveragents:test/restore-e2e-tests
cleveragents:feature/m694-tui-materializer-a2a-integration-layer
cleveragents:feature/issue-pr-9271-hot-max-tokens
cleveragents:pr-fix-8177
cleveragents:test/v360/e2e-project-plan-correction
cleveragents:bugfix/issue-8426-stdio-cleanup
cleveragents:feature/eventbus-unsubscribe
cleveragents:bugfix/m3-integrate-mcp-transport
cleveragents:fix/concurrent-stdout-restoration
cleveragents:feat/a2a-stdio-transport-fix-264
cleveragents:PR-fix-wf18
cleveragents:feature/sandbox-cache-invalidation
cleveragents:fix/issue-10496-auto-debug-state-mutation
cleveragents:fix/python-313-asyncio-deprecations
cleveragents:pr-11128
cleveragents:pr-11180
cleveragents:pr-11165
cleveragents:pr-practice
cleveragents:structural-output-validation
cleveragents:fix/status-check-native-expressions
cleveragents:feat/merge-conflict-detection
cleveragents:11036-fix-acms-hot-max-tokens
cleveragents:pr/11166
cleveragents:fix/ci-status-check-native-expressions
cleveragents:fix/stdlib-transport-cleanup
cleveragents:fix/11176-actor-selection-render
cleveragents:pr-fix-10597
cleveragents:feature/pr-compliance-pool-supervisor
cleveragents:fix/actor-add-update-enforcement-fix
cleveragents:pr_fix/8209
cleveragents:pr-10590
cleveragents:fix/python313-asyncio-get-event-loop-deprecation
cleveragents:pr-fix-#11053-session-id-validation
cleveragents:pr-fix-11042-renamed-render
cleveragents:feat/v360/acp-to-a2a-rename
cleveragents:fix-arg-swap-validation-attachment-8177
cleveragents:fix/asyncio-get-event-loop-deprecation
cleveragents:fix_8395_pr
cleveragents:pr-fix-11153-auto-debug-mutation
cleveragents:pr/11051-thread-safety-invariant
cleveragents:fix-plan-status-json-envelope
cleveragents:bugfix/pr-11015-pool-supervisor-checklist
cleveragents:feature/fix-7478-validate-path
cleveragents:feature/plans-conflict-detection
cleveragents:pr-11141-cleanup-stale-commits-beyond-head
cleveragents:fix/pyyaml-vulnerability-upgrade
cleveragents:pr-fix-9244
cleveragents:bugfix/m3-invariant-propagation
cleveragents:feature/issue-10480-fix-validation-bypass
cleveragents:feature/m3-invariant-enforcement-validation-pipeline
cleveragents:feat/invariant-enforcement-strategize-phase
cleveragents:bugfix/mcp-race-condition-start
cleveragents:fix/action-schema-argument-default-type-validation
cleveragents:issue-10438-fix
cleveragents:fix/mcp-timer-race-10516
cleveragents:fix/10480-validation-bypass-fix
cleveragents:fix/cli-session-tell-format-flag
cleveragents:feat/agents-invariant-add-list-remove-commands
cleveragents:restore-e2e-cleanup
cleveragents:fix/events-eventbus-unsubscribe
cleveragents:fix/issue-11120-cleanup-stale-preserve-artifacts
cleveragents:feature/fix-issue-11121-cleanup-stale-reinvoke
cleveragents:fix/issue-10480-plan-validation
cleveragents:feature/m5-tdd-quality-gate
cleveragents:bugfix/11121-fix-cleanup_stale-preserve-meaningful-changes
cleveragents:bugfix/m8-set-active-persona-preset-reset
cleveragents:feat/context-priority-strategy
cleveragents:feature/issue-4381-docs-api-and-module-guides
cleveragents:m7-opencode-ruff
cleveragents:bugfix/m3-wf18-oom-sigkill
cleveragents:bugfix/acms-dual-strategy-capabilities-incompatible-fields
cleveragents:feature/benchmark-scheduled-workflow
cleveragents:feature/m8-tui-mainscreen
cleveragents:feat/v3.4.0/acms-project-indexer
cleveragents:fix/10932-preserve-strategy-decisions-json
cleveragents:fix/data-integrity-session-rollback-7489
cleveragents:fix/issue-6329-resource-remove-edge-table
cleveragents:fix/issue-7524-invariant-service-thread-safety
cleveragents:pr-10932-fix-plan-strategy-decisions
cleveragents:pr-fix-9244-pyyaml-upgrade
cleveragents:refactor/noxfile-parallel-test-architecture
cleveragents:task/ci-matrix-strategy-python-versions
cleveragents:bugfix/m3.6.0-ci-pipeline-flakiness-stabilization
cleveragents:feat/v3.3.0-plan-rollback
cleveragents:refactor/auto-guard-1-cli-a2a-boundary
cleveragents:feature/issue-10755-redirect-rich-panels-to-stderr
cleveragents:pr10871
cleveragents:fix/10881-propagate-invariants-to-child-plans
cleveragents:feat/resources-extension-interface
cleveragents:pr-fix-10901
cleveragents:ci/optimize-benchmarks-regression
cleveragents:fix/tui-extract-at-token-suggestions
cleveragents:feat/acms-index-data-model
cleveragents:feature-10887-eventbus-unsubscribe
cleveragents:feature/m5-add-repo-indexing-showcase
cleveragents:PR-10910-a2a-json-rpc-routing
cleveragents:feature/milestone-based-pr-prioritization
cleveragents:bugfix/m3-issue-9055
cleveragents:auto-time-3-day106-cycle2
cleveragents:feature/m39-timeline-day106-cycle2-2026-04-16
cleveragents:timeline/day-106-cycle2-2026-04-16-auto-time-3
cleveragents:feat/issue-10921-a2a-http-transport
cleveragents:pr/fix-10842
cleveragents:feature/issue-10746-fix-agents-graphs-plan-generation-validate-always-passes-for-code-longer-than-10-characters-making-llm-validation-ineffective
cleveragents:agents/fix-10866-permissions-screen-to-textual-screen
cleveragents:pr-10886
cleveragents:bugfix/m3-session-tell-format
cleveragents:fix/pr-10890-shell-safety-integration
cleveragents:fix/session-delete-json-envelope
cleveragents:pr-10851
cleveragents:test/v3.8.0-ci-quality-execution-time
cleveragents:feature/m7-timeline-day-106-update
cleveragents:bugfix/context-remove-path-traversal-10924
cleveragents:pr-10876
cleveragents:fix/gemini-fallback-order
cleveragents:fix/trailing-comma-opencode-json
cleveragents:pr/fix/mcp-client-start-race-condition
cleveragents:fix/project-switch-command
cleveragents:fix-pr-4211
cleveragents:feat/three-way-merge-engine-9608
cleveragents:pr/9673
cleveragents:fix/1469-plan-execute-structured-panels
cleveragents:fix/actor-provider-validation
cleveragents:implement-pr-9442
cleveragents:cleveragents-push-23420b48
cleveragents:fix/validation-repo-silent-swap
cleveragents:feat/context-strategy-plugin-system
cleveragents:fix/startswith-bypass-7478
cleveragents:fix-plan-status-envelope-11034
cleveragents:fix/invariant-thread-safety
cleveragents:fix-thread-safety-invariant-service
cleveragents:fix/8284-warned-sessions-reset
cleveragents:docs/milestone-plan-navigation
cleveragents:feat/v3.3.0-checkpoint-creation
cleveragents:feature/implementor-notification-11032
cleveragents:task/ci-optimize-e2e-tests-execution-time
cleveragents:feature/pr-9599-plan-correct-correction-engine
cleveragents:pr-fix-10593
cleveragents:pr9452
cleveragents:fix/isolate-checkpoint-prune-test
cleveragents:pr/fix-9601
cleveragents:pr/9234-hardening-bdd-tags
cleveragents:bugfix/9673-acms-budget-enforcement
cleveragents:pr-8667
cleveragents:auto-arch/spec-pr-10451-test-coverage
cleveragents:fix/10954-security-scan-dockerfile
cleveragents:bugfix/9183-bdd-tag-enforcement
cleveragents:fix/7566-engine_cache-toctou-race
cleveragents:fix/10934-preserve-strategy-decisions-json
cleveragents:bugfix/10608-lsp-header-injection
cleveragents:bugfix/9981-acms-indexing-optimize
cleveragents:bugfix/11077-security-escape-bypass
cleveragents:fix/auto-rev-sup-tracking-prefix
cleveragents:fix-lsp-subprocess-cleanup-10597
cleveragents:improvement/agent-evolution-pool-supervisor-pr-metadata
cleveragents:fix/plan-tree-json-output-envelope
cleveragents:pr-9313-fix
cleveragents:bugfix/9244-pyyaml-security-upgrade
cleveragents:feature/issue-1925-add-asv-tests-for-domain-module
cleveragents:test/domain-asv-benchmarks
cleveragents:feature/9250-fix-a2a-session-close
cleveragents:fix/pr-10027-acms-default-pipeline
cleveragents:bugfix/m2-plan-explain-alternatives-format
cleveragents:fix-invalidate-sandbox-dirs-cache-after-purge-7527
cleveragents:pr-fix-10958-async-cleanup-tests
cleveragents:feat/adr-049-layer-boundary-enforcement
cleveragents:fix/action-list-table-columns
cleveragents:fix/issue-7478-validate-path-startswith-bypass
cleveragents:pr-fix-ci-11000
cleveragents:fix/agent-skill-multi-scope-discovery
cleveragents:pr_fix_8675_switch_project_command
cleveragents:feat/m6/devcontainer-clone-into-sandbox
cleveragents:fix/tui-keybinding-preset-persona-cycling
cleveragents:pr-fix-10982
cleveragents:bugfix/m3-invariant-service-thread-safety
cleveragents:pr-fix-10937-close-reactive-eventbus
cleveragents:pr-fix-7478-path-traversal
cleveragents:feature/benchmark-scheduled-workflow-fix
cleveragents:pr-9183-add-bdd-tags
cleveragents:pr/11029-review-started-notification
cleveragents:fix/pyyaml-security-upgrade
cleveragents:fix-plan-status-panels
cleveragents:fix-pr-11037
cleveragents:feat/v3.6.0-database-resource-types
cleveragents:pr-10591-checkout
cleveragents:pr-10979
cleveragents:fix/invariant-thread-safety-8209
cleveragents:pr-fix-11002-validate-path-bypass
cleveragents:fix/10597-lsp-proc-cleanup
cleveragents:fix/plan/tree-envelope-9313
cleveragents:fix-6568-push
cleveragents:fix/issue-6425-tui-persona-cycling-keybinding
cleveragents:pr/11044
cleveragents:feature/m6-reduce-redundant-ci-status-reporting
cleveragents:fix/11041-plan-tree-envelope
cleveragents:fix/ca-test-infra-improver-health-spam
cleveragents:agents/pr-6628-fix
cleveragents:docs/add-showcase-cli-basics
cleveragents:auto-time-1-day107-cycle
cleveragents:improvement/agent-uat-tester-parallel-docs-pr-fix
cleveragents:fix/issue-11047-actor-add-rename-from-config
cleveragents:fix/pr-11050-subprocess-cleanup
cleveragents:pr-6741
cleveragents:ci/cache-helm-binary-auto-inf-1
cleveragents:fix/8675-project-switch
cleveragents:fix/7527-sandbox-cache-invalidation
cleveragents:fix/issue-6319-project-context-set-output
cleveragents:pr/fix-9183-bdd-tags
cleveragents:fix/issue-6325-plan-explain-decision-id
cleveragents:fix/1422-docs
cleveragents:pr-fix-1485-updates
cleveragents:spec/subplan-system-v3.3.0
cleveragents:pr/6723-fix-session-create-json
cleveragents:improvement/agent-bug-hunt-pool-supervisor-tracking-prefix-complete
cleveragents:fix/pr-6695-session-list-empty-json
cleveragents:fix/file-tools-startswith-bypass
cleveragents:pr_fix_8256
cleveragents:pr-9663-fix
cleveragents:docs/add-example-resource-and-skill-management
cleveragents:feature/m39-cli-basics-showcase
cleveragents:pr-fix-7478-startswith-bypass
cleveragents:fix/issue-11047-actor-add-remove-positional-name
cleveragents:fix/gemini-fallback-order-fix-3
cleveragents:pr_fix_8179
cleveragents:fix/gemini-fallback-order-fix-2
cleveragents:fix/validation-list-command
cleveragents:fix/validation-list-command-clean
cleveragents:fix-pr7957-complete-tracking-prefix
cleveragents:pr-7922-fix-lint
cleveragents:fix/validation-swap-8177
cleveragents:add-plan-start-alias
cleveragents:feature/pr-8304-container-clone-into
cleveragents:fix-pyyaml-11012
cleveragents:pr-fix-9461
cleveragents:fix/pr-11004-tui-token-extraction
cleveragents:fix/invariant-scope-handling
cleveragents:feat/plan-correction-8531
cleveragents:pr/8685-correction-data-model-persistence
cleveragents:bugfix/lsp-stdio-transport-cleanup-10597
cleveragents:pr-8660
cleveragents:feat-scope-chain-resolution
cleveragents:chore/pyyaml-upgrade
cleveragents:fix/9250-session-id-validation-handle-session-close
cleveragents:fix/issue-7478-file-tools-validate-path
cleveragents:pr-fix-9442-tui-ctrltab
cleveragents:spec/update-cycle8-validation-gate-empty-run-guard
cleveragents:fix/tui-sqlite-session-persistence-10648
cleveragents:fix/8661-plan-start-alias
cleveragents:fix-10649
cleveragents:refactor/add-return-type-get-services
cleveragents:pr-fix-cache-init
cleveragents:pr9407-timeline
cleveragents:feat/tui-prompt-symbol
cleveragents:pr_fix_9407-plan-alternatives-structured
cleveragents:feat/automation-profile-precedence-chain
cleveragents:bugfix/8179-remove-session-rollback-calls
cleveragents:feat/v360/pluggable-scope-chain-api
cleveragents:pr-9246
cleveragents:refactor/agent-configurable-limits-context-analysis-plan-generation
cleveragents:fix/issue-6452-session-tell-output
cleveragents:fix/v370/quality-gates-command-injection
cleveragents:pr-fix-10635-fixed
cleveragents:pr-10069
cleveragents:pr/fix-9313
cleveragents:pr-10643
cleveragents:invariant-pr-8684-fix
cleveragents:pr-fix-6676-resource-remove-edge-table
cleveragents:refactor/v360/audit-rename-acp-imports
cleveragents:fix/issue-7623-validation-pipeline-stdout
cleveragents:fix/acms-consolidate-strategycapabilities
cleveragents:fix/issue-7604-a2a-event-queue-concurrency
cleveragents:pr-fix-8661
cleveragents:auto-arch/spec-clarifications-cycle-1
cleveragents:feat/pure-graph-bdd-coverage
cleveragents:fix/9250-validate-session-id-before-cleanup
cleveragents:feature/issue-9442-fix-tui-correct-preset-cycling-keybinding-to-ctrl-tab-and-add-persona-tab-cycling
cleveragents:bugfix/m6-file-tools-validate-path-bypass
cleveragents:fix/invariant-add-scope
cleveragents:bugfix/m3-shell-safety-service-tui
cleveragents:pr-8684-persist-invariants
cleveragents:pr-8209-fix
cleveragents:docs/v360/repl-actor-run-showcase
cleveragents:feat/v360/cost-session-budget
cleveragents:bugfix/8177-remove-silent-argument-swap
cleveragents:fix/plan-apply-rich-output-panels
cleveragents:pr-fix-11012
cleveragents:pr-fix-11012-pyyaml-upgrade
cleveragents:pr-fix-8667
cleveragents:pr/fix/11012-pyinsec
cleveragents:pr-fix-9407
cleveragents:pr-8853
cleveragents:test/cli-lifecycle-e2e-full-plan-lifecycle
cleveragents:bugfix/m3-evlv-9824-implementation-pool-compliance-checklist
cleveragents:pr/10069
cleveragents:docs/pr-creator-state-priority-labels
cleveragents:fix/1514-structured-panels
cleveragents:test/core-asv-benchmarks
cleveragents:fix-8640-remove-positional-name
cleveragents:pr-fix-10995
cleveragents:refactor/v3.6.0-acp-to-a2a-rename-push
cleveragents:pr-9663
cleveragents:bugfix/m3.6.0-lsp-discovery-resource-exhaustion-dos
cleveragents:8660-move-namespace-filter-inside-lock
cleveragents:pr-fix-work
cleveragents:test/plan-correct-json-output-tdd
cleveragents:pr-8304
cleveragents:feat/v3.2.0-invariant-data-model-db-schema
cleveragents:pr_fix_1514_v2
cleveragents:timeline-update-2026-04-19
cleveragents:pr-fix-9313-plan-tree-envelope
cleveragents:test/v3.6.0/advanced-context-strategies-tests
cleveragents:pr/11004-fix-tui-suggestions-query-extraction
cleveragents:pr-fix-9817
cleveragents:feat/9558-plan-conflict-detection
cleveragents:docs/timeline-day-101
cleveragents:fix/v360/plugin-loader-security
cleveragents:feat/acms-context-policy-fix-9671
cleveragents:pr-9817-plan-apply-json
cleveragents:pr-fix-9460
cleveragents:pr-fix-6722-prompt-symbol
cleveragents:pr/9671
cleveragents:pr-fix-9671
cleveragents:pr-10592-fix
cleveragents:fix/issue-7478-file-path-validation
cleveragents:pr-fix-7478-validatepath
cleveragents:feat/pr-10590-context-strategy-fix
cleveragents:bugfix/m6-acms-path-matching-absolute
cleveragents:bugfix/pr-9183-bdd-tags
cleveragents:fix-pr-10975-path-matching-normalize
cleveragents:pr_fix/lsp-transport-subprocess-cleanup
cleveragents:pr-8177-validation-fix
cleveragents:feat/acms-context-show-clear-cli
cleveragents:feat/v360/plugin-architecture
cleveragents:fix/invariant-add-scope-required
cleveragents:pr-fix-10590-context-strategy
cleveragents:pr-fix-10590-local
cleveragents:pr-8662-fix
cleveragents:pr/1485
cleveragents:bugfix/8660-move-namespace-filter-inside-lock
cleveragents:pr/9460-project-show-invariants-validations
cleveragents:pr-11013
cleveragents:fix-1469-impl
cleveragents:fix/1469-impl
cleveragents:fix/cleanup-service-sandbox-cache-invalidation
cleveragents:pr-8257
cleveragents:pr-3329
cleveragents:feat/v3.2.0-decision-recording-strategize
cleveragents:fix/strategize-full-context-snapshots
cleveragents:clone-verify-test
cleveragents:fix/issue-6316-session-list-json-empty-case
cleveragents:AUTO-IMP/PR-9672-context-list-add
cleveragents:AUTO-IMP/PR-9663-storage-tiers
cleveragents:fix/issue-pr-11002
cleveragents:fix/plan-lifecycle-prompt-decision
cleveragents:fix/gemini-fallback-order-10906
cleveragents:AUTO-IMP/PR-10583-a2a-rename
cleveragents:fix-check-same-thread-migration-runner
cleveragents:d2188407
cleveragents:fix/a2a-handle-session-close-missing-session-id-pr-9250
cleveragents:fix/invariant-merge-action-scope
cleveragents:pr-fix-8179
cleveragents:bugfix/report-number-of-actors
cleveragents:bugfix/m6-devcontainer-autodiscovery-wiring
cleveragents:fix-gemini-fallback-order-10906
cleveragents:bugfix/m5-event-bus-exception-swallow
cleveragents:pr/3458
cleveragents:acms-parallel-indexing-fix
cleveragents:bugfix/m3-error-handling-fileconfig-unhandled-exception
cleveragents:acms-parallel-indexing
cleveragents:fix/resource-removal-children-check-6886
cleveragents:pr/9451-fix-tui-thinking-effort-presets
cleveragents:pr-fix-10958
cleveragents:fix/8179-remove-session-rollback-calls
cleveragents:pr/9817-plan-apply-json-envelope
cleveragents:fix/lsp-context-enrichment-acms-wiring
cleveragents:fix/cli-remove-positional-name-from-actor-add
cleveragents:fix/acms-context-cli
cleveragents:fix/tui-permissions-screen-wrong-base-class
cleveragents:bugfix/m6-session-create-suppress-exception-logging
cleveragents:fix/plan-tree-json-missing-decision-id
cleveragents:fix/plan-start-spec-alignment
cleveragents:fix-10957
cleveragents:fix/6726-tui-persona-cycling-keybinding
cleveragents:feat/plan-rollback-cli-checkpoint-restore
cleveragents:pr-8661-plan-start-alias
cleveragents:pr/1486/resource-handler-return-type
cleveragents:feature/8667-add-validation-list-command
cleveragents:auto-docs-1-mkdocs-setup
cleveragents:fix/actor-add-positional-name
cleveragents:feat/v3.3.0-merge-strategy-config
cleveragents:fix/invariant-precedence-chain-action-scope
cleveragents:improvement/agent-pr-review-pool-supervisor-tracking-prefix-complete
cleveragents:pr/fix/actor-loader-list-actors-race-condition
cleveragents:bugfix/m4-lsp-context-enrichment-acms-wiring
cleveragents:docs/auto-docs-2-v320-v330-features
cleveragents:bugfix/m-error-suppression-reactive-registry-adapter-v2
cleveragents:fix/7501-plan-repository-success-derivation
cleveragents:pr-10492
cleveragents:pr-8225
cleveragents:fix/plan-artifacts-missing-validation-apply-summary
cleveragents:feature/m9-v3.8.0-v3.9.0-documentation
cleveragents:docs/fix-automation-profile-default-supervised
cleveragents:fix/context-analysis-agent-path-traversal
cleveragents:pr-9229-path-traversal-fix
cleveragents:pr-10975
cleveragents:pr-fix-10986
cleveragents:pr/1486/fix-resource-handler-return-type
cleveragents:feat/m8/tui-main-screen
cleveragents:pr-9257-fix
cleveragents:fix/9222-guard-integration-e2e-jobs
cleveragents:refactor/clarify-behave-robot-framework-roles
cleveragents:docs/reference-glossary
cleveragents:feat/9088-a2a-message-send-stream
cleveragents:bugfix/m6-gemini-fallback-order
cleveragents:fix/validation-list-command-fixed
cleveragents:fix-executable-resource
cleveragents:test/plan-tree-correction-visual-tdd
cleveragents:auto-time/timeline-update-2026-04-18
cleveragents:pr-8179
cleveragents:spec/auto-arch-24-a2a-boundary-enforcement-adr
cleveragents:pr/10988/head
cleveragents:fix/7566-engine-cache-toctou-race
cleveragents:feat/v3.6.0-llm-provider-abstraction
cleveragents:fix/concurrency-catalog-cache-lock-7590-cleandiff
cleveragents:chore/test-infra-broad-exception-lint
cleveragents:issue-7502-fix-get-for-plan
cleveragents:fix/1500-impl
cleveragents:feat/context-show-cli-commands
cleveragents:pr-fix-7527-cache-invalidation
cleveragents:pr-fix-9407-plan-explain-structured-alternatives
cleveragents:fix/multi-scope-skill-discovery-9369
cleveragents:pr_9454
cleveragents:feat/agent-switch-cmd
cleveragents:pr-9329
cleveragents:8661-plan-start-alias
cleveragents:feat/acms-context-analysis-summaries
cleveragents:fix/invariant-add-repeatable-plan-action
cleveragents:tdd/m6-session-create-suppress-exception
cleveragents:test-push-check-only
cleveragents:pr-10889
cleveragents:pr-10889-fix
cleveragents:feature/issue-10952-provider-integration-tests
cleveragents:pr/10879-benchmark-caching-parallelism
cleveragents:bugfix/m3-eventbus-unsubscribe
cleveragents:spec/add-deleted-at-field-to-project-delete
cleveragents:fix/issue-6500-actor-context-list-regex
cleveragents:tdd/m8-tui-sqlite-session-persistence
cleveragents:fix/issue-6464-resource-add-auto-discovery
cleveragents:fix/bug-hunt-supervisor-tracking-prefix
cleveragents:feat/v3.2.0-plan-tree-cli
cleveragents:fix/issue-6491-actor-remove-format-option
cleveragents:fix/issue-6457-json-envelope-messages-text
cleveragents:improvement/agent-ca-test-infra-improver-duplicate-avoidance
cleveragents:fix/boundary-cost-budget-warning-re-trigger-7525
cleveragents:bugfix/6879-cli-format-option
cleveragents:feat/jwt-token-refresh
cleveragents:auto-discovered-stale-conflicts-review-task
cleveragents:docs/add-example-audit-log-and-security
cleveragents:docs/v3.8.0-api-and-module-guides
cleveragents:fix/issue-9169
cleveragents:improvement/reduce-redundant-ci-status-reporting
cleveragents:feat/v3.4.0-acms-index-data-model-traversal
cleveragents:bugfix/m3-sqlite-check-same-thread
cleveragents:issue-1-conversation-state
cleveragents:bugfix/m3-evlv-implementation-pool-compliance-checklist
cleveragents:feature/m9-a2a-jsonrpc
cleveragents:bugfix/m6-plan-execute-rich-output
cleveragents:fix/uat-checkpoint-prune-test-isolation
cleveragents:feature/issue-4749-split-monolithic-specification
cleveragents:bugfix/m8-suggestions-query-extraction
cleveragents:bugfix/m6-session-delete-format-json-envelope
cleveragents:bugfix/m3-langgraph-disposables
cleveragents:timeline/day-104-2026-04-14-auto-time-2
cleveragents:docs/quickstart-guide
cleveragents:fix/plan-prompt-json-timing-started
cleveragents:feat/v3.6.0-virtual-resource-types
cleveragents:feat/tui-v370/persona-registry
cleveragents:fix/1431-subgraph
cleveragents:bugfix/7529-a2a-terminal-phase-guard
cleveragents:bugfix/m3-bdd-feature-file-tags
cleveragents:ci/v360/isolate-slow-e2e-tests
cleveragents:feature/m3-consolidate-documentation
cleveragents:feature/m7-user-driven-review-agent
cleveragents:feature/m9-a2a-http
cleveragents:fix/1423-refactor
cleveragents:fix/tui-mainscreen-3state-sidebar-adr044
cleveragents:task/v3.8.0-ci-reusable-workflows
cleveragents:testbed/m9-hello
cleveragents:docs/add-label-verification-to-new-issue-creator
cleveragents:bugfix/m3-database-migration-runner-check-same-thread
cleveragents:feature/m4-plan-correction-revert
cleveragents:improvement/agent-architecture-pool-supervisor-milestone-assignment
cleveragents:docs/changelog-unreleased-cycle7
cleveragents:feature/m9-changelog-unreleased-cycle7
cleveragents:fix/issue-10512-mcptooladapter-rlock
cleveragents:fix/data-integrity-llm-trace-repository-7505
cleveragents:agents/auto-working-new
cleveragents:fix/resource-removal-guard-linked-children
cleveragents:fix/1468-impl
cleveragents:feature/1915-timezone-aware-datetime
cleveragents:feature/issue-4381-docs-add-invariantreconciliationactor-api-docs-devcontainer-discovery-module-guide-and-mkdocs-nav
cleveragents:task/ci-actor-context-mgmt-test-optimization
cleveragents:fix/7619-git-tools-base-env-toctou
cleveragents:pr-fix-8661-updates
cleveragents:feature/issue-2798-chore-agents-improve-ca-test-infra-improver-strengthen-duplicate-avoidance
cleveragents:bugfix/m3-migration-runner-check-same-thread
cleveragents:feature/issue-10952-fix-database-migration-runner-check-same-thread
cleveragents:fix/dependency-security-aiohttp-cves
cleveragents:test/uko-persistence-coverage
cleveragents:fix/security-b608-sql-fstring-migration-plan-phases
cleveragents:fix/cli-legacy-removal
cleveragents:feature/m39-auto-arch-23-minor-clarifications
cleveragents:bugfix/m3-langgraph-execute-state-bypass
cleveragents:feat/issue-6370-actor-context-clear
cleveragents:feat/acms-hot-storage-tier-lru-cache
cleveragents:feature/m3111-milestone-based-pr-prioritization
cleveragents:bugfix/m3-actor-run-response
cleveragents:fix/issue-7524-invariant-service-thread-safety-v2
cleveragents:pr-fix-10746
cleveragents:fix/tui-auto-generate-presets-actor-schema
cleveragents:feat/agent-card-discovery
cleveragents:feature/pr-10916-close-reactive-event-bus
cleveragents:feature/issue-1917-optimize-robot-actor-context-management-tests
cleveragents:feature/issue-10803-fix-nox-sessions-use-uv-sync-frozen
cleveragents:feature/issue-1923-missing-test-levels-core-module
cleveragents:feature/1928-add-test-coverage-for-tui-module
cleveragents:chore/ci-dockerfile-server-security-scan
cleveragents:task/ci-centralize-tool-versions
cleveragents:feature/m9-langgraph-platform
cleveragents:bugfix/m5-validation-attach-output-format
cleveragents:test/ci-execution-time-optimize-benchmark-regression
cleveragents:feature/issue-3105-add-mandatory-labels-to-supervisor-tracking-issue-creation
cleveragents:feat/acms-context-policy-configuration-schema
cleveragents:feat/context-sliding-window-strategy
cleveragents:feature/issue-5163-align-checkpoint-trigger-names
cleveragents:feature/issue-4221-docs-add-showcase-example-for-audit-log-and-security-commands
cleveragents:bugfix/m3-output-plan-results
cleveragents:fix/action-archive-output-panels
cleveragents:pr/9912-fix
cleveragents:fix/concurrency-catalog-cache-lock-7590
cleveragents:bugfix/executor-error-details-overwrite-mini-max
cleveragents:fix-10866-permissions-screen
cleveragents:feature/issue-7957-bug-hunt-pool-supervisor-tracking-prefix
cleveragents:fix-pr-10852
cleveragents:fix/10922-conversation-state-mgmt
cleveragents:pr-check
cleveragents:bugfix/10931-preserve-strategy-decisions-json
cleveragents:fix/10903-nox-showcase-docs
cleveragents:pr/10885-pyyaml-upgrade
cleveragents:pr-fix-10931
cleveragents:bugfix/executor-error-details-overwrite-qwen
cleveragents:fix-orchestrator-scaling-32-workers
cleveragents:fix-pr-1107-asgi-uvicorn
cleveragents:feature/m9-timeline-day-99
cleveragents:feat/issue-6369-actor-context-show
cleveragents:improvement/agent-label-compliance
cleveragents:fix-9912-branch
cleveragents:bugfix/10821-fix-tui-keybinding
cleveragents:feat/issue-6450-tui-escape-cascade
cleveragents:bugfix/m8-shell-safety-service-integration
cleveragents:fix/redaction-pattern-exception-handling
cleveragents:bugfix/m8-tui-on-input-changed
cleveragents:fix/action-schema-env-var-exfiltration
cleveragents:feature/spec-timeline-6003
cleveragents:feature/spec-timeline-6008
cleveragents:feature/issue-4746-update-spec-agents-diagnostics-all-9-providers
cleveragents:feat/v3.6.0/gemini-provider
cleveragents:pr/8194
cleveragents:tdd/prompt-input-textarea
cleveragents:feat/v3.6.0/cost-reporting-cli
cleveragents:fix/lsp-transport-security
cleveragents:feat/v3.6.0/semantic-context-strategy
cleveragents:feature/issue-10820-chore-agents-fix-bug-hunt-pool-supervisor-tracking-prefix-auto-bug-pool-to-auto-bug-sup-complete-fix
cleveragents:tdd/mN-registry-thread-safety
cleveragents:fix/v360/remove-acp-module
cleveragents:temp-squash
cleveragents:fix/v360/lsp-runtime-instantiation
cleveragents:feat/690-jsonrpc-routing
cleveragents:feat/v3.6.0-anthropic-gemini-backends
cleveragents:build/agents-system-rewrite
cleveragents:feat/v3.3.0-plan-rollback-cli
cleveragents:feat/v3.3.0-parallel-subplan-scheduler
cleveragents:feature/issue-10846-optimize-benchmark-regression-test-suite
cleveragents:feature/issue-10826-docs-spec-align-checkpoint-trigger-names-and-config-key-path-with-implementation
cleveragents:feature/issue-10744-fix-tui-convert-permissionsscreen-from-static-widget-to-proper-textual-screen-subclass
cleveragents:feature/issue-10794-feat-a2a-implement-a2a-http-transport-for-server-mode
cleveragents:fix/tui-preset-cycling
cleveragents:pr-10820
cleveragents:feature/696-implement-a2a-http-transport-for-server-mode
cleveragents:feature/issue-10792-feat-server-langgraph-platform-remotegraph-integration
cleveragents:feature/issue-1486-fix-v3-7-0-resourcehandler-return-type-1444
cleveragents:feature/issue-1488-fix-v3-7-0-resolve-issue-1432
cleveragents:bugfix/m1-plan-execute-sandbox-root
cleveragents:feature/issue-4663-day-97-schedule-adherence-update
cleveragents:feature/issue-10858-devops-run-linter
cleveragents:docs/milestone-v3.6.0-v3.7.0
cleveragents:feature/issue-10835-add-milestone-based-pr-prioritization
cleveragents:pr-8701-head
cleveragents:fix/7927-apply-phase-dod-gating
cleveragents:fix/sse-formatter-json-rpc-2.0
cleveragents:feat/v3.6.0/scope-chain-assembler-integration
cleveragents:fix/tui-bindings-block-cursor-navigation
cleveragents:fix/v360/compute-actor-impact-exceptions
cleveragents:feat/v360/openrouter-provider
cleveragents:docs/v360/cli-version-info-diagnostics
cleveragents:feat/context-semantic-chunking-strategy
cleveragents:feat/acms-cli-context-show-clear
cleveragents:feature/m7-actor-management-showcase-metadata
cleveragents:feature/m6-4213-resource-skill-showcase
cleveragents:feat/v360/anthropic-gemini-backends
cleveragents:feat/v3.6.0/safety-profile-enforcement
cleveragents:feat/context-dynamic-budget-allocation
cleveragents:refactor/v360/unify-error-handling-cli
cleveragents:fix/v370/tui-materializer-a2a
cleveragents:fix/auto-debug-agent-prompt-injection
cleveragents:refactor/v360/unify-api-naming
cleveragents:test/cli-docstring-example-validation
cleveragents:fix/v360/resource-kind-field
cleveragents:feat/v3.6.0/context-relevance-scoring
cleveragents:fix/v360/plugin-state-executing
cleveragents:fix/v360/lsp-path-traversal-file-reading
cleveragents:feat/acms-semantic-chunking-context-strategy
cleveragents:refactor/v360/unify-service-initialization
cleveragents:bugfix/m3.6.0-lsp-server-dos-message-read-timeout
cleveragents:feat/v360/pluggable-scope-chain-api-v2
cleveragents:docs/v360/actor-management-showcase
cleveragents:docs/v360/actor-removal-impact
cleveragents:docs/v360/align-depth-reduction-devcontainer
cleveragents:tdd/issue-10413-dollar-prefix-shell-mode
cleveragents:fix/issue-10503-session-export-json-stdout
cleveragents:fix/pr-10755
cleveragents:feat/v370/tui-web-mode
cleveragents:feat/v360/plugin-cli-discovery
cleveragents:fix/v360/llm-trace-latency-type
cleveragents:feat/v3.6.0/ollama-mistral-providers
cleveragents:feat/v3.6.0/adaptive-context-selector
cleveragents:feat/tui-v370/persona-registry-merge-v2
cleveragents:feat/v3.6.0/cost-tracker
cleveragents:fix/v360/resource-type-cycle-detection
cleveragents:refactor/auto-guard-1-address-todo-fixme-comments
cleveragents:feat/v3.6.0/pluggable-scope-chain
cleveragents:fix/v360/scope-chain-resolver-registration
cleveragents:test/v360/e2e-a2a-context-management
cleveragents:fix/v360/lsp-env-var-injection
cleveragents:feature/m6-sandbox-correction-invariant-docs
cleveragents:feature/m3-timeline-day97-update
cleveragents:fix/10480-validate-logic-error
cleveragents:feat/acms-cli-context-add
cleveragents:feat/acms-core-pipeline-components
cleveragents:feature/m4652-module-guides
cleveragents:feature/m5-extend-agents-diagnostics-example
cleveragents:feature/m5832-add-unreleased-changelog-entries
cleveragents:docs/add-repo-indexing-showcase
cleveragents:improvement/agent-pr-self-reviewer-blocking-vs-nonblocking
cleveragents:feature/issue-8225-validation-gate-empty-summary
cleveragents:spec/resource-type-yaml-format-canonical-5622
cleveragents:bugfix/m8179-fix-data-integrity-remove-session-rollback-calls-from-projectrepository
cleveragents:feat/v3.6.0/context-policy-strategy-config
cleveragents:test/v3.6.0/a2a-rename-regression-tests
cleveragents:fix/plan-lifecycle-root-decision-type
cleveragents:bugfix/cancel-worktree-cleanup
cleveragents:pr-10586
cleveragents:pr-9215
cleveragents:feat/issue-6357-tui-loading-states
cleveragents:temp-bug2-combined
cleveragents:timeline/day-105-2026-04-15-auto-time-1-v2
cleveragents:docs/consolidated-all-documentation
cleveragents:bugfix/m6-sandbox-reexecute-cleanup
cleveragents:fix/issue-9963-memory-service-timestamp-guards
cleveragents:docs/context-management-deep-dive-v2
cleveragents:docs/context-management-deep-dive
cleveragents:docs/agent-development-guide
cleveragents:feature/10008-file-level-correction-diff
cleveragents:feat/acms-scope-resolution-context-inheritance
cleveragents:docs/a2a-protocol-guide
cleveragents:fix/tui-bindings-reload-settings
cleveragents:docs/tui-user-guide-keybindings
cleveragents:fix/plan-generation-validate-logic
cleveragents:bugfix/issue-10408-dollar-prefix-shell-mode
cleveragents:test/issue-10500-persona-state-reset-tdd
cleveragents:docs/getting-started-tutorial
cleveragents:test/tdd-session-create-suppress-exception
cleveragents:fix/issue-10485-fallback-selector-budget-limits
cleveragents:docs/error-codes-guide
cleveragents:docs/common-tasks-recipes-guide
cleveragents:bugfix/mN-registry-thread-safety
cleveragents:test/migration-runner-sqlite-threading
cleveragents:docs/configuration-reference
cleveragents:pr-10678
cleveragents:pr-10681
cleveragents:test/issue-10510-mcptooladapter-rlock-tdd
cleveragents:feature/tui-screens-directory
cleveragents:fix/issue-10511-suppress-runtimeerror
cleveragents:pr-10676
cleveragents:fix/tui-block-cursor-bindings
cleveragents:pr-10680
cleveragents:test/issue-10502-session-export-json-tdd
cleveragents:fix/issue-10507-sqlite-check-same-thread
cleveragents:docs/installation-setup
cleveragents:test/v3.6.0/scope-chain-integration-tests
cleveragents:fix/v370/loading-throbber-restore
cleveragents:feat/v370/tui-settings-sessions-screens
cleveragents:fix/v370/tui-session-persistence
cleveragents:fix/v360/context-strategy-unification
cleveragents:fix/v370/shell-safety-regex
cleveragents:feat/v370/tui-rebase-merge
cleveragents:feat/v370/tui-complete-squashed
cleveragents:fix/v370/tui-shell-async
cleveragents:feat/v3.6.0/budget-enforcement
cleveragents:refactor/v360/decouple-cli-services
cleveragents:feat/v370/tui-session-persistence
cleveragents:auto-arch-1-spec-module-definitions
cleveragents:docs/v3.6.0-v3.7.0-updates
cleveragents:auto-time/timeline-update-2026-04-18-c3
cleveragents:auto-docs-2/add-changelog-contributing
cleveragents:auto-time/timeline-update-2026-04-18-c2
cleveragents:auto-docs-1/fix-mkdocs-nav-and-links
cleveragents:pr-5968
cleveragents:docs/timeline-day-107-2026-04-17
cleveragents:fix/issue-6323-project-context-show-output
cleveragents:improvement/agent-bug-hunt-pool-supervisor-tracking-prefix
cleveragents:auto-time/update-2026-04-17
cleveragents:docs/auto-docs-8-a2a-rename-documentation
cleveragents:auto-docs-3-v340-v350
cleveragents:docs/timeline-update-2026-04-15
cleveragents:auto-docs/initial-documentation-assessment
cleveragents:feature/m1-initial-documentation
cleveragents:fix/agent-task-list-memory-leak
cleveragents:bugfix/m4-plan-diff-correction-stub
cleveragents:pr-9247
cleveragents:docs/timeline-update-2026-04-17
cleveragents:timeline/day-106-2026-04-17-auto-time-1
cleveragents:fix/quality-gates-click82-compat
cleveragents:auto-arch-14/spec-anonymous-tool-enforcement
cleveragents:fix/issue-6441-session-create-json-output
cleveragents:fix/issue-6331-invariant-add-scope
cleveragents:timeline/day-106-2026-04-16-auto-time-1-v2
cleveragents:spec/auto-arch-23-minor-clarifications
cleveragents:timeline/day-106-2026-04-16-auto-time-2
cleveragents:docs/auto-docs-2-v380-v390
cleveragents:timeline/day-104-2026-04-14-auto-time-1
cleveragents:bugfix/m3-actor-add-v3-schema-validation
cleveragents:timeline/day-106-2026-04-16-auto-time-1
cleveragents:auto-docs/changelog-architecture-readme
cleveragents:spec/auto-arch-21-v350-autonomy-hardening
cleveragents:chore/timeline-day-105-2026-04-15
cleveragents:docs/timeline-update-2026-04-15-auto-time-1
cleveragents:timeline/day-105-2026-04-15-auto-time-1
cleveragents:benchmark-ci
cleveragents:fix/plan-phase-migration-raw-sql-root-plan-id
cleveragents:auto-arch-12/spec-acms-context-tier-hydrator
cleveragents:timeline/day-106-2026-04-15-auto-time-1
cleveragents:feat/invariant-enforcement-strategize
cleveragents:feat/plan-tree-decision-rendering
cleveragents:feat/plan-correct-revert-append-modes
cleveragents:docs/auto-docs-4-fix-conflicts
cleveragents:docs/auto-docs-1-milestone-docs-v3.0.0-v3.1.0
cleveragents:feat/v3.4.0-acms-lifecycle-policy
cleveragents:pr-9220
cleveragents:fix/a2a-facade-optional-param-validation
cleveragents:feat/ci-guard-llm-secrets
cleveragents:pr-9214
cleveragents:feat/v3.3.0-subplan-status-tracking
cleveragents:feat/v3.3.0-merge-conflict-detection
cleveragents:uat/checkpoint-rollback-merge-tests
cleveragents:fix/pr-review-pool-supervisor-prefix-mismatch
cleveragents:feat/v3.3.0-spawn-subplan-step
cleveragents:auto-time-1-day103-cycle1-session6
cleveragents:feat/v3.8.0-agent-card-endpoint
cleveragents:docs/auto-docs-cycle-24-showcase-nav
cleveragents:auto-inf-3-consolidate-behave-fixtures
cleveragents:fix/issue-7663-docs-writer-missing
cleveragents:auto-time-1-day103-cycle2
cleveragents:docs/timeline-day-104-auto-time-1
cleveragents:auto-arch-16/spec-xml-prompt-injection-mitigation
cleveragents:bugfix/m4-invariant-persistence
cleveragents:uat-a2a-facade-tests-v350
cleveragents:bugfix/m3-behave-parallel-failed-chunk-logs
cleveragents:bugfix/7664-automation-tracking-label-requirements
cleveragents:docs/auto-time-1-timeline-update-2026-04-14
cleveragents:docs/auto-docs-1-milestone-v3-updates
cleveragents:fix/issue-6344-plan-execute-rich-output
cleveragents:docs/action-config-schema-api
cleveragents:fix/bug-hunt-supervisor-nonexistent-file-preflight
cleveragents:fix/retry-policy-model-missing-fields
cleveragents:docs/validation-gate-empty-run-guard
cleveragents:auto-arch-15/spec-retry-policy-canonical-fields
cleveragents:docs/lockservice-advisory-locking
cleveragents:docs/changelog-plan-fix-4197
cleveragents:spec/milestone-plan-section
cleveragents:docs/update-changelog-recent-features
cleveragents:fix/test-infra-remove-redundant-python-variable-robot-files
cleveragents:timeline/day-104-2026-04-14-cycle2
cleveragents:fix/bdd-feature-file-tags
cleveragents:auto-arch-13/spec-default-automation-profile
cleveragents:docs/auto-docs-cycle-1-2026-04-12
cleveragents:docs/cycle-1-git-worktree-sandbox
cleveragents:spec/architecture-critical-gap-fixes
cleveragents:docs/timeline-day-104-auto-time-2
cleveragents:auto-arch-1/add-v380-v390-milestone-plan
cleveragents:docs/developer-setup-guide
cleveragents:fix/auto-profile-spec-prose-description
cleveragents:auto-arch-10/spec-tui-a2a-integration-layer
cleveragents:spec/resource-event-types-clarification
cleveragents:auto-docs-4/changelog-and-observability
cleveragents:auto-arch-4/adr-049-layered-boundary-enforcement
cleveragents:docs/a2a-protocol-autonomy-hardening
cleveragents:auto-arch-9/spec-v3.8.0-milestone-plan
cleveragents:docs/auto-docs-3-reference-index
cleveragents:auto-arch-7/spec-apply-git-worktree
cleveragents:docs/timeline-day104-cycle1-auto-time-4
cleveragents:docs/auto-docs-cycle-1-changelog-updates
cleveragents:auto-arch-6/adr-049-spec-restructuring
cleveragents:docs/auto-docs-1-v340-acms-context-management
cleveragents:docs/auto-docs-1-v320-v330-cli-reference
cleveragents:auto-arch-5/v3.9.0-milestone-plan
cleveragents:test/create-scripts
cleveragents:auto-time-1-day104
cleveragents:timeline/day-104-2026-04-14
cleveragents:docs/auto-time-4-day103-cycle5
cleveragents:auto-time-3-day103-cycle4
cleveragents:auto-docs-5-architecture-overview
cleveragents:spec/three-way-merge-strategy-v3.3.0
cleveragents:spec/checkpoint-system-v3.3.0
cleveragents:auto-docs-4-api-docs-update
cleveragents:auto-docs-1-changelog-expansion
cleveragents:spec/invariant-management-system-v3.2.0
cleveragents:pr-8289
cleveragents:spec/plan-correction-engine-v3.2.0
cleveragents:spec/layered-architecture-boundary-policy
cleveragents:spec/tui-materializer-a2a-integration-v3.7.0
cleveragents:spec/decision-recording-system-v3.2.0
cleveragents:docs/auto-docs-1-milestone-overview
cleveragents:pr-7484
cleveragents:pr-4212
cleveragents:auto-arch-3/v3.8.0-milestone-plan
cleveragents:auto-docs-6/troubleshooting-and-config
cleveragents:auto-time-1-day103-session5
cleveragents:auto-docs-5/contributor-guide-and-readme
cleveragents:docs/plan-tree-ulid-examples
cleveragents:docs/m3-spec-clarify-path-datetime-plugin-contracts
cleveragents:docs/auto-docs-cycle-10-diagnostics-ref
cleveragents:auto-docs-3/user-guide-and-architecture
cleveragents:docs/cycle-7-changelog-update
cleveragents:spec/reconciliation-failure-behavior
cleveragents:auto-docs-2/api-documentation
cleveragents:auto-arch-2/adr-053-repositories-decomposition
cleveragents:auto-docs-1/release-notes-v3.0-v3.1
cleveragents:spec/update-validation-attach-project-delete
cleveragents:spec/architecture-cycle2-impl-clarifications
cleveragents:auto-arch-1/adr-049-052-violations
cleveragents:auto-time-1-day103
cleveragents:docs/auto-docs-cycle-13-updates
cleveragents:docs/timeline-day-102-auto-time
cleveragents:timeline/day-103-2026-04-13
cleveragents:spec/arch-invariant-cli-completeness
cleveragents:spec/update-cycle1-validation-attach-project-delete
cleveragents:docs/add-session-management-showcase
cleveragents:spec/arch-sandbox-path-correction-cycle9
cleveragents:spec/architecture-v380-milestone-plan
cleveragents:docs/auto-docs-cycle-12-updates
cleveragents:docs/cycle-1-validation-gate-fix
cleveragents:docs/2026-04-08-unreleased-changelog
cleveragents:docs/auto-docs-cycle-2-2026-04-10
cleveragents:docs/session-4615-2026-04-08-cycle1
cleveragents:feat/issue-6361-shell-safety-service-tui
cleveragents:spec/architecture-cycle-25-new-features
cleveragents:fix/issue-6345-automation-profile-add-output
cleveragents:docs/timeline-day-102-2026-04-12
cleveragents:docs/cycle-2-git-worktree-acms-hydrator
cleveragents:spec/arch-sandbox-cleanup-discovery
cleveragents:docs/timeline-day96-2026-04-08
cleveragents:docs/auto-docs-cycle-11
cleveragents:spec/fix-sandbox-strategy-protocol-name
cleveragents:spec/arch-acms-tier-hydration
cleveragents:fix/v3.4.0/context-settings-defaults
cleveragents:docs/add-example-repl-and-actor-run
cleveragents:docs/auto-docs-cycle-10-updates
cleveragents:docs/session-4-2026-04-08-updates
cleveragents:docs/showcase-all-examples-consolidated
cleveragents:docs/timeline-day-97
cleveragents:docs/acms-context-hydrator-cycle2
cleveragents:docs/add-example-output-format-flags
cleveragents:spec/arch-failfast-cancel-semantics
cleveragents:timeline/day-101-2026-04-11
cleveragents:docs/timeline-day99-2026-04-09-v2
cleveragents:docs/auto-docs-cycle-2-worktree-acms
cleveragents:spec/architecture-v3.8.0-milestone-plan
cleveragents:docs/api-lsp-acms-reference
cleveragents:improvement/agent-bug-hunt-pool-supervisor-yaml-syntax-fix
cleveragents:spec/project-delete-deleted-at-field
cleveragents:spec/architecture-provider-registry-tui-materializer
cleveragents:spec/document-reconciliation-blocked-error-5942
cleveragents:fix/issue-7482-git-log-injection
cleveragents:spec/devcontainer-auto-discovery-schema
cleveragents:feat/issue-6350-conversation-content-pruning
cleveragents:docs/update-module-guides-2026-04-10
cleveragents:timeline/day-100-2026-04-10-auto-time-cycle1
cleveragents:timeline/day-99-2026-04-09-auto-time-v2
cleveragents:docs/cycle-3-module-guides
cleveragents:timeline/day-99-2026-04-09-auto-time
cleveragents:pr-4226
cleveragents:spec/additional-llm-providers-gemini-groq-cohere-together-ollama-mistral
cleveragents:spec/document-context-tier-hydrator-6175
cleveragents:docs/timeline-day99-2026-04-09
cleveragents:spec/invariant-cli-clarifications
cleveragents:docs/add-example-project-init-and-context-management
cleveragents:spec/reconciliation-blocked-error-documentation
cleveragents:spec/fix-invariant-precedence-reference-5861
cleveragents:spec/fix-plan-correct-accepts-plan-id-5558
cleveragents:spec/fix-validation-attach-synopsis-5328
cleveragents:docs/timeline-day-99-cycle-1
cleveragents:docs/timeline-day-99-cycle-2
cleveragents:fix/actor-context-list-regex-arg
cleveragents:docs/timeline-day-99-cycle-3
cleveragents:spec/arch-security-mode-init
cleveragents:docs/auto-docs-cycle-9-updates
cleveragents:fix-resource-fix-resource-remove-to-check-correct-edge-table
cleveragents:feat/issue-6434-tui-env-var-expansion
cleveragents:fix/issue-6321-plan-prompt-timing-field
cleveragents:fix/issue-6322-resource-add-url-flag
cleveragents:feat/issue-6348-sessions-screen
cleveragents:spec/plan-show-command
cleveragents:temp
cleveragents:feat/harden-label-restrictions-1775753628
cleveragents:spec/invariant-reconciliation-failure-behavior
cleveragents:spec/add-reconciliation-failure-behavior-5942
cleveragents:spec/architecture-corrections-cycle3
cleveragents:spec/checkpoint-trigger-names-and-config-key-fix
cleveragents:spec/fix-ai-provider-interface-5801
cleveragents:spec/azure-api-version-default-update
cleveragents:docs/auto-docs-writer-cycle1-labels
cleveragents:spec/fix-resource-type-yaml-format-5622
cleveragents:spec/add-plan-revert-resume-commands-5574
cleveragents:docs/auto-docs-cycle-1-2026-04-09
cleveragents:spec/plan-correct-plan-id-or-decision-id-5558
cleveragents:spec/fix-subgraph-node-actor-ref-field-5427
cleveragents:issue/5284-master-ci-fix
cleveragents:timeline/day-99-2026-04-09-v2
cleveragents:merge-me
cleveragents:docs/session-3377-initial-docs-update
cleveragents:fix/llm-provider-subpackage-exports
cleveragents:spec/arce-acronym-and-tui-keybinding-fixes
cleveragents:spec/architecture-corrections-cycle2
cleveragents:spec/architecture-corrections-cycle1
cleveragents:docs/cycle-1-updates
cleveragents:spec/tui-clarifications-session-export-persona
cleveragents:docs/session-4940-2026-04-08-cycle1
cleveragents:spec/architecture-milestone-plan-v3.2-v3.7
cleveragents:docs/session-4743-2026-04-08-cycle1
cleveragents:docs/timeline-day-98
cleveragents:fix/plan-lifecycle-service-rollback-method
cleveragents:docs/timeline-day98-2026-04-08-v2
cleveragents:docs/add-example-action-and-plan-management
cleveragents:docs/session-2026-04-06-updates
cleveragents:docs/ca-docs-writer-v3.8.1-2026-04-05
cleveragents:fix/session-tell-stub-missing-panels-and-actor-execution
cleveragents:improvement/agent-arch-guard-clone-failure-handling
cleveragents:improvement/agent-test-infra-health-spam-fix-v2
cleveragents:fix-tdd-invert-non-assertion-exceptions
cleveragents:improvement/agent-arch-guard-clone-failure
cleveragents:bugfix/3472-fix-tdd-inversion-logic
cleveragents:bugfix/989-fix-persistence-json-decode-error
cleveragents:improvement/agent-supervisor-tracking-labels-v2
cleveragents:docs/timeline-day95-v2
cleveragents:docs/timeline-day95-final
cleveragents:docs/update-lsp-api-and-changelog
cleveragents:fix/lsp-resource-handler-module-missing
cleveragents:docs/timeline-day95-final-2026-04-05
cleveragents:fix/a2a-plan-correct-rollback-wiring
cleveragents:docs/add-lsp-api-and-changelog-2026-04-05
cleveragents:fix/tool-registry-validation-type-discriminator
cleveragents:docs/v3.7.0-documentation-update
cleveragents:docs/ca-docs-writer-2026-04-05-cycle2
cleveragents:fix/invariant-set-merge-action-scope
cleveragents:docs/unreleased-feature-docs
cleveragents:fix/concurrency-cost-tracker-record-usage-race-condition
cleveragents:improvement/agent-ca-test-infra-improver-failure-handling
cleveragents:docs/update-changelog-mcp-plan-ci-2026-04-05
cleveragents:improvement/agent-pr-reviewer-milestone-prioritization
cleveragents:docs/timeline-day95-refresh-2026-04-05
cleveragents:improvement/agent-mandatory-labels-tracking-issues
cleveragents:docs/api-domain-providers-changelog-2026-04-05
cleveragents:docs/ca-docs-writer-2026-04-05
cleveragents:docs/timeline-day95-refresh
cleveragents:fix/skill-add-include-validation
cleveragents:docs/timeline-day-95-2026-04-05-update3
cleveragents:docs/timeline-day-95-2026-04-05-update2
cleveragents:docs/ci-incident-runbook-2597
cleveragents:improvement/agent-ca-test-infra-improver-worker-api-mode
cleveragents:docs/shell-safety-api-and-readme-highlights
cleveragents:docs/timeline-day-55-2026-04-04-v2
cleveragents:docs/timeline-day-55-2026-04-04
cleveragents:docs/timeline-day54-update3
cleveragents:improvement/agent-ca-test-infra-improver-fixes
cleveragents:spec/restructure-monolithic-to-split
cleveragents:docs/timeline-day54-update-v2
cleveragents:docs/timeline-day54-update
cleveragents:fix-agents
cleveragents:docs/shell-safety-and-domain-base-model
cleveragents:fix/1452-impl
cleveragents:fix/1473-plan-cancel
cleveragents:fix/1425-test
cleveragents:fix/1426-config
cleveragents:fix/1421-perf
cleveragents:fix/1424-impl
cleveragents:test/int-wf16-devcontainer
cleveragents:feature/m8-tui-persona-export
cleveragents:feature/m7-post-resource-equivalence
cleveragents:test/e2e-m4-acceptance
cleveragents:feature/m6-tantivy-backend
cleveragents:feature/m6-estimation
cleveragents:feature/m6-estimation-report-model
cleveragents:feature/observability-prometheus-audit
cleveragents:feat/server-auth-namespace
cleveragents:feature/m8-session-editing
cleveragents:feature/llm-actor-subplan-wiring
cleveragents:feature/m8-tui-first-run-actor-selection
cleveragents:feature/m8-tui-conversation-block-catalog
cleveragents:feature/m8-tui-settings-screen
cleveragents:feature/m7-e2e-porting
cleveragents:feature/m6-estimation-historical-stats
cleveragents:feature/m8-tui-persona-export-import
cleveragents:feature/m8-tui-sessions-screen
cleveragents:feature/m7-graph-backend
cleveragents:feature/m8-tui-block-context-menu
cleveragents:feature/m8-tui-tool-call-expand
cleveragents:feature/m4-missing-builtin-tools
cleveragents:docs/v3.7.0-release-docs
cleveragents:feature/m8-tui-session-export
cleveragents:test/e2e-wf15-disaster-recovery
cleveragents:test/e2e-wf03-refactoring
cleveragents:test/e2e-m3-acceptance
cleveragents:feature/m8-tui-prompt-history
cleveragents:feature/m8-tui-actor-thought-block-rendering
cleveragents:bugfix/m6-build-hierarchy-child-ids
cleveragents:feature/resource-inheritance-wiring
cleveragents:test/e2e-wf09-session
cleveragents:test/e2e-wf06-doc-generation
cleveragents:test/e2e-wf08-cloud-infra
cleveragents:test/e2e-wf02-test-generation
cleveragents:test/e2e-wf13-custom-profile
cleveragents:test/e2e-wf11-graph-actor
cleveragents:test/e2e-wf01-hello-world
cleveragents:test/int-wf17-explicit-container
cleveragents:test/int-wf12-hierarchical
cleveragents:test/int-wf15-disaster-recovery
cleveragents:test/int-wf13-custom-profile
cleveragents:test/int-wf03-refactoring
cleveragents:test/int-wf11-graph-actor
cleveragents:test/int-wf10-batch
cleveragents:test/int-wf09-session
cleveragents:feature/m3-tdd-issue-consistency-gate
cleveragents:feature/m3-invariant-enforcement-strategize
cleveragents:test/int-wf18-container-clone
cleveragents:test/int-wf01-hello-world
cleveragents:feature/m6-diagnostic-dashboard-health-categories
cleveragents:feature/m6-cli-polish
cleveragents:fix/e2e-db-isolation
cleveragents:feature/m7-post-tui
cleveragents:feature/m9-asgi-endpoint
cleveragents:tdd/m7-audit-session-race
cleveragents:tdd/m3-skill-add-regression
cleveragents:feature/m9-remote-repos
cleveragents:feature/fs-mount-file-types
cleveragents:tdd/container-resolve-crash
cleveragents:test/e2e-m1-acceptance
cleveragents:test/e2e-m2-acceptance
cleveragents:eugen.thaci-patch-3
cleveragents:eugen.thaci-patch-2
cleveragents:eugen.thaci-patch-1
cleveragents:aditya-fix-latest
cleveragents:feature/m4-secret-masking-llm-context
cleveragents:aditya-fix
cleveragents:refactor/m3-replace-mktemp
cleveragents:refactor/m3-remove-unittest-mock-integration
cleveragents:refactor/m3-remove-robot-mock-imports
cleveragents:refactor/m3-remove-mock-llm-integration
cleveragents:docs/improved-menu-adr
cleveragents:feature/m7-post-auth
cleveragents:feature/m3-fix-resource-bootstrap
cleveragents:feature/post-safety-profile-tests
cleveragents:integration/batch-2026-03-02
cleveragents:feat/slipcover
cleveragents:docs/safety-profile-spec-composition
cleveragents:integrate/freemo-batch-1
cleveragents:feature/m4-error-recovery
cleveragents:feature/m4-security-template
cleveragents:feature/m3-validation-pipeline
cleveragents:develop-aditya-2
cleveragents:feature/m3-diff-review
cleveragents:feature/m3-validation-apply
cleveragents:feature/m6-acp-stubs
cleveragents:feature/m4-correction-flows
cleveragents:feature/m1-plan-execute-runtime
cleveragents:feature/m4-security-exceptions
cleveragents:feature/m4-definition-of-done
cleveragents:feature/m4-correction-model
cleveragents:feature/m1-apply-pipeline
cleveragents:feature/m5-automation-profiles
cleveragents:feature/m2-lsp-stubs
cleveragents:feature/m3-invariants
cleveragents:feature/m1-actor-runtime
cleveragents:feature/docs-v2-restore
cleveragents:feature/m6-perf-scale
cleveragents:feature/m6-validation-edge
cleveragents:feature/m3-session-cli
cleveragents:feature/m1-persistence-tests-robot
cleveragents:feature/m3-config-cli
cleveragents:feature/m1-cli-tests-robot
cleveragents:feature/m5-subplan-tests
cleveragents:feature/m6-review-playbook
cleveragents:feature/aditya-m3-actor-loader
cleveragents:feature/m3-skill-protocol
cleveragents:feature/m4-automation-legacy-cleanup
cleveragents:feature/m3-change-model
cleveragents:feature/m3-skill-git
cleveragents:feature/m3-skill-registry
cleveragents:feature/m4-security-eval
cleveragents:fix/robot-tests
cleveragents:feature/m3-actor-registry
cleveragents:feature/m3-tool-cli
cleveragents:feature/m4-automation-profiles-cli
cleveragents:feature/m2-resource-cli-extensions
cleveragents:feature/m3-actor-loader
cleveragents:feature/m3-tool-domain-robot
cleveragents:feature/m3-skill-domain-robot
cleveragents:feature/m3-skill-cli
cleveragents:feature/m1-resource-db-robot-tests
cleveragents:feature/m3-session-domain-robot
cleveragents:feature/m1-persistence-tests
cleveragents:feature/m1-cli-tests
cleveragents:ten-branches-backup
cleveragents:feature/m3-skill-schema
cleveragents:feature/m3-session-persistence
cleveragents:feature/automation-profiles-and-resource-dag
cleveragents:feature/m1-plan-repo
cleveragents:feature/m1-db-plan-phase-rebaseline
cleveragents:feat/B4-sandbox
cleveragents:feat/B2-cli-wiring
cleveragents:feat/B5-project-persistence
cleveragents:feat/B1-project-data-models
cleveragents:feat/b1-data-models
cleveragents:feat-repo-manager-and-sourcegraph-support
cleveragents:feat/actor-schema
cleveragents:fix/component-isolation-security-fix
cleveragents:feat/ontology-agent
cleveragents:fix/error-handling-security-fix
cleveragents:fix/concurrency-security-fix
cleveragents:fix/serialization-security-fix
cleveragents:fix/server-side-request-forgery-security-fix
cleveragents:fix/file-system-security
cleveragents:fix/template-injection-fix
cleveragents:fix/data-injection-fix
cleveragents:tests/unit-tests
cleveragents:latest/poetry-generator
cleveragents:poetry-generator
cleveragents:config/contract-metadata-extractor
cleveragents:docs/readme-yaml-syntax
cleveragents:config/memory-yaml
cleveragents:fix/double-response
cleveragents:brent-additions
cleveragents:intel_2_demo
No reviewers
Labels
Clear labels
auto/needs-reevaluation
Controller deferred this PR; awaiting Phase 6+ scope-evaluator or operator re-enablement.
controller-managed
Auto-agents controller manages this PR/issue (see tools/controller/deploy/RUNBOOK.md). Remove this label to abandon controller management.
auto/blocked-by-deps
PR blocked by an open issue dependency. Operator must close the dep (or remove the dependency link) before the merge driver can act. Auto-cleared by merge_drive when no open deps remain.
auto/ci-timeout
Most recent merge cycle hit CI timeout. Driver excludes this PR while last merge_cycle row is < 30 min old; label persists thereafter as visible history.
auto/claimed-implementer
Currently being processed by an implementer worker.
auto/claimed-merge
Currently being processed by the merge driver.
auto/claimed-reviewer
Currently being processed by a reviewer worker.
auto/driver-down
Merge driver heartbeat stale; pipeline halted. Closed automatically on next clean tick.
auto/invariant-violation
Detected master commit violating the strict merge invariant. Tracked as an issue (not a PR label); kept here for label completeness.
auto/last-attempt-tier-0
In-cycle escalation: most recent attempt ran at the Tier 0 slot (`tier-0`). Slot's model defined in .opencode/models/tiers.yaml.
auto/last-attempt-tier-1
In-cycle escalation: most recent attempt ran at the Tier 1 slot (`tier-1`). Slot's model defined in .opencode/models/tiers.yaml.
auto/last-attempt-tier-2
In-cycle escalation: most recent attempt ran at the Tier 2 slot (`tier-2`). Slot's model defined in .opencode/models/tiers.yaml. Gated behind IMPLEMENTER_ESCALATION_TIER2_ENABLED.
auto/last-attempt-tier-min
In-cycle escalation: most recent attempt ran at the Tier -1 slot (`tier-min`). Slot's model defined in .opencode/models/tiers.yaml. Suffix is ``-min`` (not ``--1``) so the Forgejo UI reads naturally.
Automation Tracking
Tracking issues used by the AI Automation system for agents to communicate and report.
auto/needs-conflict-resolution
Rebase conflict needs LLM conflict-resolver.
auto/needs-implementer
Failing CI needs implementer attention.
auto/postmortem
Documenting a driver incident or rollback.
auto/ready-to-merge
Reviewer has APPROVED this PR and no later REQUEST_CHANGES is outstanding. The merge driver requires this label to even consider a PR for merging. Set by the reviewer worker on APPROVE; cleared on REQUEST_CHANGES.
auto/restart-throttled
Train repeatedly lost master-tempo races. Driver excludes via merge_cycle until cooldown elapses; label persists as visible history.
auto/revert
Revert PR backing out an invariant violation. Fast-tracked through the merge driver.
auto/sentinel
Sentinel PR duplicated from upstream into a personal fork by tools/duplicate_prs_to_fork.py for pipeline testing. Lives only in the fork; the canonical pipeline never sees it.
auto/stale-inactivity
No implementer activity for N days. Flagged for human review. Auto-cleared on next push to head branch.
auto/unstable
Repeatedly fails on current master (>= 3 ci-fail-on-rebased-sha releases in 12 h). Excluded from driver until human triage.
Blocked
A ticket in a blocked state and unable to complete until some other task is completed first.
Bounty
$100
A bounty of $100 for any open-source contributor who provides a MR that solves this issue
Bounty
$1000
A bounty of $1000 for any open-source contributor who provides a MR that solves this issue
Bounty
$10000
A bounty of $10000 for any open-source contributor who provides a MR that solves this issue
Bounty
$20
A bounty of $20 for any open-source contributor who provides a MR that solves this issue
Bounty
$2000
A bounty of $2000 for any open-source contributor who provides a MR that solves this issue
Bounty
$250
A bounty of $250 for any open-source contributor who provides a MR that solves this issue
Bounty
$50
A bounty of $50 for any open-source contributor who provides a MR that solves this issue
Bounty
$500
A bounty of $500 for any open-source contributor who provides a MR that solves this issue
Bounty
$5000
A bounty of $5000 for any open-source contributor who provides a MR that solves this issue
Bounty
$750
A bounty of $750 for any open-source contributor who provides a MR that solves this issue
MoSCoW
Could have
Could have feature in order to satisfy the epic/legendary.
MoSCoW
Must have
Must have feature in order to satisfy the epic/legendary.
MoSCoW
Should have
Should have feature in order to satisfy the epic/legendary.
Needs Feedback
There are questions in the ticket that can not be completed until the project owner provides clarity.
Points
1
1 man-hours worth of work for an expert with no learning curve.
Points
13
13 man-hours worth of work for an expert with no learning curve.
Points
2
2 man-hours worth of work for an expert with no learning curve.
Points
21
21 man-hours worth of work for an expert with no learning curve.
Points
3
3 man-hours worth of work for an expert with no learning curve.
Points
34
34 man-hours worth of work for an expert with no learning curve.
Points
5
5 man-hours worth of work for an expert with no learning curve.
Points
55
55 man-hours worth of work for an expert with no learning curve.
Points
8
8 man-hours worth of work for an expert with no learning curve.
Points
88
88 man-hours worth of work for an expert with no learning curve.
Priority
Backlog
This ticket has backlogged priority and is not to be worked on yet
Priority
CI Blocker
Critical priority issue that blocks CI/CD pipeline and prevents PR merges
Priority
Critical
The priority is critical
Priority
High
The priority is high
Priority
Low
The priority is low
Priority
Medium
The priority is medium
Signed-off: Owner
When an epic or legendary is in review it must be signed off by owner, tech lead, and scrum master before being marked as completed.
Signed-off: Scrum Master
When an epic or legendary is in review it must be signed off by owner, tech lead, and scrum master before being marked as completed.
Signed-off: Tech Lead
When an epic or legendary is in review it must be signed off by owner, tech lead, and scrum master before being marked as completed.
Spike
A ticket for learning a tool or technology that is needed to be able to do future planning and design.
State
Completed
The ticket has been fully implemented, completed, and merged with the source code. This label should only be applied once a ticket is closed.
State
Duplicate
A ticket that represents the same content as an existing ticket.
State
In Progress
A ticket that is actively being developed.
State
In Review
A ticket that has had some code completed to implement but is waiting to pass peer review and is not yet merged in.
State
Paused
This ticket's work started but wasn't finished. It's on hold (likely in a feature branch) and will be resumed later, either due to a blocker or a delay.
State
Unverified
All new tickets start in this state. A developer may set it to show the ticket is unverified. This means we haven't agreed to work on it. It will either move to a verified state or be closed as wontdo.
State
Verified
The issue has been verified by a developer as legitimate. It will be worked on and verified tickets are now considered part of the backlog.
State
Wont Do
This ticket has been decided it wont be done. This may mean the bug has been determined to not be real (cant verify) or the feature is one we have decided we dont want to adopt.
Type
Automation
Any edits or discussion about the AI automated coding system.
Type
Bug
Something that doesnt work as intended.
Type
Discussion
Anytime a ticket represents a discussion about a subject and doesnt fall into one of the other categories.
Type
Documentation
An error or improvement needed in the documentation.
Type
Epic
Any first tier epic. That is, an epic which contains only issues as children and will not have sub-epics.
Type
Feature
Some new functionality not present.
Type
Legendary
A type of Epic which will contain other Epics.
Type
Refactor
A code change that restructures existing code without changing its external behavior.
Type
Support
Someone needs help using the project.
Type
Task
A generic task that doesnt fit into the other type categories.
Type
Testing
Work exclusively focusing on fixing or expanding testing.
No labels
auto/needs-reevaluation
controller-managed
auto/blocked-by-deps
auto/ci-timeout
auto/claimed-implementer
auto/claimed-merge
auto/claimed-reviewer
auto/driver-down
auto/invariant-violation
auto/last-attempt-tier-0
auto/last-attempt-tier-1
auto/last-attempt-tier-2
auto/last-attempt-tier-min
Automation Tracking
auto/needs-conflict-resolution
auto/needs-implementer
auto/postmortem
auto/ready-to-merge
auto/restart-throttled
auto/revert
auto/sentinel
auto/stale-inactivity
auto/unstable
Blocked
Bounty
$100
Bounty
$1000
Bounty
$10000
Bounty
$20
Bounty
$2000
Bounty
$250
Bounty
$50
Bounty
$500
Bounty
$5000
Bounty
$750
MoSCoW
Could have
MoSCoW
Must have
MoSCoW
Should have
Needs Feedback
Points
1
Points
13
Points
2
Points
21
Points
3
Points
34
Points
5
Points
55
Points
8
Points
88
Priority
Backlog
Priority
CI Blocker
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Signed-off: Owner
Signed-off: Scrum Master
Signed-off: Tech Lead
Spike
State
Completed
State
Duplicate
State
In Progress
State
In Review
State
Paused
State
Unverified
State
Verified
State
Wont Do
Type
Automation
Type
Bug
Type
Discussion
Type
Documentation
Type
Epic
Type
Feature
Type
Legendary
Type
Refactor
Type
Support
Type
Task
Type
Testing
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
cleveragents/cleveragents-core!1111
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/m7-post-server"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implement the complete server client chain for CleverAgents server communication.
This PR contains 4 sequential commits, one per issue:
Commit 1: feat(client): add server http client (#335)
ServerHttpClientwith httpx for health check, version negotiation, paginationcreate_client_from_settingswired to SettingsCommit 2: feat(client): add plan sync and remote execution (#336)
PlanSyncClientfor syncing actions, skills, tools, projects with serverCommit 3: feat(client): add websocket updates (#337)
WebSocketClientfor real-time plan update events via WebSocketCommit 4: feat(client): add remote project support (#338)
RemoteProjectClientfor remote project resolution and executionAll commits include:
Closes #335
Closes #336
Closes #337
Closes #338
Code Review: REQUEST CHANGES
Major Issues (4):
Multi-issue PR: Confirm Epic scope -- This PR bundles 4 issues (#335, #336, #337, #338) with 4 commits. CONTRIBUTING.md states "Each PR must be associated with a single Epic." The 4 issues appear thematically related (server client chain: HTTP -> sync -> WebSocket -> remote projects). If they all share the same parent Epic, this is compliant. Please confirm these all belong to the same Epic and ensure Forgejo dependency links are set correctly (PR blocks each issue).
Encapsulation violation:
_http._request()access --sync_client.pyandremote_project.pydirectly callself._http._request(...)(5+ call sites), accessing a private method ofServerHttpClient. This creates tight coupling. Either promote_requestto a public method (rename torequest), or add public facade methods toServerHttpClient(e.g.,post_json(),get_json()).Incomplete WebSocket implementation --
ws_client.py:connect()is a stub that just setsself._state.connected = Truewithout any actual WebSocket logic. CONTRIBUTING.md says "Do not commit half-done work." Either implement the actual WebSocket connection or clearly scope the issue as "scaffolding."Thread safety issue in WebSocket event processing --
ws_client.py:process_event()writes toself._state.last_event_idoutsideself._lock, whileself._lockprotects callback list access. Concurrent event processing could cause races onlast_event_id.Minor Issues (4):
Blocking
time.sleepin retry logic --http_client.pyusestime.sleep(delay)during retry backoff, blocking the calling thread. Consider usingtenacity(already a project dependency).Incomplete exception handling in
sync()--sync_client.py:sync()only catchesServerConnectionErrorbut_sync_itemcan also raiseServerTimeoutErrororA2aNotAvailableError, which would crash the sync loop.Missing
has_nextin benchmark setup --benchmarks/server_remote_project_bench.pydoesn't passhas_nexttoPageResult.Retry-After header not respected -- The retry logic reads the header for logging but doesn't use it for backoff delay.
What's well done:
Day 43 Review — PR #1111
feat(client): server client chainMilestone: v3.6.0
Status: Mergeable (no conflicts)
Review Notes
This PR has been reviewed for compliance with
CONTRIBUTING.mdstandards. Key checks:Action Items
Closes #NNN)Please ensure all subtasks in the linked issue are complete before merging.
ca9adc0f20a9569407e2Review: Looks Good
Server client chain implementation covering issues #335, #336, #337, #338. Large feature PR for v3.6.0 milestone.
Note: Cannot formally approve as PR author matches the authenticated API user.
a9569407e24e14b9e9c44e14b9e9c4c9be72a99fCode Review: feat(client): server client chain
Primary Concern: PR Scope Too Large
This PR is 5,359 lines across 34 files spanning 4 distinct feature areas:
http_client.py)sync_client.py)ws_client.py)remote_project.py)Per CONTRIBUTING.md: "Each PR must be associated with a single Epic. Do not combine work from multiple unrelated Epics in one PR." While these 4 clients share a transport layer dependency, they serve different use cases (plan sync vs real-time updates vs project resolution) and could each be reviewed independently.
The 6 commits are already well-separated (
feat(client): add server http client→add plan sync→add websocket updates→add remote project support), confirming these are logically distinct features.Recommendation: Split into 4 PRs:
What's Good (the code itself is high quality)
ServerConnectionError,ServerTimeoutError,ServerVersionMismatchError._redact_headers()for auth header scrubbing in logs._backoff_delay(), retries only on idempotent methods for 429/500/502/504.EventDeduplicatorwith LRU-bounded set is well-designed.If Splitting Is Not Feasible
At minimum, the
fix: rename cls to klasscommit should be in a separate PR (it's shared across multiple branches and will cause merge conflicts).Review claimed by reviewer pool instance pr-reviewer-pool-2813550-1775153400. Dispatching independent code review.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
Independent Code Review: REQUEST CHANGES
🚫 Blocker: Merge Conflicts
The PR currently has
mergeable: false— there are merge conflicts withmaster. The branch must be rebased onto the currentmasterbefore this PR can be merged. Given the volume of recent merges to master (32 PRs merged on Day 53 alone), this is expected but must be resolved.Action required: Rebase
feature/m7-post-serverontomasterand force-push.Code Quality Issues (2 files exceed 500-line limit)
Per CONTRIBUTING.md, all source files must be under 500 lines.
src/cleveragents/client/http_client.py— 522 lines (22 over limit)PageResult,_redact_headers(),_backoff_delay(), andcreate_client_from_settings()into a separatehttp_helpers.pyorhttp_models.pymodule. This would bring the main client file well under 500 lines.features/steps/server_http_client_steps.py— 513 lines (13 over limit)server_http_client_steps.py(core client steps) andserver_http_client_error_steps.py(error mapping and exception attribute steps).What's Well Done (the implementation quality is high)
ServerHttpClientwithout leaking abstractions.# type: ignoresuppressions found.ServerConnectionError,ServerTimeoutError,ServerVersionMismatchErrorall extendCleverAgentsErrorwith structureddetailsdicts._redact_headers()in all log output. TLS verification toggle with explicit warning when disabled._backoff_delay(), retries only on idempotent methods (GET/HEAD/OPTIONS/PUT/DELETE) for 429/500/502/504. Clear comments explaining why blockingtime.sleepis intentional and whyRetry-Afteris logged but not used for backoff.ws_client.pyprotectslast_event_idand callback list underself._lock(fixed from initial review)._request()was promoted to publicrequest()method (fixed from initial review).connect()now raisesNotImplementedErrorwith clear documentation about what's needed (fixed from initial review).Fielddefinitions withvalidation_aliasfor env vars.EventDeduplicator: LRU-boundedOrderedDictis an elegant, efficient approach.Minor Observations (not blocking)
fix: rename cls to klasscommit (c9be72a) modifiesstrategy_registry.pywhich is unrelated to the client chain. Previous reviews correctly noted this should ideally be in a separate PR to avoid merge conflicts with other branches. Since it's already here and the rebase will be needed anyway, this is acceptable but noted.Summary
Once the rebase is completed and the two over-limit files are split, this PR is ready to merge.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer
Review claimed by reviewer pool instance pr-reviewer-pool-2988182-1775156309. Dispatching independent code review.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
Independent Code Review: REQUEST CHANGES
I've reviewed all 34 files (5,359 lines) across 6 commits, the linked issues (#335–#338), the specification's Server and Client Architecture section, and the three prior reviews. The implementation quality is high, but there are 3 blocking issues that must be resolved before merge.
🚫 Blocker 1: Merge Conflicts
The PR has
mergeable: false— the branch has conflicts withmaster. This was flagged in the previous review (comment #80408) and remains unresolved.Action required: Rebase
feature/m7-post-serveronto the currentmasterand force-push.🚫 Blocker 2: Two Files Exceed 500-Line Limit
Per CONTRIBUTING.md, all source files must be under 500 lines.
src/cleveragents/client/http_client.py— 522 lines (22 over limit)PageResult,_redact_headers(),_backoff_delay(), andcreate_client_from_settings()into a separatehttp_helpers.pyorhttp_models.pymodule.features/steps/server_http_client_steps.py— 513 lines (13 over limit)server_http_client_steps.py(core client steps) andserver_http_client_error_steps.py(error mapping and exception attribute steps).This was also flagged in the previous review and remains unresolved.
🚫 Blocker 3: Unclean Commit History
Per CONTRIBUTING.md: "Do not leave 'fixup' or 'WIP' commits in the branch history; use interactive rebase to create a clean, meaningful history."
The branch currently has 6 commits:
Issues:
8e9aa7af(fix commit) should be squashed into the relevant feature commits via interactive rebase. The changes in this commit (promoting_request()torequest(), fixing WSconnect(), thread safety fix, etc.) belong in their respective feature commits.c9be72a9(cls→klass rename) modifiesstrategy_registry.pywhich is completely unrelated to the server client chain. This should be in a separate PR. Including it here risks merge conflicts with other branches touching that file and violates the atomic commit principle.Action required:
8e9aa7afinto the 4 feature commits it fixes.c9be72a9from this branch (cherry-pick it into a separate PR).⚠️ Design Observation: REST vs A2A Protocol Alignment
The specification states unambiguously:
This PR implements a raw HTTP client with REST-style endpoints (
GET /health,POST /version/negotiate,GET /plans/{id}/status,POST /plans/execute, etc.). These are not A2A JSON-RPC methods.I understand this is M7 "Deferred Work" and may be scaffolding, but the current design creates REST endpoints that will need to be completely rewritten when the actual A2A server is built. Consider:
http_transport.pyrather thanhttp_client.py)request()method signature to be closer to JSON-RPC semanticsThis is not blocking — it's a design concern for the implementer to consider.
✅ What's Well Done
The code quality itself is excellent:
# type: ignoreServerConnectionError,ServerTimeoutError,ServerVersionMismatchErrorall extendCleverAgentsErrorwith structureddetailsdicts_redact_headers()in all log output; TLS toggle with warningws_client.pyprotectslast_event_idand callbacks underself._lockEventDeduplicator: LRU-boundedOrderedDictis elegant and efficientISSUES CLOSED:footersReview Checklist
Once the rebase is completed, the two over-limit files are split, and the commit history is cleaned up, this PR is ready to merge.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer
Review claimed by reviewer pool instance pr-reviewer-pool-3983434-1775170710. Dispatching independent code review.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
Merge conflict detected. This PR has
mergeable: false— the branch has conflicts with master. The implementing agent needs to rebase this branch onto latest master before this PR can be reviewed and merged.Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-1111-1775243200]
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
Independent Code Review: REQUEST CHANGES
I've reviewed all 34 files (5,359 lines added) across 6 commits, the linked issues (#335–#338), the specification, CONTRIBUTING.md, and the 4 prior reviews. The same 3 blocking issues identified in previous reviews remain unresolved. The implementation quality is high, but these must be fixed before merge.
🚫 Blocker 1: Merge Conflicts (Still Unresolved)
The PR has
mergeable: false. This was first flagged on 2026-04-02 (comment #80408) and again on 2026-04-03 (comment #92692). The branch must be rebased onto currentmaster.Action required: Rebase
feature/m7-post-serverontomasterand force-push.🚫 Blocker 2: Two Files Exceed 500-Line Limit (Still Unresolved)
Per CONTRIBUTING.md line 399: "Keep files under 500 lines."
src/cleveragents/client/http_client.py— 522 lines (22 over limit)PageResult,_redact_headers(),_backoff_delay(), andcreate_client_from_settings()into a separatehttp_helpers.pymodule. This would bring the main client file to ~440 lines.features/steps/server_http_client_steps.py— 513 lines (13 over limit)server_http_client_error_steps.pyfile.🚫 Blocker 3: Unrelated Commit & Unclean History
Unrelated commit:
c9be72a9(fix: rename cls to klass in _validate_protocol) modifiessrc/cleveragents/infrastructure/sandbox/strategy_registry.py, which is completely unrelated to the server client chain. This violates the atomic commit principle and risks merge conflicts with other branches.Fixup commit:
8e9aa7af(fix(client): address server client chain review findings) is a fixup commit that should be squashed into the relevant feature commits per CONTRIBUTING.md: "Do not leave 'fixup' or 'WIP' commits in the branch history."Action required:
c9be72a9from this branch (submit it as a separate PR).8e9aa7afinto the 4 feature commits it fixes via interactive rebase.⚠️ Non-Blocking: REST vs A2A Protocol Alignment
The specification states: "The server's sole client-facing interface is an A2A JSON-RPC 2.0 endpoint. There is no REST API." This PR implements REST-style endpoints (
GET /health,POST /version/negotiate, etc.). As M7 scaffolding this is acceptable, but consider adding a docstring note that this transport layer will be replaced by A2A SDK integration.Inline Comments
src/cleveragents/client/http_client.py(line 1): This file is 522 lines, exceeding the 500-line limit. ExtractPageResult,_redact_headers(),_backoff_delay(), andcreate_client_from_settings()into a separatehttp_helpers.pymodule.features/steps/server_http_client_steps.py(line 1): This file is 513 lines, exceeding the 500-line limit. Split error-mapping and exception-attribute step definitions into a separateserver_http_client_error_steps.py.src/cleveragents/infrastructure/sandbox/strategy_registry.py(line 262): Thecls→klassrename is unrelated to the server client chain feature. It should be in a separate PR.✅ What's Well Done
The code quality is excellent:
# type: ignoresuppressionsServerConnectionError,ServerTimeoutError,ServerVersionMismatchErrorall extendCleverAgentsErrorws_client.pyprotectslast_event_idand callbacks underself._lockEventDeduplicator: LRU-boundedOrderedDictis elegant and efficientReview Checklist
Once the rebase is completed, the two over-limit files are split, and the commit history is cleaned up, this PR is ready to merge.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer
🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-1111-1775360000]
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
Independent Code Review: REQUEST CHANGES
I've independently reviewed all 34 files (5,359 lines) across 6 commits, the linked issues (#335–#338), the specification, and CONTRIBUTING.md. Three blocking issues remain unresolved from prior reviews.
🚫 Blocker 1: Merge Conflicts
The PR has
mergeable: false— the branch has merge conflicts withmaster(confirmed via merge-tree analysis: 2 conflict regions detected). This has been flagged since 2026-04-02 and remains unresolved.Action required: Rebase
feature/m7-post-serveronto currentmasterand force-push.🚫 Blocker 2: Two Files Exceed 500-Line Limit
Per CONTRIBUTING.md, all source files must be under 500 lines.
src/cleveragents/client/http_client.pyfeatures/steps/server_http_client_steps.pyRecommended fixes:
http_client.py: ExtractPageResult,_redact_headers(),_backoff_delay(), andcreate_client_from_settings()into a newhttp_helpers.pymodule (~440 lines after extraction).server_http_client_steps.py: Split error-mapping and exception-attribute step definitions into a separateserver_http_client_error_steps.py.🚫 Blocker 3: Unclean Commit History
Per CONTRIBUTING.md: "Do not leave 'fixup' or 'WIP' commits in the branch history."
Current commits:
Issues:
8e9aa7afis a fixup commit (15 files, 136 insertions) addressing review findings. Squash into the respective feature commits via interactive rebase.c9be72a9modifiesstrategy_registry.py— completely unrelated to server client chain. Remove from this branch; submit as separate PR.✅ Code Quality Assessment (Excellent)
All findings from the initial review (comment #70318) have been properly addressed:
_request()promoted to publicrequest()✅connect()raisesNotImplementedErrorwith clear docs ✅last_event_idprotected underself._lock✅sync()catches all three exception types ✅# type: ignoreCleverAgentsErrorEventDeduplicatorwith LRU-boundedOrderedDict⚠️ Non-Blocking: REST vs A2A Protocol
The spec states the server's sole interface is A2A JSON-RPC 2.0 with no REST API. As M7 scaffolding this is acceptable, but consider adding a docstring note that this transport layer will be replaced by A2A SDK integration.
Inline Comments
src/cleveragents/client/http_client.py(line 1): 522 lines — extract helpers intohttp_helpers.pyfeatures/steps/server_http_client_steps.py(line 1): 513 lines — split error steps into separate filesrc/cleveragents/infrastructure/sandbox/strategy_registry.py(line 262): Unrelatedcls→klassrename — remove from this branchReview Checklist
Once the rebase is completed, the two over-limit files are split, and the commit history is cleaned up, this PR is ready to merge. The code quality is excellent.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer
🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-1111-1775369700]
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
Formal Code Review: REQUEST CHANGES
Review focus: architecture-alignment, specification-compliance, interface-contracts
Files reviewed: All 34 files (5,359 lines) across 6 commits, linked issues #335–#338, specification, and CONTRIBUTING.md
Prior reviews examined: 5 prior review comments (all informal COMMENT reviews or self-reviews)
🚫 Blocker 1: Merge Conflicts (Unresolved Since 2026-04-02)
The PR has
mergeable: false. This has been flagged in every review since April 2 and remains unresolved after 4 days. The branch must be rebased onto currentmasterbefore merge.Action required: Rebase
feature/m7-post-serverontomasterand force-push.🚫 Blocker 2: Two Files Exceed 500-Line Limit
Per CONTRIBUTING.md, all source files must be under 500 lines.
src/cleveragents/client/http_client.pyfeatures/steps/server_http_client_steps.pyRecommended fixes:
http_client.py: ExtractPageResult,_redact_headers(),_backoff_delay(), andcreate_client_from_settings()into a newhttp_helpers.pymodule. These are self-contained utilities that don't need to live in the main client class file.server_http_client_steps.py: Split error-mapping step definitions (the "Exception attributes" and "Error mapping" sections) into a separateserver_http_client_error_steps.py.🚫 Blocker 3: Unclean Commit History
Per CONTRIBUTING.md: "Do not leave 'fixup' or 'WIP' commits in the branch history; use interactive rebase to create a clean, meaningful history."
Current commits:
Two issues:
8e9aa7afis a fixup commit (136 insertions across 15 files) that addresses review findings: promoting_request()torequest(), fixing WSconnect(), thread safety fix, broadening exception handling. These changes belong in their respective feature commits. Squash via interactive rebase.c9be72a9modifiesstrategy_registry.py— acls→klassrename inSandboxStrategyRegistry._validate_protocol()that is completely unrelated to the server client chain. This violates the atomic commit principle ("Each commit must represent a single, complete, logical change") and risks merge conflicts with other branches touching that file. Remove from this branch and submit as a separate PR.Action required:
8e9aa7afinto the 4 feature commits it fixes via interactive rebase.c9be72a9from this branch (cherry-pick it into a separate PR).⚠️ Architecture Alignment: REST vs A2A Protocol (Non-Blocking)
Focus area deep dive: The specification states unambiguously:
This PR implements REST-style endpoints (
GET /health,POST /version/negotiate,GET /plans/{id}/status,POST /plans/execute,POST /{resource_type},PUT /{resource_type}/{id},GET /projects,POST /projects/{id}/execute). These are not A2A JSON-RPC methods.I understand this is M7 "Deferred Work" and the milestone description explicitly allows "Abstraction layers that prepare for TUI/Server." The code is well-structured as a transport layer that could be adapted. However, to prevent this scaffolding from calcifying into the permanent architecture, I recommend:
http_client.pystating this is a transitional transport layer that will be replaced by A2A SDK integrationhttp_transport.pyrather thanhttp_client.pyto signal its transitional natureThis is not blocking — it's a design concern for the implementer to consider.
⚠️ Interface Contract Observations (Non-Blocking)
Focus area deep dive: The interface contracts between the four client modules are well-designed:
Composition pattern:
PlanSyncClient,WebSocketClient, andRemoteProjectClientall compose on top ofServerHttpClientvia constructor injection. This is clean and testable._sync_itemredundant exception handling (sync_client.py~line 170): The method has:This catch-and-reraise is redundant —
ServerConnectionErrorwould propagate naturally to thesync()method which catches it. While not harmful, it adds noise. Consider removing it for clarity.RemoteProjectClient._cacheis not thread-safe: The_cachedict is accessed without locking. Iflist_projects()is called from multiple threads concurrently, there could be data races. For M7 scaffolding this is acceptable, but worth a# NOTE: not thread-safecomment.WebSocketClient.reconnect()state mutations outside lock:reconnect()modifiesself._state.reconnect_countandself._state.connectedwithout holdingself._lock, whileprocess_event()modifiesself._state.last_event_idunder the lock. If these methods run concurrently, there could be visibility issues. Again, acceptable for scaffolding but worth documenting.✅ What's Excellent (Code Quality Is High)
The implementation quality is genuinely excellent. Specific highlights:
ServerHttpClienthandles transport/retry/auth; sync/ws/project compose on top without leaking abstractions.# type: ignoresuppressions across all files.ServerConnectionError,ServerTimeoutError,ServerVersionMismatchErrorall extendCleverAgentsErrorwith structureddetailsdicts containing diagnostic information._redact_headers()in all log output. TLS verification toggle with explicit warning when disabled._backoff_delay(), retries only on idempotent methods (GET/HEAD/OPTIONS/PUT/DELETE) for 429/500/502/504. Clear comments explaining why blockingtime.sleepis intentional and whyRetry-Afteris logged but not used for backoff.ws_client.pyprotectslast_event_idand callback list underself._lock. Callback dispatch copies the list under lock then iterates outside lock — correct pattern.EventDeduplicator: LRU-boundedOrderedDictis an elegant, efficient approach for event de-duplication.ISSUES CLOSED:footers.Inline Comments
src/cleveragents/client/http_client.py(line 1): 522 lines — extractPageResult,_redact_headers(),_backoff_delay(), andcreate_client_from_settings()intohttp_helpers.pyfeatures/steps/server_http_client_steps.py(line 1): 513 lines — split error-mapping and exception-attribute steps intoserver_http_client_error_steps.pysrc/cleveragents/infrastructure/sandbox/strategy_registry.py(line 262): Unrelatedcls→klassrename — remove from this branch, submit as separate PRReview Checklist
Decision: REQUEST CHANGES 🔄
The code quality is excellent. Once the three blockers are resolved (rebase, file splits, commit history cleanup), this PR is ready to merge. The non-blocking concerns about REST vs A2A alignment and minor thread safety gaps are documented for future consideration.
Note: Could not post as formal Forgejo review (API user matches PR author). This comment serves as the formal review record.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer
Formal Code Review: REQUEST CHANGES
Review focus: architecture-alignment, module-boundaries, interface-contracts
Review reason: stale-review — prior reviews were all COMMENT state; this is the first formal verdict
Files reviewed: All 5 source modules (
http_client.py,sync_client.py,ws_client.py,remote_project.py,exceptions.py),__init__.py, commit history, linked issues #335–#338, specification, CONTRIBUTING.md, and 6 prior review commentsPrior reviews examined: 4 formal reviews (all COMMENT state), 6 detailed review comments
Context: Why This Review Exists
This PR has received 6 detailed code review comments since March 23, all identifying the same 3 blocking issues. However, none were posted as formal Forgejo reviews with
REQUEST_CHANGESstate — they were allCOMMENTreviews or issue comments. This means the PR has no proper review verdict gating it. This review provides that formal verdict.🚫 Blocker 1: Merge Conflicts (Unresolved Since 2026-04-02)
The PR has
mergeable: false. This has been flagged in every review since April 2 (6 days ago) and remains unresolved. The branch cannot be merged in its current state.Action required: Rebase
feature/m7-post-serveronto currentmasterand force-push.🚫 Blocker 2: Two Files Exceed 500-Line Limit
Per CONTRIBUTING.md: "Keep files under 500 lines."
src/cleveragents/client/http_client.pyfeatures/steps/server_http_client_steps.pyRecommended fixes:
http_client.py: ExtractPageResult,_redact_headers(),_backoff_delay(), andcreate_client_from_settings()into a newhttp_helpers.pymodule. These are self-contained utilities that don't need to live in the main client class file. This would bring the main file to ~440 lines.server_http_client_steps.py: Split error-mapping and exception-attribute step definitions into a separateserver_http_client_error_steps.py.🚫 Blocker 3: Unclean Commit History
Per CONTRIBUTING.md: "Do not leave 'fixup' or 'WIP' commits in the branch history; use interactive rebase to create a clean, meaningful history."
Current commits:
Two issues:
8e9aa7afis a fixup commit (136 insertions across 15 files) that addresses review findings: promoting_request()torequest(), fixing WSconnect(), thread safety fix, broadening exception handling. Per CONTRIBUTING.md, these changes belong in their respective feature commits. Squash via interactive rebase.c9be72a9modifiesstrategy_registry.py— acls→klassrename inSandboxStrategyRegistry._validate_protocol()that is completely unrelated to the server client chain. This violates the atomic commit principle and risks merge conflicts with other branches. Remove from this branch and submit as a separate PR.Action required:
8e9aa7afinto the 4 feature commits it fixes via interactive rebase.c9be72a9from this branch (cherry-pick it into a separate PR).✅ Architecture Deep Dive (Focus Area Results)
Given my assigned focus on architecture-alignment, module-boundaries, and interface-contracts, I performed a thorough analysis of the client module architecture. The architecture is excellent.
Module Boundaries ✅
The
src/cleveragents/client/package has clean, well-separated modules:exceptions.py— Error hierarchy (ServerConnectionError, ServerTimeoutError, ServerVersionMismatchError)http_client.py— Transport layer (ServerHttpClient, PageResult, factory function)sync_client.py— Resource synchronization (PlanSyncClient, ConflictPolicy, SyncScope, SyncSummary)ws_client.py— Real-time events (WebSocketClient, ConnectionState, EventDeduplicator)remote_project.py— Project resolution (RemoteProjectClient, RemoteProject, cache)Each module has a single, clear responsibility. No module does too much or too little.
Dependency Direction ✅
All dependencies flow correctly inward toward core:
client.exceptions→core.exceptions(extends CleverAgentsError)client.http_client→a2a.errors,a2a.models,client.exceptionsclient.sync_client→a2a.errors,client.exceptions,client.http_clientclient.ws_client→a2a.models,client.exceptionsclient.remote_project→client.http_client,core.exceptionsNo circular dependencies. No violations of the layered architecture.
Interface Contracts ✅
PlanSyncClient,WebSocketClient, andRemoteProjectClientall compose onServerHttpClientvia constructor injection. This is clean, testable, and follows the project's DI patterns.ServerHttpClient.request()is the sole public method used by dependent clients. The interface is minimal and well-defined.CleverAgentsErrorwith structureddetailsdicts.remote_project.pycorrectly usesResourceNotFoundErrorfromcore.exceptionsfor domain-level errors.PageResult,SyncSummary,ExecutionResult,RemoteProject,ConnectionStateare all well-typed with proper__slots__or@dataclass(slots=True)for memory efficiency.Encapsulation ✅ (Fixed)
The initial review (comment #70318) correctly identified that
sync_client.pyandremote_project.pywere callingself._http._request()(private method). This was fixed in commit8e9aa7af—_request()was promoted to publicrequest(). The current code correctly usesself._http.request()throughout.⚠️ Architecture Observation: REST vs A2A Protocol (Non-Blocking)
The specification states: "The server's sole client-facing interface is an A2A JSON-RPC 2.0 endpoint. There is no REST API."
This PR implements REST-style endpoints (
GET /health,POST /version/negotiate,GET /plans/{id}/status,POST /plans/execute,POST /{resource_type},PUT /{resource_type}/{id},GET /projects,POST /projects/{id}/execute).The M7 milestone description explicitly allows "Abstraction layers that prepare for TUI/Server", so this is acceptable as scaffolding. However, to prevent this from calcifying into permanent architecture:
http_client.pystating this is a transitional transport layerThis is not blocking.
⚠️ Minor Interface Observations (Non-Blocking)
sync_client.pyredundant exception re-raise (~line 170): The_sync_itemmethod hasexcept ServerConnectionError: raisewhich is redundant — the exception would propagate naturally tosync()which catches it. While not harmful, it adds noise.RemoteProjectClient._cacheis not thread-safe: The_cachedict is accessed without locking. Iflist_projects()is called from multiple threads, there could be data races. For M7 scaffolding this is acceptable, but worth a# NOTE: not thread-safecomment.WebSocketClient.reconnect()state mutations outside lock:reconnect()modifiesself._state.reconnect_countandself._state.connectedwithout holdingself._lock, whileprocess_event()modifiesself._state.last_event_idunder the lock. If these methods run concurrently, there could be visibility issues. Acceptable for scaffolding but worth documenting.✅ Code Quality Assessment (Excellent)
All findings from the initial review (comment #70318) have been properly addressed:
_request()promoted to publicrequest()connect()raisesNotImplementedErrorwith clear TODOlast_event_idprotected underself._locksync()catches all three exception typesAdditional quality highlights:
# type: ignoresuppressionsCleverAgentsError_redact_headers()in all log outputEventDeduplicatorwith LRU-boundedOrderedDict— elegant and efficientISSUES CLOSED:footersReview Checklist
Decision: REQUEST CHANGES 🔄
The code quality and architecture are excellent. The client chain is well-designed with clean module boundaries, proper dependency direction, and well-defined interface contracts. Once the three mechanical blockers are resolved (rebase, file splits, commit history cleanup), this PR is ready to merge.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-self-reviewer
Independent Code Review: REQUEST CHANGES
Review focus: architecture-alignment, module-boundaries, interface-contracts
Review reason: stale-review — PR has been in review since 2026-03-23 (16 days) with no code changes addressing feedback
Files reviewed: All 5 source modules (
http_client.py,sync_client.py,ws_client.py,remote_project.py,exceptions.py),__init__.py, 6 commits, linked issues #335–#338, 8 prior review comments, 1 prior formal review (HAL9000 #4296)Prior reviews examined: 8 comment reviews + 1 formal REQUEST_CHANGES review, all identifying the same 3 blockers
⚠️ Process Concern: 16 Days Without Action
This PR has received 8 detailed code reviews since March 23, all identifying the same 3 mechanical blockers. The last code change was commit
c9be72a9on March 24. No action has been taken in 16 days. The 3 blockers are purely mechanical (rebase, file split, commit cleanup) and do not require design decisions.If the author is blocked or this work is deprioritized, the PR should be marked accordingly (e.g.,
State/Paused) to prevent further review cycles from consuming reviewer bandwidth.🚫 Confirmed Blockers (Unchanged Since Mar 23)
I independently confirm all 3 blockers identified in prior reviews remain unresolved:
1. Merge Conflicts —
mergeable: false. Branch must be rebased onto currentmaster.2. Two Files Over 500-Line Limit —
http_client.py(~522 lines) andfeatures/steps/server_http_client_steps.py(~513 lines). Per CONTRIBUTING.md: "Keep files under 500 lines."3. Unclean Commit History — Fixup commit
8e9aa7afmust be squashed into feature commits. Unrelated commitc9be72a9(cls→klassrename instrategy_registry.py) must be removed from this branch.I will not repeat the detailed remediation steps — they are thoroughly documented in HAL9000's review (#4296) and 5 prior comment reviews.
🔍 Architecture Deep Dive (Focus Area: NEW Findings)
Given my assigned focus on architecture-alignment, module-boundaries, and interface-contracts, I performed an independent analysis of the client module architecture. I concur with HAL9000's assessment that the overall architecture is excellent, but I identified two additional interface contract concerns not raised in any prior review.
🆕 Finding 1: Hidden Input Mutation in
_sync_item()(Interface Contract Violation)Location:
src/cleveragents/client/sync_client.py,_sync_item()methodWhen creating a new item on the server,
_sync_item()mutates the caller's dict in-place:The
sync()method then relies on this side effect:Why this matters: This creates an implicit contract between
sync()and_sync_item()that is not documented in either method's docstring. The_sync_item()docstring says it "Returns 'created', 'updated', or 'skipped'" — it does not mention that it also mutates the input dict. A future maintainer refactoring_sync_item()to return a copy or a dataclass would silently breaksync().Recommended fix: Either:
_sync_item()'s docstring: "Side effect: setsitem['server_id']on creation."return ("created", new_server_id)and havesync()read it from the return tuple.Severity: Non-blocking, but a real maintainability concern for a module that will evolve.
🆕 Finding 2: WebSocketClient Authentication Divergence (Module Boundary Concern)
Location:
src/cleveragents/client/ws_client.pyconstructorPlanSyncClientandRemoteProjectClientboth compose onServerHttpClientvia constructor injection, inheriting its authentication, base URL, TLS settings, and retry configuration. This is clean and consistent.However,
WebSocketClienttakes its own independentws_urlandapi_tokenparameters:This means:
ServerHttpClient.base_urlandWebSocketClient.ws_urlindependentlyServerHttpClient.api_tokenandWebSocketClient.api_tokenindependentlyRecommended fix: Consider having
WebSocketClientderive itsws_urlfrom aServerHttpClientinstance (e.g.,ws_url = http_client.base_url.replace("http", "ws") + "/ws"), or at minimum accept aServerHttpClientin its constructor for configuration consistency. This would align with the composition pattern used by the other two clients.Severity: Non-blocking for M7 scaffolding, but worth addressing before the server milestone (M9) to prevent configuration drift.
✅ Architecture Validation (Confirming Prior Findings)
I independently verified the following architectural properties:
request()is the sole public transport method_request()was correctly promoted torequest()in fixup commit# type: ignore⚠️ REST vs A2A Protocol (Confirming Prior Finding)
I concur with prior reviews: the specification mandates A2A JSON-RPC 2.0 as the sole client-server protocol, but this PR implements REST-style endpoints. As M7 scaffolding this is acceptable per the milestone description ("Abstraction layers that prepare for TUI/Server may be included here"), but should be explicitly documented as transitional.
Review Checklist
Decision: REQUEST CHANGES 🔄
The code quality and architecture are excellent. The client chain is well-designed with clean module boundaries, proper dependency direction, and well-defined interface contracts. I identified two new interface contract concerns (input mutation in
_sync_itemand WebSocket authentication divergence) that should be addressed but are not blocking for M7.The 3 mechanical blockers (rebase, file splits, commit cleanup) must be resolved before merge. These have been identified in every review since March 23 and remain unaddressed after 16 days.
Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-self-reviewer
Formal Code Review: REQUEST CHANGES
Review focus: architecture-alignment, specification-compliance, test-coverage-quality
Commit reviewed:
c9be72a99f89d48194bdc7851adafccb29b85564Files reviewed: All 5 source modules (
http_client.py,sync_client.py,ws_client.py,remote_project.py,exceptions.py),__init__.py, 4 Behave feature files + step definitions, 4 Robot Framework suites + helpers, 4 ASV benchmark files, 4 reference docs,pyproject.toml, commit history (6 commits), linked issues #335–#338,docs/specification.md,CONTRIBUTING.mdPrior reviews: 2 prior formal
REQUEST_CHANGESreviews (HAL9000 #4296 on 2026-04-08, HAL9000 #4329 on 2026-04-08 — both dismissed). 4 comment/stub reviews fromfreemo.Context: State of This PR
This PR has been open since 2026-03-23 (18 days). It has received two prior formal
REQUEST_CHANGESreviews from HAL9000, both dismissed without the underlying issues being resolved. No code changes have been made since 2026-03-24. The three mechanical blockers identified in prior reviews remain unaddressed. This review independently confirms all prior findings and adds new ones discovered during a fresh, focused audit.🚫 BLOCKER 1 — Merge Conflict:
mergeable: falseThe Forgejo API reports
"mergeable": false. The branchfeature/m7-post-serverhas conflicts withmasterthat have been unresolved since at least 2026-04-02 (per prior reviews). This alone prevents merge.Action required: Rebase
feature/m7-post-serveronto currentmasterand force-push.🚫 BLOCKER 2 — Two Source Files Exceed 500-Line Limit
Per
CONTRIBUTING.md: "Keep files under 500 lines. Break large files into focused, cohesive modules."src/cleveragents/client/http_client.pyfeatures/steps/server_http_client_steps.pyRecommended fixes:
http_client.py(523 lines → target ~440): Extract the three module-level helpers andPageResultinto a companionhttp_helpers.py:_redact_headers()— 7 lines, self-contained utility_backoff_delay()— 4 lines, shared withws_client.py's_ws_backoff_delay(opportunity to deduplicate)PageResultdataclass — ~25 lines, a pure value typecreate_client_from_settings()factory — ~20 lines, separates settings coupling from the clientfeatures/steps/server_http_client_steps.py(514 lines → target ~430): Split the error-mapping and exception-attribute step definitions intoserver_http_client_error_steps.py. Steps for_backoff_delay/_redact_headershelper testing could similarly move to aserver_http_client_helper_steps.py.🚫 BLOCKER 3 — Unclean Commit History (2 Violations)
Per
CONTRIBUTING.md: "One logical change per commit. Never bundle [unrelated changes]. Clean up history before merging." and "Do not commit half-done work."3a. Fixup commit
8e9aa7afviolates atomic-commit ruleCommit
8e9aa7af fix(client): address server client chain review findingsmodifies 15 files across all 4 feature commits, squashing review-round feedback (promoting_request()→request(), WebSocketconnect()fix, thread safety, exception handling broadening). This is a textbook fixup commit — CONTRIBUTING.md explicitly forbids these in shared history.Action required: Interactive rebase to squash
8e9aa7afinto the 4 feature commits it corrects.3b. Unrelated commit
c9be72a9violates single-responsibility ruleCommit
c9be72a9 fix: rename cls to klass in _validate_protocol staticmethod for pyright compliancemodifiesstrategy_registry.py— completely unrelated to the server client chain. Per CONTRIBUTING.md: "Do not mix concerns. Never bundle cosmetic changes with functional changes." A Pyright compliance fix to the sandbox strategy registry has no business on this branch.Action required: Remove
c9be72a9from this branch via interactive rebase. Cherry-pick it into a dedicated one-line PR.🚫 BLOCKER 4 — Mock Helper Functions in
features/steps/Violate Placement RulesPer
CONTRIBUTING.md: "All mocks, test doubles, and mock implementations must exist only within test directories... Strict Separation: Test support code (mocks, fakes, stubs, fixtures) lives exclusively in test directories." and more specifically: "Mocking code belongs only infeatures/mocks/."All four step definition files define
_mock_response()helper functions inline at module scope:features/steps/server_http_client_steps.pylines 35–47:_mock_response()creates fakehttpx.Responseobjectsfeatures/steps/plan_sync_steps.py: similar inline mock factoryfeatures/steps/websocket_updates_steps.py: similar inline mock/stub factoriesfeatures/steps/remote_project_steps.py: similar inline mock factoryThese mock factories should be extracted to
features/mocks/(e.g.,features/mocks/http_mocks.py,features/mocks/ws_mocks.py) and imported from there. The existingfeatures/mocks/directory confirms this is the established convention in the project.Action required: Move all
_mock_response()and related mock factory functions fromfeatures/steps/*.pyinto appropriately named files underfeatures/mocks/.🚫 BLOCKER 5 — CHANGELOG Not Updated
Per
CONTRIBUTING.md: "The PR must include an update to the changelog file. Add one new entry per commit in the PR that describes the change from the user's perspective." and "Update ancillary files. Configuration, build scripts, changelogs, and other metadata affected by the change should be updated in the same commit."The PR introduces 4 feature commits (issues #335–#338) but no CHANGELOG file appears in the PR diff. The 34 changed files include docs, benchmarks, tests, and source — but no changelog update.
Action required: Add changelog entries for all four commits.
🚫 BLOCKER 6 —
ws_client.pyNot Listed in PR Files (Incomplete Diff)The PR files API lists 30 changed files;
src/cleveragents/client/ws_client.pyis absent from the diff, yet it exists on the branch (feature/m7-post-server) and was introduced by commit61dc421975 feat(client): add websocket updates(confirmed by inspecting that commit's file list). This is either a Forgejo diff rendering anomaly or the file was incorrectly attributed to a previous PR/branch state.If
ws_client.pycontains the WebSocket implementation (365 lines confirmed), it must appear in the PR diff for reviewers to audit it. The__init__.pyreferences no exports yet the module is live on the branch.Action required: Verify
ws_client.pyappears in the diff after rebase. If it's missing from the diff, ensure it's properly committed on the feature branch.⚠️ ARCHITECTURE OBSERVATION — REST Endpoints vs. A2A Protocol Mandate (Non-Blocking for M7)
The specification states explicitly: "A2A is the sole communication protocol for all client-server interaction" and "Every client operation flows through A2A regardless of deployment mode." The glossary entry for A2A reads: "The external Agent-to-Agent (A2A) Protocol standard... used as the sole communication protocol for all client-server interaction."
This PR implements REST-style endpoints throughout:
GET /health,POST /version/negotiate(http_client.py)POST /plans/execute,POST /plans/apply,GET /plans/{id}/status(sync_client.py)POST /{resource_type},PUT /{resource_type}/{id},GET /projects(sync_client.py, remote_project.py)The M7 milestone description acknowledges "Abstraction layers that prepare for TUI/Server may be included here", making this acceptable as transitional scaffolding. However, the
negotiate_version()method inhttp_client.pyreferencesA2aVersion.CURRENT— blending A2A protocol vocabulary with a REST transport. This creates a conceptual mismatch that could confuse future implementers.Recommendation (non-blocking): Add a module-level docstring note to
http_client.pyexplicitly marking this as a transitional REST transport layer pending full A2A JSON-RPC 2.0 implementation. File a follow-up issue tracking the A2A migration to prevent REST from calcifying as the permanent transport.✅ ARCHITECTURE DEEP DIVE — What Is Excellent
Given the review focus on architecture-alignment, specification-compliance, test-coverage-quality, I conducted a thorough independent analysis. The following properties are genuinely excellent and should be preserved:
Module Architecture ✅
exceptions.py: Clean, typed error hierarchy extendingCleverAgentsErrorwith structureddetailsdictshttp_client.py: Transport layer with single responsibility (HTTP + retry + logging)sync_client.py: Resource sync withConflictPolicy,SyncScope,SyncSummary— well-modeled domain objectsws_client.py: Real-time events withConnectionState,EventDeduplicator(LRU-boundedOrderedDict— elegant)remote_project.py: Project resolution with TTL cache and namespace fallbackDependency Direction ✅
All dependencies flow correctly inward:
client.X → a2a, core— never outward. No circular imports.Type Safety ✅
from __future__ import annotationsused consistently# type: ignoresuppressions (confirmed across all 5 modules)__slots__onPageResult,ConnectionState;@dataclass(slots=True)onSyncScope,SyncSummary,ExecutionResult,RemoteProjectFail-Fast Argument Validation ✅
All public methods with non-default arguments validate inputs immediately (e.g.,
execute_plan,apply_plan,get_plan_status,get_project,resolve_project,request_execution). Consistent with CONTRIBUTING.md.Exception Propagation ✅
Exceptions propagate naturally; no bare
except: passswallowing.health_check()is the only method that catches and returnsFalse, which is correct given its boolean contract.Test Coverage Structure ✅
.featurefiles infeatures/client/— correctly namespacedrobot/with dedicated helper librariesbenchmarks/docs/reference/Interesting Design Choices ✅
EventDeduplicatorwith LRU-boundedOrderedDict— efficient and elegant_redact_headers) in all log output — security-consciousConflictPolicy.LOCAL_WINS/SERVER_WINS— clear, composable policy pattern⚠️ INTERFACE CONTRACT CONCERNS (Non-Blocking)
Finding 1: Hidden Input Mutation in
_sync_item()(Maintainability Risk)Location:
sync_client.py,_sync_item()andsync()_sync_item()mutates the caller's dict in-place (item["server_id"] = new_server_id) and thensync()reads back this side effect (item.get("server_id", local_id)). The docstring for_sync_itemsays it returns'created'|'updated'|'skipped'but does not document the mutation. A future refactor that replaces the dict with a typed dataclass would silently breaksync().Recommended fix: Return the server_id as part of the return value — e.g.,
return ("created", new_server_id)— and eliminate the side effect.Finding 2:
WebSocketClientAuthentication Divergence (Configuration Drift Risk)WebSocketClienttakes independentws_urlandapi_tokenconstructor parameters rather than composing onServerHttpClientlikePlanSyncClientandRemoteProjectClientdo. If the server URL or auth token changes, both the HTTP client and WebSocket client must be updated separately with no enforcement that they stay in sync.Recommended fix: Have
WebSocketClientaccept aServerHttpClientin its constructor and derivews_urlfromhttp_client.base_url.replace("http", "ws") + "/ws". This aligns with the composition pattern used by all other client classes.Finding 3:
reconnect()State Mutations Outside Lockreconnect()modifiesself._state.reconnect_countandself._state.connectedwithout holdingself._lock, whileprocess_event()modifiesself._state.last_event_idunder the lock. Mixed locking discipline onConnectionStatecreates potential visibility hazards if these are called from different threads.Recommended fix: Either lock all
ConnectionStatemutations or document the threading contract onWebSocketClientexplicitly.CHECKLIST SUMMARY
mergeable: false— must rebasehttp_client.py523 lines,server_http_client_steps.py514 lines8e9aa7af, unrelated commitc9be72a9features/mocks/)_mock_response()inline in all 4 step files instead offeatures/mocks/ws_client.pyin PR diffCloses #N)Type/Featurelabel# type: ignoreCleverAgentsErrorwith structured detailsfeatures/client/docs/reference/for all 4 modules_sync_item, WS auth divergence, mixed lock disciplineDECISION: REQUEST CHANGES 🔄
The implementation quality is genuinely high — clean architecture, strong typing, excellent test structure, well-documented code, correct exception hierarchy. The design decisions in
EventDeduplicator, the retry/backoff system, and theSyncScope/ConflictPolicymodel demonstrate mature engineering judgment.However, 6 blockers must be resolved before this PR can merge:
masterto clear merge conflictshttp_client.pyandserver_http_client_steps.pyto ≤500 lines8e9aa7afinto its feature commits via interactive rebasec9be72a9from this branch_mock_response()factories from step files tofeatures/mocks/The 3 non-blocking interface contract concerns (mutation in
_sync_item, WS config drift, lock discipline) are recommended improvements but should not block merge.Automated by CleverAgents Bot
Supervisor: PR Review Pool | Agent: pr-reviewer
Formal Code Review: REQUEST CHANGES
Review focus: architecture-alignment, module-boundaries, interface-contracts
Files reviewed: All 34 files (5,359 lines) across 6 commits, linked issues #335–#338, specification, and CONTRIBUTING.md
Prior reviews examined: 5 prior review comments
🚫 Blocker 1: Merge Conflicts (Unresolved Since 2026-04-02)
The PR has
mergeable: false. This has been flagged in every review since April 2 and remains unresolved after 4 days. The branch must be rebased onto currentmasterbefore merge.Action required: Rebase
feature/m7-post-serverontomasterand force-push.🚫 Blocker 2: Two Files Exceed 500-Line Limit
Per CONTRIBUTING.md, all source files must be under 500 lines.
src/cleveragents/client/http_client.pyfeatures/steps/server_http_client_steps.pyRecommended fixes:
http_client.py: ExtractPageResult,_redact_headers(),_backoff_delay(), andcreate_client_from_settings()into a newhttp_helpers.pymodule.server_http_client_steps.py: Split error-mapping step definitions into a separateserver_http_client_error_steps.py.🚫 Blocker 3: Unclean Commit History
Per CONTRIBUTING.md: "Do not leave 'fixup' or 'WIP' commits in the branch history."
Current commits:
Two issues:
8e9aa7afis a fixup commit (136 insertions across 15 files) addressing review findings. Squash into the respective feature commits via interactive rebase.c9be72a9modifiesstrategy_registry.py— completely unrelated to the server client chain. Remove from this branch and submit as a separate PR.🚫 Blocker 4: Missing CHANGELOG.md and CONTRIBUTORS.md Updates
Per project rules, all PRs must update:
These files are not in the changed files list. This is a hard requirement per PR rules.
✅ Architecture Alignment (Excellent)
Focus area deep dive: The four-layer client chain demonstrates excellent architecture:
ServerHttpClient(base transport layer)PlanSyncClient(resource synchronization)ServerHttpClientvia constructor injectionsync(),execute(),apply(),status()WebSocketClient(real-time updates)ServerHttpClientfor initial handshakeOrderedDictRemoteProjectClient(project resolution)ServerHttpClientfor remote callsAssessment: The composition pattern is clean, testable, and follows dependency injection principles. Each module has a single, well-defined responsibility. No leaky abstractions.
✅ Module Boundaries (Well-Defined)
Focus area deep dive: The module boundaries are properly enforced:
No circular dependencies: Each client depends only on
ServerHttpClientand standard library/third-party packages. No cross-dependencies between sync/ws/project clients.Clear public interfaces: Each client exposes a minimal, focused API:
ServerHttpClient.request()— low-level HTTPPlanSyncClient.sync(),execute(),apply(),status()WebSocketClient.connect(),subscribe(),process_event()RemoteProjectClient.list_projects(),get_project(),execute()Proper encapsulation: Private methods (prefixed with
_) are not accessed across module boundaries. The initial review's concern about_request()access was properly fixed by promoting it to publicrequest().Exception hierarchy: All client-specific exceptions extend
CleverAgentsErrorwith structureddetailsdicts. No exception leakage across boundaries.Assessment: Module boundaries are clean and well-enforced. Each module can be tested, deployed, and evolved independently.
✅ Interface Contracts (Well-Designed)
Focus area deep dive: The interface contracts between modules are well-designed:
Constructor injection pattern: All clients accept
ServerHttpClientas a constructor parameter. This enables:Consistent error handling: All public methods raise the same exception hierarchy:
ServerConnectionError— network/connectivity issuesServerTimeoutError— request timeoutServerVersionMismatchError— protocol version mismatchResourceNotFoundError— resource not foundA2aNotAvailableError— server unavailablePydantic models for data contracts: All request/response data is validated via Pydantic:
PageResult— pagination contractSyncScope,SyncSummary— sync operation contractsExecutionResult— execution result contractRemoteProject— project data contractSettings integration: Server configuration is properly integrated via Pydantic
Settingswith environment variable support and validation aliases.Minor observations (non-blocking):
RemoteProjectClient._cacheis not thread-safe (acceptable for M7 scaffolding, but worth a comment)WebSocketClient.reconnect()modifies state outside lock (acceptable for scaffolding, but worth documenting)Assessment: Interface contracts are well-defined, type-safe, and properly validated. The use of Pydantic models ensures data integrity across module boundaries.
⚠️ Non-Blocking: REST vs A2A Protocol Alignment
The specification states the server's sole interface is A2A JSON-RPC 2.0 with no REST API. This PR implements REST-style endpoints. As M7 scaffolding this is acceptable, but consider adding a module-level docstring note that this transport layer will be replaced by A2A SDK integration.
✅ What's Excellent
# type: ignoreCleverAgentsErrorwith structured detailsDecision: REQUEST CHANGES 🔄
The code quality is excellent. The architecture is clean, module boundaries are well-defined, and interface contracts are properly designed. However, 4 blocking issues must be resolved before merge:
Once these are resolved, this PR is ready to merge.
Automated by CleverAgents Bot
Supervisor: PR Review Pool | Agent: pr-reviewer
Worker: [AUTO-REV-16]
Code Review: REQUEST CHANGES
Review focus: resource-management, memory-leaks, cleanup-patterns
Files reviewed: All 34 files (5,359 lines) across 6 commits, all 4 source modules decoded and inspected
Prior reviews examined: 7 prior review comments (all REQUEST CHANGES, blockers unresolved)
🚫 Previously Identified Blockers (Still Unresolved)
Three blockers have been flagged in every review since 2026-04-02 and remain unresolved:
Blocker A — Merge Conflicts:
mergeable: false. Rebasefeature/m7-post-serveronto currentmasterand force-push.Blocker B — Two Files Exceed 500-Line Limit:
src/cleveragents/client/http_client.py— 522 lines (22 over)features/steps/server_http_client_steps.py— 513 lines (13 over)Blocker C — Unclean Commit History:
8e9aa7af fix(client): address server client chain review findings— fixup commit, squash into the 4 feature commitsc9be72a9 fix: rename cls to klass in _validate_protocol— unrelated to server client chain; remove and submit as separate PR🚫 New Blocker (Resource Management Focus): Stateless
httpx.request()Makesclose()a No-Opsrc/cleveragents/client/http_client.py—request()methodThe
request()method calls the module-levelhttpx.request()function on every invocation. This has two resource-management consequences:No connection pooling:
httpx.request()creates a newhttpx.Clientinternally for every call, opens a new TCP connection, and immediately closes it. Under any meaningful load this exhausts ephemeral ports or file descriptors.close()is a misleading no-op:ServerHttpClient.close()logs"server_http_client_closed"but releases no actual resources. Callers who callclose()will believe resources have been released when they have not.Required fix: Replace the module-level call with a persistent
httpx.Clientinstance created in__init__and closed inclose():⚠️ Resource Management Observations (Non-Blocking)
1.
WebSocketClient.disconnect()does not clear callbacks — potential memory leakdisconnect()callsself._dedup.clear()but does NOT clearself._callbacks. If callbacks hold references to large objects (closures over plan state, UI components), those objects will not be released when the client disconnects. Addself._callbacks.clear()under lock todisconnect().2.
RemoteProjectClient._cachegrows unbounded for distinct namespacesThe
_cachedict uses TTL-based lazy eviction — expired entries are only removed when_get_cached()is called for that specific key. If many distinct namespaces are queried and never re-queried, stale entries accumulate indefinitely. Consider adding a max-size bound or a# NOTE: unbounded growth for distinct namespacescomment.3. No context manager support on any client class
None of the four client classes implement
__enter__/__exit__. Once the persistenthttpx.Clientfix is applied, adding context manager support is straightforward and is the idiomatic Python pattern for resource-owning objects.4.
WebSocketClient.reconnect()andhandle_heartbeat()mutate state outside_lockPreviously noted.
reconnect()modifiesself._state.reconnect_countandself._state.connected;handle_heartbeat()modifiesself._state.reconnect_count— all without holdingself._lock. Inconsistent locking creates visibility hazards. Acceptable for M7 scaffolding but should be documented.✅ What Is Well Done
# type: ignoreCleverAgentsErrorwith structureddetailstime.sleepdocumentedEventDeduplicator: LRU-boundedOrderedDictis elegant and efficientISSUES CLOSED:footersReview Checklist
httpx.request()→ persistent clientclose()is a no-op; no connection pooling# type: ignoredisconnect()clears callbacks_cachebounded growth__enter__/__exit__(non-blocking)Once the 4 blockers are resolved (rebase, file splits, commit history cleanup, persistent httpx.Client), this PR is ready to merge.
Automated by CleverAgents Bot
Supervisor: PR Review Pool | Agent: pr-reviewer
Code Review Decision: REQUEST CHANGES
Review focus: resource-management, memory-leaks, cleanup-patterns
4 Blockers Must Be Resolved Before Merge
Blocker A — Merge Conflicts (unresolved since 2026-04-02):
mergeable: false. Rebasefeature/m7-post-serveronto currentmasterand force-push.Blocker B — Two Files Exceed 500-Line Limit:
src/cleveragents/client/http_client.py— 522 lines (22 over)features/steps/server_http_client_steps.py— 513 lines (13 over)Blocker C — Unclean Commit History:
8e9aa7afis a fixup commit — squash into the 4 feature commitsc9be72a9modifiesstrategy_registry.py(unrelated) — remove and submit as separate PRBlocker D — NEW (Resource Management):
httpx.request()module-level function makesclose()a no-opServerHttpClient.request()callshttpx.request()(module-level) on every invocation. This:close()a misleading no-op — it logs"server_http_client_closed"but releases nothingFix: Create a persistent
httpx.Clientin__init__, useself._session.request(...)inrequest(), and closeself._sessioninclose().Non-Blocking Resource Management Observations
WebSocketClient.disconnect()does not clearself._callbacks— potential memory leak if callbacks hold references to large objects. Addself._callbacks.clear()(under lock) todisconnect().RemoteProjectClient._cachegrows unbounded for distinct namespaces — TTL eviction is lazy; stale entries accumulate if namespaces are never re-queried. Add a max-size bound or a comment.__enter__/__exit__on any client class — idiomatic Python for resource-owning objects.WebSocketClient.reconnect()andhandle_heartbeat()mutate state outside_lock— inconsistent locking; document with# NOTE: not thread-safe.Automated by CleverAgents Bot
Supervisor: PR Review Pool | Agent: pr-reviewer
[CONTROLLER-DEFER:Gate 1:linked_issue_closed]
This PR has been deferred for re-evaluation. The controller has stepped back
from processing it. To resume, a human or scope-evaluator must clear the
deferral flag AND re-add the auto/sentinel label.
Decision:
To clear the deferral (SQL):
UPDATE workflows SET deferred_reason=NULL,
deferred_at=NULL,
deferred_target_workflow_id=NULL
WHERE workflow_id = 25;
Audit ID: 3003
Automated by the CleverAgents controller pipeline.
Identity: HAL9000 (pipeline action)
View command line instructions
Manual merge helper
Use this merge commit message when completing the merge manually.
Checkout
From your project repository, check out a new branch and test the changes.