7b91b66b28
When users register actors via `agents actor add --config` using the
spec-compliant combined config.actor YAML format — either as a compact
string (config:\n actor: "<provider>/<model>") or as a nested dict
(config:\n actor:\n type: llm\n provider: aws) — the CLI crashed
with click.BadParameter: "Invalid value: 'provider' is required" because
the parser did not detect or flatten the nested structure.
Added:
- _detect_nested_config_actor() in schema.py to recognise both
compact-string and nested-dict forms of config-actor format.
- _flatten_config_actor() in schema.py to merge config["actor"]
fields into the dict top-level (removing the wrapper).
- Flattening logic in ActorConfiguration.from_blob() to handle both
string ("<provider>/<model>") and nested-dict forms of config.actor.
- CLI flattening step at the start of `agents actor add` command.
- New BDD scenarios for combined-format registration.
- Unit tests for detection, flattening, schema-v3 detection, and
full from_blob() flow.
ISSUES CLOSED: #11189
11 KiB
11 KiB
Contributors
- Aditya Chhabra aditya.chhabra@cleverthis.com
- Brent E. Edwards brent.edwards@cleverthis.com
- HAL 9000 hal9000@cleverthis.com
- Hamza Khyari hamza.khyari@cleverthis.com
- Jeffrey Phillips Freeman jeffrey.freeman@syncleus.com
- Jeffrey Phillips Freeman the@jeffreyfreeman.me
- Luis Mendes luis.p.mendes@gmail.com
- Rui Hu rui.hu@cleverthis.com
- HAL 9000 hal9000@cleverthis.com has contributed fix for #10813 — wiring DecisionService into PlanExecutor for strategy decision persistence during strategize.
Details
Below are some of the specific details of various contributions.
- Jeffrey Phillips Freeman has acted as Lead Developer, daily contributor, and Project Owner.
- Jeffrey Phillips Freeman has contributed the invariant merge precedence fix (#9126): restored the missing ACTION scope in
merge_invariants()andInvariantSet.merge(), corrected all module docstrings fromplan > project > globalto the spec-compliantplan > action > project > global, and added comprehensive BDD test coverage for four-tier merge precedence. - Brent E. Edwards has contributed quality assurance, test coverage, and CI pipeline improvements.
- HAL 9000 has contributed automated implementation, bug fixes, and feature development as part of the CleverAgents automation pool.
- HAL 9000 has contributed concurrency safety improvements, including thread-safe context tier management (issue #7547) for parallel plan execution.
- HAL 9000 has contributed the plan concurrency race-condition fix (#7989): wired
LockServiceinto the plan lifecycle, guardingexecute_plan()andapply_plan()with plan-level advisory locks and unique per-invocation owner identities to prevent silent concurrent state corruption. - HAL 9000 has contributed the bug-hunt-pool-supervisor non-blocking tracking fix (#7875 / PR #7957): updated step 5 to be best-effort and added rule 9 to prevent the automation-tracking-manager call from blocking the main supervisor loop.
- Jeffrey Phillips Freeman has contributed the complete AUTO-BUG-POOL to AUTO-BUG-SUP tracking prefix fix across agent-system-specification.md, automation-tracking.md documentation and agent-system-specification.md spec document, replaced with correct
AUTO-BUG-SUPprefix used by the bug-hunt-pool-supervisor agent (#7875). - HAL 9000 has contributed the plugin entry point security hardening fix (#7476): enforced entry point allowlist validation before importing plugin modules to prevent malicious plugin loading.
- HAL 9000 has contributed the benchmark workflow separation (#9040): moved the benchmark-regression job out of the default PR workflow into a dedicated scheduled workflow, reducing median PR CI turnaround time from 99-132 minutes to under 30 minutes.
- HAL 9000 has contributed the plan tree JSON/YAML command envelope fix (#9163): wrapped
agents plan tree --format json/yamloutput in the spec-required command envelope structure, added summary statistics, decision_ids mapping, child_plans list, and accurate timing measurement. - HAL 9000 contributed Structural Component Output Validation (PR #11161 / issue #8164): implemented
validate_plan_tree,validate_decision_dict,validate_structured_output, andvalidate_structured_component_outputvalidators that replace exact-character matching with structural schema checking for plan tree nodes, decision CLI dictionaries, and structured session output envelopes. - HAMZA KHYARI has contributed the ACMS execute-phase context assembler project-level hot_max_tokens fix (PR #11036 / issue #11035): added
_resolve_effective_budget()method that reads each linked project'ssettings.hot_max_tokensand uses the maximum override value as the pipeline budget instead of the hardcoded global 16K default. - This project was made possible thanks to considerable donation of time, money, and resources by CleverThis, Inc.
- HAL 9000 has contributed automated bug fixes, CLI output formatting improvements, and ongoing maintenance as part of the CleverAgents automation system.
- HAL 9000 has contributed the file edit encoding parameter fix (PR #8258 / issue #7559).
- HAL 9000 has contributed the architecture-pool-supervisor milestone assignment feature (PR #8188 / issue #7521): added
forgejo_update_pull_requestpermission and documented the PR workflow for major spec changes, enabling automatic milestone assignment for specification PRs. - HAL 9000 has contributed the git worktree TOCTOU race condition fix (PR #8178 / issue #7507): replaced the unsafe mkdtemp() + rmdir() pattern with a parent-directory approach to eliminate the race window in concurrent git worktree operations.
- HAL 9000 has contributed the git_tools TOCTOU race condition fix (PR #8255 / issue #7619): eliminated the Time-Of-Check-To-Time-Of-Use race in
_get_base_env()by adding double-checked locking with a module-levelthreading.Lock, preventing concurrent threads from writing conflicting environment snapshots. - HAL 9000 has contributed the mandatory PR compliance checklist to
implementation-supervisor.md(#9824): added an 8-item checklist to the worker prompt body with concrete items covering CHANGELOG.md, CONTRIBUTORS.md, commit footer, CI verification, BDD tests, Epic reference, labels, and milestone assignment to eliminate systemic PR merge blockers. - HAL 9000 has contributed the PlanResult.success derivation fix (PR #8214 / issue #7501): replaced the incorrect
error_message is Noneheuristic with a dedicatedresult_successcolumn in the plans table, ensuring plans with historical build errors are not incorrectly marked as failed after a successful apply. - HAL 9000 has contributed the mandatory PR compliance checklist to
implementation-pool-supervisor.md(#9824): created a new agent definition with an embedded 8-item checklist ensuring workers always update CHANGELOG.md, CONTRIBUTORS.md, include commit footers (ISSUES CLOSED: #N), verify CI passes, add BDD tests, reference the parent Epic, apply labels via forgejo-label-manager, and assign milestones before creating PRs. Includes concrete examples for each subsection and compliance verification pseudocode. - HAL 9000 has contributed comprehensive milestone documentation for v3.6.0 (Advanced Concepts & Deferred Features) and v3.7.0 (TUI Implementation) (PR #9903): split into sub-documents covering context strategies, LLM backends, resource types, A2A rename, container tool execution, scope chain resolution, cost/safety budgets, E2E workflow tests, code review examples, plugin architecture, TUI layout, persona system, reference/command input, session management, configuration, and TuiMaterializer integration.
- HAL 9000 has contributed the LLMTraceRepository data-integrity fix (PR #8185 / issue #7505): replaced the unconditional
session.commit()inLLMTraceRepository.save()with a dual-path implementation that respects the UnitOfWork pattern — flushing only when an external session is provided, and flushing + committing + closing when operating standalone. This eliminates premature transaction commits, loss of rollback capability, and a docstring/implementation mismatch. - HAL 9000 has contributed the ACMS Index Data Model and File Traversal Engine (PR #9664 / issue #9579): foundational data structures for indexed context entries with hot/warm/cold/archive storage tier classification, tag system, and a timeout-safe chunked file traversal engine for large projects with 10,000+ files.
- HAL 9000 has contributed the error-suppression removal fix (PR #9247 / issue #9060): removed both
try...except Exception:blocks inregister_registry_agents()that silently suppressed errors fromactor_registry.list_actors()and the route bridge refresh, enabling exceptions to propagate per CONTRIBUTING.md fail-fast policy. Added three Behave scenarios verifying RuntimeError, AttributeError, and TypeError propagation. - HAL 9000 has contributed the Strategize phase full context snapshot fix (issue #9056): added
_build_strategize_context_snapshot()helper toPlanLifecycleService, updated_try_record_decision()to accept and forward aContextSnapshotparameter, and added BDD test coverage verifying all fourContextSnapshotfields (hot_context_hash,hot_context_ref,actor_state_ref,relevant_resources) are populated during the Strategize phase. - HAL 9000 has contributed the ACMS context path matching fix (PR #10975 / issue #10972): corrects
_path_matches()and_matches_pattern()to properly match absolute fragment paths against relative glob patterns by auto-prefixing with**/before callingPurePath.full_match(), preventing silent inefficacy of include/exclude filters for absolute paths in fragment metadata. - HAL 9000 has contributed database resource types (PostgreSQL, SQLite) with transaction-based sandbox strategy: implemented
DatabaseResourceHandlerproviding full CRUD operations (read,write,delete,list_children) and connection validation with automatic credential masking for PostgreSQL and SQLite backends. IncludesTransactionSandboxinfrastructure wired intoSandboxFactory, BDD test coverage infeatures/database_resources.feature, and Robot Framework integration tests inrobot/database_resources.robot(PR #10591 / issue #8608, Epic #8568). - HAL 9000 has contributed the agents plan rollback command (PR #8674 / issue #8557): implemented checkpoint-based plan state restoration with the
agents plan rollback <plan-id> [<checkpoint-id>]CLI command as part of Epic #8493, enabling plans to be restored to previous checkpoints, discarding post-checkpoint decisions, and resuming execution from the rolled-back state. Supported by--yes/-y,--to-checkpoint, and--format/-fflags. Includes comprehensive BDD test coverage (>= 97%) for rollback, decision discarding, and plan resume functionality. - HAL 9000 has contributed the PyYAML security upgrade (PR #11012 / issue #9055): added
pyyaml>=6.0.3dependency constraint to address known YAML parsing vulnerabilities. - HAL 9000 has contributed the DecisionService wiring for PlanExecutor strategize persistence fix (#10813): added decision_service to the PlanExecutor constructor and wired it from the CLI dependency-injection container in
_get_plan_executor(), plus implemented_persist_strategy_decisions()to persist strategy decisions as domainDecisionobjects. - HAL 9000 has contributed the A2A module rename standardization BDD tests (PR #10583 / issue #8615): comprehensive Behave test suite validating that all 22 A2A symbols are properly exported from
cleveragents.a2a, no legacy ACP references remain in the module source, and documentation uses correct A2A naming conventions — fixing inline imports, unused behave symbols, cross-scenario context dependencies, and missing type annotations. - HAL 9000 has contributed the
ActorSelectionOverlay._render→_refresh_displayrename fix (PR #11176 / issue #11039, Epic #8174): renamed_render()method to_refresh_display()to avoid shadowing Textual'sWidget._render(), fixing a crash in textual >=1.0 whereget_content_height()would receiveNoneand raiseAttributeError: 'NoneType' object has no attribute 'get_height'. - HAL 9000 has contributed the config-actor combined-format support fix (PR #11232 / issue #11189): added
_detect_nested_config_actor(),_flatten_config_actor(), and handling inActorConfiguration.from_blob()to transparently flatten the nestedconfig.actorblock from both compact-string and nested-dict forms so v3 detection, schema validation, and canonicalisation see flat data — eliminating the"provider is required"crash.