Commit Graph

44 Commits

Author SHA1 Message Date
HAL9000 05acc26c40 chore(deps): upgrade PyYAML to address known security vulnerability
- Added `pyyaml>=6.0.3` dependency constraint to pyproject.toml after
  aiohttp to prevent installation of vulnerable older versions with known
  YAML parsing security issues.
- Updated uv.lock package dependencies and requires-dist to include pyyaml
  entry with specifier '>=6.0.3'.
- Added changelog Security section entry under [Unreleased] documenting the
  upgrade for issue #9055.
- Updated CONTRIBUTORS.md with contribution note (PR #9244).
- Added BDD test scenario verifying PyYAML security dependency constraint.

ISSUES CLOSED: #9055
2026-05-11 08:59:08 +00:00
HAL9000 a1ea40d2e7 feat(plans): implement agents plan rollback command for checkpoint-based rollback
CI / benchmark-regression (push) Has been skipped
CI / helm (push) Successful in 39s
CI / build (push) Successful in 1m9s
CI / lint (push) Successful in 1m23s
CI / push-validation (push) Successful in 33s
CI / quality (push) Successful in 1m50s
CI / typecheck (push) Successful in 2m1s
CI / security (push) Successful in 2m2s
CI / integration_tests (push) Successful in 4m16s
CI / unit_tests (push) Successful in 5m3s
CI / e2e_tests (push) Failing after 5m7s
CI / docker (push) Successful in 1m44s
CI / coverage (push) Successful in 12m36s
CI / status-check (push) Failing after 3s
CI / benchmark-publish (push) Successful in 1h20m13s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Failing after 1m27s
CI / docker (pull_request) Successful in 1m32s
CI / push-validation (pull_request) Successful in 36s
CI / typecheck (pull_request) Successful in 1m35s
CI / e2e_tests (pull_request) Successful in 4m35s
CI / helm (pull_request) Successful in 38s
CI / lint (pull_request) Successful in 1m9s
CI / build (pull_request) Successful in 1m3s
CI / quality (pull_request) Successful in 1m34s
CI / security (pull_request) Successful in 1m55s
CI / integration_tests (pull_request) Successful in 4m19s
CI / unit_tests (pull_request) Successful in 4m54s
CI / coverage (pull_request) Successful in 11m6s
CI / status-check (pull_request) Successful in 4s
Documents the agents plan rollback command (CLI entry at src/cleveragents/cli/commands/plan.py) that was integrated into master under Epic #8493. The command provides checkpoint-based plan state restoration, allowing plans to be restored to a previous checkpoint and resuming execution from that point. CHANGELOG.md entry added under [Unreleased] > ### Added section; CONTRIBUTORS.md updated with HAL 9000's contribution for this checkpoint-based rollback feature.

ISSUES CLOSED: #8557

Epic: #8493
2026-05-11 06:54:32 +00:00
HAL9000 6e1646d565 fix(plan): wrap plan tree JSON/YAML output in spec-required command envelope.\n\nISSUES CLOSED: #9163
# Conflicts:
#	CONTRIBUTORS.md
2026-05-09 12:23:24 +00:00
HAL9000 3f0ce3d20a feat(resources): add CHANGELOG and CONTRIBUTORS entries for PR #10591
- Add CHANGELOG.md entry under [Unreleased] / Database resource types
  (PostgreSQL, SQLite) with transaction-based sandbox strategy
  (issues #8608, Epic #8568)
- Update CONTRIBUTORS.md with HAL 9000 contribution note for database
  resource types implementation

ISSUES CLOSED: #8608
2026-05-09 10:01:20 +00:00
HAL9000 2cba7d41bc chore(agents): fix bug-hunt-pool-supervisor tracking prefix AUTO-BUG-POOL to AUTO-BUG-SUP (complete fix)
CI / coverage (push) Blocked by required conditions
CI / docker (push) Blocked by required conditions
CI / status-check (push) Blocked by required conditions
CI / benchmark-regression (push) Has been skipped
CI / helm (push) Successful in 48s
CI / push-validation (push) Successful in 35s
CI / build (push) Successful in 1m4s
CI / lint (push) Successful in 1m18s
CI / quality (push) Successful in 1m22s
CI / typecheck (push) Successful in 1m46s
CI / e2e_tests (push) Successful in 4m42s
CI / integration_tests (push) Successful in 7m51s
CI / unit_tests (push) Successful in 12m20s
CI / security (push) Failing after 13m26s
CI / benchmark-publish (push) Successful in 1h31m13s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Failing after 1m27s
CI / status-check (pull_request) Successful in 3s
CI / integration_tests (pull_request) Successful in 4m32s
CI / unit_tests (pull_request) Successful in 9m46s
CI / helm (pull_request) Successful in 54s
CI / build (pull_request) Successful in 1m4s
CI / push-validation (pull_request) Successful in 22s
CI / docker (pull_request) Successful in 1m48s
CI / lint (pull_request) Successful in 1m10s
CI / quality (pull_request) Successful in 1m27s
CI / typecheck (pull_request) Successful in 1m42s
CI / e2e_tests (pull_request) Successful in 5m24s
CI / security (pull_request) Successful in 2m10s
CI / coverage (pull_request) Successful in 12m19s
Replace all remaining AUTO-BUG-POOL references with correct AUTO-BUG-SUP in agent-system-specification.md, automation-tracking.md documentation and agent-system-specification.md spec document, replaced with correct `AUTO-BUG-SUP` prefix used by the bug-hunt-pool-supervisor agent (#7875).

ISSUES CLOSED: #7875
2026-05-09 00:05:17 +00:00
HAL9000 57881a075b docs(spec): update specification — validation gate blocks on empty validation summary
CI / helm (push) Successful in 33s
CI / build (push) Successful in 1m2s
CI / lint (push) Successful in 1m12s
CI / quality (push) Successful in 1m18s
CI / typecheck (push) Successful in 1m38s
CI / security (push) Successful in 1m42s
CI / push-validation (push) Successful in 20s
CI / e2e_tests (push) Successful in 4m14s
CI / integration_tests (push) Successful in 4m50s
CI / unit_tests (push) Successful in 6m1s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 10m48s
CI / status-check (push) Successful in 3s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (pull_request) Has been skipped
CI / helm (pull_request) Successful in 39s
CI / push-validation (pull_request) Successful in 37s
CI / build (pull_request) Successful in 59s
CI / lint (pull_request) Successful in 1m14s
CI / typecheck (pull_request) Successful in 1m26s
CI / quality (pull_request) Successful in 1m34s
CI / security (pull_request) Successful in 1m43s
CI / benchmark-regression (pull_request) Failing after 1m7s
CI / integration_tests (pull_request) Successful in 3m36s
CI / unit_tests (pull_request) Successful in 4m44s
CI / e2e_tests (pull_request) Successful in 5m19s
CI / docker (pull_request) Successful in 1m30s
CI / coverage (pull_request) Successful in 11m8s
CI / status-check (pull_request) Successful in 3s
CI / benchmark-publish (push) Successful in 1h17m43s
2026-05-08 19:14:24 +00:00
HAL9000 fbe6308200 feat(agents): add mandatory PR compliance checklist to implementation-pool-supervisor
Add a new implementation-pool-supervisor agent definition with an embedded
8-item PR Compliance Checklist. Workers dispatched by the pool supervisor
must complete all 8 items before creating any PR: CHANGELOG.md update,
CONTRIBUTORS.md update, commit footer (ISSUES CLOSED: #N), CI verification,
BDD tests, Epic reference, label application via forgejo-label-manager,
and milestone assignment. Includes concrete markdown examples for each
subsection and compliance verification pseudocode.

Also adds BDD test coverage (pr_compliance_pool_supervisor.feature + steps)
to verify the pool supervisor agent definition contains all 8 checklist items.

Parent Epic: #9779

ISSUES CLOSED: #9824
2026-05-08 18:50:33 +00:00
HAL9000 a15b77f6a6 fix(acms): normalize context path matching for absolute paths in _path_matches
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 50s
CI / helm (pull_request) Successful in 55s
CI / build (pull_request) Successful in 1m34s
CI / lint (pull_request) Successful in 1m55s
CI / typecheck (pull_request) Successful in 2m33s
CI / quality (pull_request) Successful in 2m35s
CI / benchmark-regression (pull_request) Failing after 2m38s
CI / security (pull_request) Successful in 2m50s
CI / integration_tests (pull_request) Successful in 5m21s
CI / e2e_tests (pull_request) Successful in 5m29s
CI / unit_tests (pull_request) Successful in 7m30s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 11m41s
CI / docker (push) Blocked by required conditions
CI / status-check (push) Blocked by required conditions
CI / coverage (push) Blocked by required conditions
CI / benchmark-publish (push) Waiting to run
CI / benchmark-regression (push) Waiting to run
CI / unit_tests (push) Has started running
CI / integration_tests (push) Has started running
CI / e2e_tests (push) Has started running
CI / status-check (pull_request) Successful in 4s
CI / build (push) Successful in 1m2s
CI / lint (push) Successful in 1m10s
CI / push-validation (push) Successful in 33s
CI / helm (push) Successful in 44s
CI / quality (push) Successful in 1m30s
CI / security (push) Successful in 1m39s
CI / typecheck (push) Successful in 1m42s
Fixes issue #10972 where _path_matches() used PurePath.full_match()/match()
which requires the entire path to match. Since fragment metadata stores
absolute paths (e.g. /app/.opencode/skills/SKILL.md) while project context
--exclude-path/--include-path settings produce relative globs (.opencode/*,
docs/*), include/exclude filters were silently ineffective.

Added _matches_any() static helper in execute_phase_context_assembler.py that:
- Tries full_match(pattern) as-is for relative paths and anchored patterns
- Auto-prefixes relative patterns with **/ so they match absolute paths
Updated _matches_pattern() in context_phase_analysis.py with same logic plus
zero-depth compatibility shim.

Added 7 new BDD regression scenarios with @tdd_issue tags:
- 5 in execute_phase_context_assembler_coverage.feature (absolute path matching)
- 1 extra trailing ** glob exclusion test
- 1 in project_context_phase_analysis.feature (phase analysis exclusion)

ISSUES CLOSED: #10972
2026-05-08 09:57:18 +00:00
HAL9000 e7fb7168b4 feat(decisions): implement decision recording hook in Strategize phase
Implement the StrategizeDecisionHook class for recording decisions during
the Strategize phase. The hook captures every decision point with question,
chosen_option, alternatives_considered, confidence_score, rationale, and
full context_snapshot (hot_context_hash, actor_state_ref, relevant_resources).

Supports four decision types: strategy_choice, resource_selection,
subplan_spawn, and invariant_enforced. Includes a DecisionRecorder protocol
port for decoupled persistence and capture_context_snapshot utility function.

Comprehensive BDD test suite with 40+ scenarios covering all decision types,
context snapshot validation, error handling, and tree structure tracking.

ISSUES CLOSED: #8522
2026-05-08 06:24:23 +00:00
HAL9000 8ed8c25652 fix(plan-lifecycle): record full context snapshots in Strategize phase
The Strategize phase was recording decisions with minimal context
snapshots (only a hash of question+chosen_option), violating the
v3.2.0 acceptance criterion that decisions must include full context
snapshots sufficient to replay the decision.

Changes:
- Add _build_strategize_context_snapshot() helper that builds a full
  ContextSnapshot from plan metadata (description, action_name,
  strategy_actor, project_links)
- Update _try_record_decision() to accept an optional context_snapshot
  parameter and forward it to DecisionService
- Update start_strategize() to build and pass a full context snapshot
- Add 3 BDD scenarios in decision_recording.feature verifying that
  hot_context_hash, hot_context_ref, actor_state_ref, and
  relevant_resources are all populated for Strategize-phase decisions

ISSUES CLOSED: #9056
2026-05-08 05:11:47 +00:00
HAL9000 94dd77fbcd fix(application): Complete PR #9247 compliance — add CHANGELOG and CONTRIBUTORS entries
CI / benchmark-regression (push) Has been skipped
CI / helm (push) Successful in 1m0s
CI / push-validation (push) Successful in 1m5s
CI / typecheck (push) Successful in 2m14s
CI / quality (push) Successful in 2m14s
CI / security (push) Successful in 2m18s
CI / lint (push) Successful in 1m51s
CI / integration_tests (push) Successful in 4m27s
CI / unit_tests (push) Successful in 5m49s
CI / docker (push) Successful in 1m40s
CI / coverage (push) Successful in 13m42s
CI / build (push) Successful in 29s
CI / e2e_tests (push) Successful in 3m22s
CI / status-check (push) Successful in 3s
CI / benchmark-publish (push) Successful in 1h17m45s
CI / benchmark-publish (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 4m24s
CI / push-validation (pull_request) Successful in 35s
CI / helm (pull_request) Successful in 37s
CI / build (pull_request) Successful in 1m5s
CI / lint (pull_request) Successful in 1m22s
CI / quality (pull_request) Successful in 1m42s
CI / security (pull_request) Successful in 1m43s
CI / typecheck (pull_request) Successful in 1m50s
CI / integration_tests (pull_request) Successful in 4m37s
CI / unit_tests (pull_request) Successful in 4m58s
CI / docker (pull_request) Successful in 1m28s
CI / benchmark-regression (pull_request) Failing after 35s
CI / coverage (pull_request) Successful in 10m46s
CI / status-check (pull_request) Successful in 5s
- Add CHANGELOG.md entry under [Unreleased] Fixed section for error suppression removal (issue #9060)
- Update CONTRIBUTORS.md with HAL 9000 contribution note for this fix
- Branch: bugfix/m-error-suppression-reactive-registry-adapter-v2

ISSUES CLOSED: #9060
2026-05-07 14:51:35 +00:00
HAL9000 2778bde95a fix(repositories): derive PlanResult.success from result_success column instead of error_message
CI / benchmark-publish (pull_request) Has been skipped
CI / helm (pull_request) Successful in 40s
CI / build (pull_request) Successful in 58s
CI / lint (pull_request) Successful in 1m3s
CI / typecheck (pull_request) Successful in 1m25s
CI / quality (pull_request) Successful in 1m26s
CI / security (pull_request) Successful in 1m35s
CI / benchmark-regression (pull_request) Failing after 51s
CI / push-validation (pull_request) Successful in 20s
CI / integration_tests (pull_request) Successful in 3m30s
CI / e2e_tests (pull_request) Successful in 4m13s
CI / unit_tests (pull_request) Successful in 7m2s
CI / docker (pull_request) Successful in 1m48s
CI / coverage (pull_request) Successful in 11m25s
CI / status-check (push) Blocked by required conditions
CI / benchmark-publish (push) Has started running
CI / status-check (pull_request) Successful in 3s
CI / benchmark-regression (push) Has been skipped
CI / helm (push) Successful in 44s
CI / push-validation (push) Successful in 55s
CI / build (push) Successful in 1m35s
CI / quality (push) Successful in 1m57s
CI / lint (push) Successful in 2m9s
CI / typecheck (push) Successful in 2m28s
CI / security (push) Successful in 2m34s
CI / integration_tests (push) Successful in 5m33s
CI / unit_tests (push) Successful in 6m7s
CI / e2e_tests (push) Successful in 6m41s
CI / coverage (push) Has started running
CI / docker (push) Successful in 1m33s
ISSUES CLOSED: #7501
2026-05-07 14:22:57 +00:00
HAL9000 741186cbfb docs: add ACMS Index Data Model contribution to CONTRIBUTORS.md
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Has been cancelled
CI / typecheck (push) Successful in 1m54s
CI / security (push) Successful in 2m2s
CI / helm (push) Successful in 59s
CI / build (push) Successful in 1m33s
CI / push-validation (push) Successful in 1m11s
CI / lint (push) Successful in 2m6s
CI / quality (push) Successful in 2m34s
CI / e2e_tests (push) Successful in 5m13s
CI / integration_tests (push) Failing after 5m30s
CI / unit_tests (push) Failing after 5m38s
CI / coverage (push) Has been skipped
CI / docker (push) Has been skipped
CI / status-check (push) Failing after 3s
2026-05-05 17:48:37 +00:00
HAL9000 63241f1859 fix(agents): add mandatory PR compliance checklist to implementation-supervisor
Workers were systematically omitting CHANGELOG.md, CONTRIBUTORS.md, and
commit footer (ISSUES CLOSED: #N), causing all PRs to be blocked from merge.

Added a mandatory 8-item PR Compliance Checklist to the worker prompt body
in implementation-supervisor.md that supervisors must pass to every worker.
The checklist covers:
1. CHANGELOG.md update under [Unreleased]
2. CONTRIBUTORS.md update
3. Commit footer with ISSUES CLOSED: #N
4. CI verification (all quality gates green)
5. BDD/Behave test coverage
6. Epic reference in PR description
7. Labels applied via forgejo-label-manager
8. Milestone assignment

Also removed @tdd_expected_fail tag from PlanContextInheritance test in
depth_breadth_projection.feature (bug #4198 is fixed).

Added BDD tests in features/pr_compliance_checklist.feature with 10 scenarios
covering all 8 checklist items.

ISSUES CLOSED: #9824
2026-05-05 17:18:16 +00:00
HAL9000 876a2c6916 fix(data-integrity): Replace unconditional commit with flush in LLMTraceRepository.save()
CI / benchmark-publish (push) Has started running
CI / lint (push) Successful in 55s
CI / quality (push) Successful in 1m6s
CI / typecheck (push) Successful in 1m27s
CI / helm (push) Successful in 31s
CI / push-validation (push) Successful in 32s
CI / security (push) Successful in 1m55s
CI / build (push) Successful in 49s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 3m35s
CI / e2e_tests (push) Successful in 3m43s
CI / unit_tests (push) Successful in 4m34s
CI / docker (push) Successful in 1m28s
CI / coverage (push) Successful in 10m37s
CI / status-check (push) Successful in 3s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Failing after 1m36s
CI / coverage (pull_request) Successful in 11m39s
CI / helm (pull_request) Successful in 45s
CI / lint (pull_request) Successful in 1m59s
CI / quality (pull_request) Successful in 2m10s
CI / typecheck (pull_request) Successful in 2m19s
CI / security (pull_request) Successful in 2m24s
CI / e2e_tests (pull_request) Successful in 4m56s
CI / integration_tests (pull_request) Successful in 5m15s
CI / unit_tests (pull_request) Successful in 6m56s
CI / docker (pull_request) Successful in 1m35s
CI / build (pull_request) Successful in 1m18s
CI / push-validation (pull_request) Successful in 42s
CI / status-check (pull_request) Successful in 3s
Implement dual-path session management in LLMTraceRepository.save():
- UoW mode (explicit session provided): flush only, caller controls commit
- Standalone mode (no session): flush + commit + close for durable persistence

This resolves three data-integrity violations:
1. Premature commit of outer UoW transactions
2. Loss of rollback capability for subsequent failures
3. Mismatch between class docstring and implementation

Also adds:
- Input validation: trace must not be None
- Updated BDD step definitions to pass session explicitly in UoW scenarios
- close() method to _BrokenSession mock for proper cleanup path coverage
- CHANGELOG.md entry for issue #7505
- CONTRIBUTORS.md credit for HAL 9000

ISSUES CLOSED: #7505
2026-05-05 09:57:46 +00:00
HAL9000 39175dd284 fix(git_tools): eliminate TOCTOU race in _get_base_env() with double-checked locking
CI / benchmark-publish (push) Has started running
CI / push-validation (push) Successful in 43s
CI / helm (push) Successful in 44s
CI / build (push) Successful in 1m22s
CI / benchmark-regression (push) Has been skipped
CI / lint (push) Successful in 1m49s
CI / quality (push) Successful in 2m2s
CI / typecheck (push) Successful in 2m5s
CI / security (push) Successful in 2m26s
CI / integration_tests (push) Successful in 5m1s
CI / e2e_tests (push) Successful in 6m11s
CI / unit_tests (push) Successful in 11m38s
CI / docker (push) Successful in 2m20s
CI / coverage (push) Successful in 16m24s
CI / status-check (push) Successful in 4s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Failing after 1m8s
CI / coverage (pull_request) Successful in 12m53s
CI / unit_tests (pull_request) Successful in 8m11s
CI / quality (pull_request) Successful in 1m35s
CI / e2e_tests (pull_request) Successful in 4m58s
CI / helm (pull_request) Successful in 40s
CI / push-validation (pull_request) Successful in 21s
CI / build (pull_request) Successful in 1m4s
CI / lint (pull_request) Successful in 1m10s
CI / typecheck (pull_request) Successful in 1m35s
CI / security (pull_request) Successful in 2m19s
CI / integration_tests (pull_request) Successful in 4m12s
CI / docker (pull_request) Successful in 2m15s
CI / status-check (pull_request) Successful in 3s
Add module-level _BASE_ENV_LOCK: threading.Lock and replace the bare
if _BASE_ENV is None assignment with double-checked locking. The outer
check keeps the warm-cache path lock-free; the inner check inside
with _BASE_ENV_LOCK prevents duplicate initialisation when two threads
race on the very first call.

Add three BDD scenarios in features/git_tools.feature (step definitions
in features/steps/git_tools_thread_safety_steps.py) verifying caching
identity, content correctness, and thread safety under 20 concurrent
threads using threading.Barrier.

Update CHANGELOG.md and CONTRIBUTORS.md per contribution guidelines.

ISSUES CLOSED: #7619
2026-05-05 05:25:28 +00:00
HAL9000 dde71cf8e2 docs(milestone): split advanced-concepts and tui docs into sub-documents
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 1m12s
CI / quality (pull_request) Successful in 1m24s
CI / push-validation (pull_request) Successful in 33s
CI / helm (pull_request) Successful in 34s
CI / typecheck (pull_request) Successful in 1m33s
CI / build (pull_request) Successful in 1m13s
CI / benchmark-regression (pull_request) Failing after 37s
CI / security (pull_request) Successful in 2m25s
CI / e2e_tests (pull_request) Successful in 4m31s
CI / unit_tests (pull_request) Successful in 6m25s
CI / integration_tests (pull_request) Successful in 6m24s
CI / docker (pull_request) Successful in 1m36s
CI / coverage (pull_request) Successful in 13m7s
CI / coverage (push) Blocked by required conditions
CI / docker (push) Blocked by required conditions
CI / status-check (push) Blocked by required conditions
CI / benchmark-publish (push) Waiting to run
CI / benchmark-regression (push) Waiting to run
CI / status-check (pull_request) Successful in 5s
CI / push-validation (push) Successful in 31s
CI / quality (push) Successful in 1m22s
CI / lint (push) Successful in 1m28s
CI / helm (push) Successful in 43s
CI / build (push) Successful in 1m0s
CI / security (push) Successful in 1m41s
CI / typecheck (push) Successful in 2m5s
CI / e2e_tests (push) Successful in 4m13s
CI / integration_tests (push) Successful in 4m37s
CI / unit_tests (push) Has been cancelled
Split docs/advanced-concepts.md (554 lines) into four sub-documents under
docs/advanced-concepts/ and docs/tui.md (634 lines) into four sub-documents
under docs/tui/, each under the 500-line limit per CONTRIBUTING.md.

Advanced Concepts sub-documents:
- docs/advanced-concepts/index.md: Overview, context strategies, LLM backends
- docs/advanced-concepts/resource-types.md: Resource types, A2A rename
- docs/advanced-concepts/container-tools.md: Container tools, scope chain, budgets, safety
- docs/advanced-concepts/e2e-tests-and-plugins.md: E2E tests, code review, plugins

TUI sub-documents:
- docs/tui/index.md: Overview, getting started, main screen layout
- docs/tui/sidebar-and-personas.md: Sidebar states, persona system
- docs/tui/input-and-sessions.md: Reference/command input, session management
- docs/tui/configuration-and-integration.md: Config, key bindings, theme, integration

Updated mkdocs.yml navigation to reflect new sub-document structure.
Updated CONTRIBUTORS.md with contribution entry for PR #9903.

ISSUES CLOSED: #10533
2026-05-03 01:11:03 +00:00
HAL9000 60edcba1f2 docs(contributors): restore missing entries and add #7888 contribution detail 2026-05-03 00:17:15 +00:00
HAL9000 ecf9710369 docs(changelog): add TOCTOU race condition fix entry and contributor credit
CI / benchmark-publish (push) Failing after 38s
CI / lint (push) Successful in 45s
CI / helm (push) Successful in 29s
CI / build (push) Successful in 37s
CI / quality (push) Successful in 1m8s
CI / security (push) Successful in 1m25s
CI / typecheck (push) Successful in 1m39s
CI / push-validation (push) Successful in 35s
CI / integration_tests (push) Successful in 3m46s
CI / e2e_tests (push) Failing after 14m28s
CI / unit_tests (push) Failing after 14m42s
CI / coverage (push) Successful in 13m24s
CI / docker (push) Has been skipped
CI / benchmark-publish (pull_request) Has been skipped
CI / status-check (push) Failing after 3s
CI / docker (pull_request) Successful in 1m23s
CI / build (pull_request) Successful in 52s
CI / unit_tests (pull_request) Successful in 6m36s
CI / e2e_tests (pull_request) Successful in 3m38s
CI / push-validation (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 1m2s
CI / lint (pull_request) Successful in 42s
CI / helm (pull_request) Successful in 34s
CI / typecheck (pull_request) Successful in 1m17s
CI / security (pull_request) Successful in 1m24s
CI / integration_tests (pull_request) Successful in 3m34s
CI / coverage (pull_request) Successful in 10m32s
CI / status-check (pull_request) Successful in 3s
Updated CHANGELOG.md with comprehensive entry for the git worktree TOCTOU race
condition fix (issue #7507). Added contributor credit to CONTRIBUTORS.md for
HAL 9000's work on this fix.

ISSUES CLOSED: #8178
2026-04-28 04:06:57 +00:00
HAL9000 5a45db3e41 docs(contributors): remove duplicate entry and sync with master 2026-04-28 04:06:57 +00:00
HAL9000 6bab6c3055 fix(sandbox): TOCTOU race condition in git_worktree.py 2026-04-28 04:06:57 +00:00
HAL9000 2db01fbc17 fix(cli): resolve merge conflict and address all reviewer blockers for #993
CI / push-validation (push) Successful in 22s
CI / helm (push) Successful in 27s
CI / lint (push) Successful in 1m7s
CI / build (push) Successful in 1m5s
CI / quality (push) Successful in 1m35s
CI / typecheck (push) Successful in 1m35s
CI / security (push) Successful in 2m13s
CI / benchmark-publish (push) Failing after 42s
CI / integration_tests (push) Successful in 4m36s
CI / e2e_tests (push) Successful in 5m33s
CI / unit_tests (push) Successful in 6m32s
CI / docker (push) Successful in 1m27s
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 1m15s
CI / quality (pull_request) Successful in 1m17s
CI / typecheck (pull_request) Successful in 1m32s
CI / security (pull_request) Successful in 1m25s
CI / build (pull_request) Successful in 38s
CI / helm (pull_request) Successful in 26s
CI / push-validation (pull_request) Successful in 30s
CI / coverage (push) Successful in 11m9s
CI / status-check (push) Successful in 13s
CI / integration_tests (pull_request) Successful in 3m38s
CI / e2e_tests (pull_request) Successful in 3m48s
CI / unit_tests (pull_request) Successful in 6m27s
CI / docker (pull_request) Successful in 1m21s
CI / coverage (pull_request) Successful in 11m32s
CI / status-check (pull_request) Successful in 5s
- Resolve merge conflict in config_service.py: integrate PR's emit_config_changed() helper with master's scoped config infrastructure
  (write_scoped_config, scoped set_value)
- Remove # type: ignore[assignment] by introducing typed _AutoDiscover sentinel class for project_root parameter
- Add exc_info=True to emit_config_changed warning log
- Fix server.py: remove invalid scope='global' from emit_config_changed rollback calls; use svc._config_path instead of hardcoded path
- Add ReactiveEventBus.close() method for proper resource cleanup
- Fix BDD test steps: call event_bus.close() in cleanup handler
- Update CHANGELOG.md and CONTRIBUTORS.md

Closes #993
2026-04-26 17:36:29 +00:00
HAL9000 7c21ca0d6f docs(agents): sync pr-merge-pool-supervisor merge criteria with runtime behaviour
Add Ten Merge Criteria section to pr-merge-pool-supervisor.md documenting
all 10 criteria the supervisor checks at runtime. Previously only 6 criteria
were documented, creating inconsistency with actual runtime behaviour.

Also update CHANGELOG.md and CONTRIBUTORS.md.

Closes #8107

# Conflicts:
#	CONTRIBUTORS.md
2026-04-26 13:01:44 +00:00
HAL9000 8320f9f4cb fix: correct trusted automation profile description to match spec
CI / push-validation (pull_request) Successful in 23s
CI / helm (pull_request) Successful in 32s
CI / build (pull_request) Successful in 54s
CI / lint (pull_request) Successful in 1m11s
CI / quality (pull_request) Successful in 1m14s
CI / typecheck (pull_request) Successful in 1m27s
CI / security (pull_request) Successful in 1m38s
CI / benchmark-publish (pull_request) Has been skipped
CI / e2e_tests (pull_request) Successful in 4m17s
CI / integration_tests (pull_request) Successful in 5m49s
CI / unit_tests (pull_request) Successful in 6m33s
CI / docker (pull_request) Successful in 1m34s
CI / coverage (pull_request) Successful in 10m33s
CI / push-validation (push) Successful in 26s
CI / helm (push) Successful in 30s
CI / lint (push) Successful in 59s
CI / quality (push) Successful in 1m11s
CI / typecheck (push) Successful in 1m30s
CI / security (push) Successful in 1m32s
CI / build (push) Successful in 1m30s
CI / status-check (pull_request) Successful in 5s
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Has started running
CI / integration_tests (push) Successful in 4m12s
CI / e2e_tests (push) Successful in 4m17s
CI / unit_tests (push) Successful in 8m8s
CI / docker (push) Successful in 1m31s
CI / coverage (push) Successful in 12m15s
CI / status-check (push) Successful in 2s
CI / benchmark-regression (pull_request) Successful in 1h1m55s
ISSUES CLOSED: #9156
2026-04-26 09:12:01 +00:00
HAL9000 c4122f877a chore(agents): add CONTRIBUTING.md compliance steps to agent-evolution-worker
ISSUES CLOSED: #8370
2026-04-25 03:14:00 +00:00
brent.edwards 92c3bd8732 fix(tests): update resource_dag.robot SQLite pool and cycle detection types
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 37s
CI / helm (pull_request) Successful in 38s
CI / lint (pull_request) Successful in 1m35s
CI / build (pull_request) Successful in 59s
CI / typecheck (pull_request) Successful in 1m50s
CI / security (pull_request) Successful in 1m48s
CI / quality (pull_request) Successful in 1m42s
CI / e2e_tests (pull_request) Successful in 4m42s
CI / integration_tests (pull_request) Successful in 6m36s
CI / unit_tests (pull_request) Successful in 8m53s
CI / docker (pull_request) Successful in 1m45s
CI / coverage (pull_request) Successful in 12m51s
CI / benchmark-regression (push) Has been skipped
CI / status-check (pull_request) Successful in 3s
CI / benchmark-publish (push) Has started running
CI / helm (push) Successful in 36s
CI / lint (push) Successful in 55s
CI / build (push) Successful in 56s
CI / quality (push) Successful in 1m28s
CI / typecheck (push) Successful in 1m29s
CI / security (push) Successful in 1m35s
CI / push-validation (push) Successful in 22s
CI / e2e_tests (push) Successful in 4m33s
CI / integration_tests (push) Successful in 4m38s
CI / unit_tests (push) Successful in 6m41s
CI / docker (push) Successful in 1m34s
CI / coverage (push) Successful in 10m47s
CI / status-check (push) Successful in 3s
CI / benchmark-regression (pull_request) Successful in 1h2m16s
Replaced direct create_engine usage with StaticPool-based connection
in resource_dag.robot to prevent SQLite connection sharing issues in
tests. Updated cycle detection test to use distinct resource types
(git-checkout and fs-directory) instead of the same type for both
resources, improving test coverage of cross-type cycle detection.

Split from PR #1204 per reviewer request for atomic commits.

ISSUES CLOSED: #1226
2026-04-25 01:55:37 +00:00
HAL9000 36dc29b3ec docs(contributors): add HAL 9000 contribution details for migration safety fix 2026-04-24 19:01:56 +00:00
HAL9000 1829769499 feat(architecture-pool-supervisor): add milestone assignment to spec PRs
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 26s
CI / helm (pull_request) Successful in 32s
CI / build (pull_request) Successful in 50s
CI / lint (pull_request) Successful in 1m1s
CI / quality (pull_request) Successful in 1m23s
CI / typecheck (pull_request) Successful in 1m26s
CI / security (pull_request) Successful in 1m47s
CI / integration_tests (pull_request) Successful in 3m48s
CI / unit_tests (pull_request) Successful in 4m29s
CI / e2e_tests (pull_request) Successful in 4m36s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Successful in 12m16s
CI / coverage (push) Blocked by required conditions
CI / docker (push) Blocked by required conditions
CI / status-check (push) Blocked by required conditions
CI / benchmark-regression (push) Has been skipped
CI / status-check (pull_request) Successful in 4s
CI / benchmark-publish (push) Has started running
CI / build (push) Successful in 52s
CI / helm (push) Successful in 32s
CI / lint (push) Successful in 1m8s
CI / typecheck (push) Successful in 1m34s
CI / integration_tests (push) Successful in 4m21s
CI / push-validation (push) Successful in 24s
CI / e2e_tests (push) Failing after 12m4s
CI / unit_tests (push) Failing after 12m5s
CI / quality (push) Failing after 12m5s
CI / security (push) Failing after 12m5s
CI / benchmark-regression (pull_request) Successful in 1h12m34s
Restore all contribution entries that were inadvertently removed in previous commits.

Ensure CONTRIBUTORS.md includes all historical contributions while adding the new milestone assignment feature entry for issue #7521.

ISSUES CLOSED: #7521
2026-04-24 02:05:06 +00:00
HAL9000 7edc8b15a0 feat(architecture-pool-supervisor): add milestone assignment to spec PRs
Fix duplicate CONTRIBUTORS.md entry and add contribution note for milestone assignment feature (issue #7521).
2026-04-24 02:05:06 +00:00
HAL9000 afc17b22c5 feat(architecture-pool-supervisor): add milestone assignment to spec PRs
Restore original permission structure and model configuration while adding
only the changes needed for issue #7521: forgejo_update_pull_request
permission and PR Workflow for Major Changes documentation section.

Fixes addressed:
- Restore flat permission format (was incorrectly restructured to nested)
- Restore model to claude-haiku-4-5 with reasoningEffort max
- Restore removed critical rules (6: label delegation, 7: pagination)
- Restore removed permission denials (*, doom_loop, question, etc.)
- Add CHANGELOG.md entry for this feature
- Restore CONTRIBUTORS.md to master (remove unrelated changes)

ISSUES CLOSED: #7521

# Conflicts:
#	CONTRIBUTORS.md
2026-04-24 02:04:54 +00:00
HAL9000 8380c8b848 feat(architecture-pool-supervisor): add milestone assignment to spec PRs
Add milestone assignment step to the PR workflow for major specification changes.
The architecture-pool-supervisor agent now assigns created PRs to the current active
milestone using forgejo_update_pull_request, improving traceability and ensuring
spec PRs are properly tracked within project milestone planning.

Changes:
- Add 'PR Workflow for Major Changes' section to architecture-pool-supervisor.md
- Document milestone assignment using forgejo_update_pull_request
- Document milestone querying using forgejo_list_repo_milestones
- Add graceful error handling for missing active milestones
- Add support for multi-milestone spec PRs (use earliest milestone)
- Allow forgejo_update_pull_request in agent permissions
- Add comprehensive BDD tests for milestone assignment feature

ISSUES CLOSED: #7521

# Conflicts:
#	CONTRIBUTORS.md
2026-04-24 02:04:29 +00:00
HAL9000 44fc7411f9 ci: move benchmark regression job out of default PR workflow
CI / helm (pull_request) Successful in 31s
CI / push-validation (pull_request) Successful in 32s
CI / build (pull_request) Successful in 1m2s
CI / lint (pull_request) Successful in 1m7s
CI / quality (pull_request) Successful in 1m21s
CI / typecheck (pull_request) Successful in 1m29s
CI / security (pull_request) Successful in 1m36s
CI / integration_tests (pull_request) Successful in 3m55s
CI / e2e_tests (pull_request) Successful in 4m26s
CI / unit_tests (pull_request) Successful in 5m56s
CI / docker (pull_request) Successful in 1m32s
CI / coverage (pull_request) Successful in 11m8s
CI / status-check (pull_request) Successful in 3s
CI / push-validation (push) Successful in 25s
CI / helm (push) Successful in 30s
CI / build (push) Successful in 51s
CI / lint (push) Successful in 55s
CI / quality (push) Successful in 1m10s
CI / typecheck (push) Successful in 1m31s
CI / security (push) Successful in 1m36s
CI / e2e_tests (push) Successful in 4m10s
CI / integration_tests (push) Successful in 4m20s
CI / unit_tests (push) Successful in 4m28s
CI / docker (push) Successful in 1m42s
CI / coverage (push) Successful in 11m23s
CI / status-check (push) Successful in 4s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (push) Has been skipped
CI / benchmark-publish (push) Failing after 21m14s
CI / benchmark-regression (pull_request) Failing after 31m46s
Extract the benchmark-regression job from the default PR CI workflow
into a dedicated scheduled workflow (.forgejo/workflows/benchmark-scheduled.yml).

The benchmark job was blocking PR feedback for 99-132 minutes even when
lint/typecheck/tests passed in under 20 minutes. The new workflow runs:
- Nightly regression tests (2 AM UTC) comparing HEAD against master
- Weekly full benchmark suite (3 AM UTC Sundays) for trend analysis
- Manual dispatch trigger for ad-hoc benchmark validation

AWS S3 integration stores benchmark results for historical trend analysis.
Documentation updated in docs/development/ci-cd.md.
CONTRIBUTORS.md updated with benchmark workflow separation contribution.

ISSUES CLOSED: #9040

# Conflicts:
#	CONTRIBUTORS.md

# Conflicts:
#	CONTRIBUTORS.md
2026-04-23 14:24:09 +00:00
HAL9000 2cf84ed078 docs(changelog): update CHANGELOG and CONTRIBUTORS for bug-hunt non-blocking tracking fix
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 1m9s
CI / security (pull_request) Successful in 1m23s
CI / typecheck (pull_request) Successful in 1m32s
CI / push-validation (pull_request) Successful in 33s
CI / helm (pull_request) Successful in 36s
CI / build (pull_request) Successful in 1m7s
CI / quality (pull_request) Successful in 1m56s
CI / e2e_tests (pull_request) Failing after 4m44s
CI / integration_tests (pull_request) Successful in 7m41s
CI / unit_tests (pull_request) Successful in 9m9s
CI / docker (pull_request) Successful in 1m30s
CI / coverage (pull_request) Successful in 12m34s
CI / status-check (pull_request) Failing after 3s
CI / benchmark-regression (pull_request) Failing after 27m37s
Document the bug-hunt-pool-supervisor non-blocking tracking change in
CHANGELOG.md under [Unreleased] > Fixed, and add a contribution note
in CONTRIBUTORS.md for HAL 9000.
2026-04-23 00:57:09 +00:00
HAL9000 482eaf559b fix(error-handling): _handle_file_edit() now respects encoding parameter
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / push-validation (push) Successful in 24s
CI / helm (push) Successful in 30s
CI / build (push) Successful in 3m49s
CI / lint (push) Successful in 3m56s
CI / quality (push) Successful in 4m19s
CI / typecheck (push) Successful in 4m44s
CI / security (push) Successful in 4m49s
CI / e2e_tests (push) Successful in 7m2s
CI / unit_tests (push) Successful in 8m42s
CI / docker (push) Successful in 1m37s
CI / coverage (push) Successful in 14m56s
CI / lint (pull_request) Successful in 4m17s
CI / helm (pull_request) Successful in 39s
CI / push-validation (pull_request) Successful in 36s
CI / build (pull_request) Successful in 4m8s
CI / quality (pull_request) Successful in 4m48s
CI / security (pull_request) Successful in 5m16s
CI / typecheck (pull_request) Successful in 5m18s
CI / e2e_tests (pull_request) Successful in 7m53s
CI / integration_tests (pull_request) Successful in 10m44s
CI / unit_tests (pull_request) Successful in 11m35s
CI / docker (pull_request) Successful in 1m28s
CI / coverage (pull_request) Successful in 14m47s
CI / status-check (pull_request) Successful in 3s
CI / status-check (push) Blocked by required conditions
CI / integration_tests (push) Has started running
- Update encoding scenario to use latin-1 with non-ASCII content (café → naïve)
  to properly test the encoding parameter fix
- Add CONTRIBUTORS.md entry for PR #8258 / issue #7559

ISSUES CLOSED: #7559
2026-04-21 08:45:06 +00:00
HAL9000 04023d88c3 docs: add CHANGELOG and CONTRIBUTORS entries for pr-review-pool-supervisor fix
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 9s
CI / lint (pull_request) Successful in 27s
CI / build (pull_request) Successful in 33s
CI / helm (pull_request) Successful in 36s
CI / quality (pull_request) Successful in 53s
CI / typecheck (pull_request) Successful in 57s
CI / security (pull_request) Successful in 57s
CI / e2e_tests (pull_request) Successful in 4m27s
CI / integration_tests (pull_request) Successful in 4m27s
CI / unit_tests (pull_request) Successful in 5m34s
CI / docker (pull_request) Successful in 2m25s
CI / coverage (pull_request) Successful in 11m2s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 57m26s
- Added CHANGELOG entry documenting the tracking prefix mismatch fix (#7602)
- Updated CONTRIBUTORS.md with latest HAL 9000 contributions
- Addresses blocking review requirements for PR #8176
2026-04-15 00:36:35 +00:00
HAL9000 251759c9b1 chore: add changelog entry and contributor for #7508 validation gate fix
CI / benchmark-publish (pull_request) Has been skipped
CI / helm (pull_request) Failing after 9s
CI / push-validation (pull_request) Successful in 43s
CI / build (pull_request) Successful in 7m41s
CI / quality (pull_request) Successful in 8m12s
CI / lint (pull_request) Successful in 8m35s
CI / typecheck (pull_request) Successful in 8m55s
CI / security (pull_request) Successful in 9m0s
CI / e2e_tests (pull_request) Successful in 11m22s
CI / integration_tests (pull_request) Successful in 17m29s
CI / unit_tests (pull_request) Successful in 19m48s
CI / docker (pull_request) Successful in 1m45s
CI / coverage (pull_request) Successful in 16m45s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Successful in 56m32s
- Add CHANGELOG.md entry under [Unreleased] ### Fixed for the empty-run
  guard added to ApplyValidationSummary.all_required_passed
- Add HAL 9000 to CONTRIBUTORS.md per CONTRIBUTING.md §PR Process Rule 8
2026-04-12 08:15:49 +00:00
aditya 36c36bc0ee test(cli): add regression-guard tests for Container.resolve() crash
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 18s
CI / lint (pull_request) Successful in 3m19s
CI / quality (pull_request) Successful in 3m41s
CI / typecheck (pull_request) Successful in 3m54s
CI / security (pull_request) Successful in 4m2s
CI / integration_tests (pull_request) Successful in 6m41s
CI / unit_tests (pull_request) Successful in 6m49s
CI / docker (pull_request) Successful in 1m9s
CI / e2e_tests (pull_request) Successful in 9m19s
CI / coverage (pull_request) Successful in 11m17s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 50m38s
Add Behave and Robot Framework regression tests for bug #647, where
plan tree, plan explain, and plan correct CLI commands crashed with
AttributeError when resolving DecisionService from the DI container.

Tests use a real DI container with seeded decisions (not MagicMock)
to catch the exact class of bug that existing M3 tests missed.
Assertions verify successful execution and command-specific output
content. Includes Settings.reset() classmethod for robust singleton
cleanup in test teardown.

Review feedback addressed (hurui200320 Round 5):
- Fixed Behave step engine leak by capturing UoW in cleanup closure
- Removed dead @then decorator; renamed to private _assert_command_succeeded
- Strengthened plan correct assertions with revert/dry-run content checks
- Updated misleading get_container() comment to reflect singleton warming
- Added test-only warning to Settings.reset() docstring
- Added type annotations to 4 settings step functions
- Fixed CONTRIBUTORS.md alphabetical ordering and removed duplicate entry
- Replaced glob.glob with pathlib suffix iteration in Robot helper
- Fixed feature description line break for readability
- Removed redundant TYPE_CHECKING import for Decision

ISSUES CLOSED: #648
2026-03-24 08:46:58 +00:00
hurui200320 09d92ac67b test(e2e): validate M4 acceptance criteria for v3.3.0 milestone closure (#560)
CI / lint (push) Successful in 15s
CI / build (push) Successful in 16s
CI / quality (push) Successful in 18s
CI / typecheck (push) Successful in 35s
CI / security (push) Successful in 36s
CI / benchmark-regression (push) Has been skipped
CI / unit_tests (push) Successful in 2m8s
CI / docker (push) Successful in 9s
CI / integration_tests (push) Successful in 3m4s
CI / coverage (push) Successful in 5m7s
CI / benchmark-publish (push) Successful in 15m59s
## Summary

Validates all M4 acceptance criteria for v3.3.0 milestone closure. Adds CLI-exercising integration tests for the three subplan commands that lacked actual CLI invocation, fixes a pre-existing unit test failure, and corrects CONTRIBUTORS.md ordering.

## Changes

### New CLI Integration Tests (Robot Framework)

Three new test cases in `robot/m4_e2e_verification.robot` with helper functions in `robot/helper_m4_e2e_verification.py`:

| Test | CLI Command | Mocking Approach |
|------|-------------|-----------------|
| `CLI Plan Use Creates Plan With Subplan Config` | `plan use local/refactor-action local/monorepo` | Patches `_get_lifecycle_service`; mocks `get_action_by_name` + `use_action` |
| `CLI Plan Execute Transitions With Subplans` | `plan execute <plan_id>` | Patches `_get_lifecycle_service`; mocks `get_plan` + `execute_plan` |
| `CLI Plan Tree Displays Subplan Hierarchy` | `plan tree <plan_id> --format json` | Patches `get_container`; real `Decision` objects with `SUBPLAN_SPAWN`/`SUBPLAN_PARALLEL_SPAWN` types |

All three follow the same pattern as the existing `plan-diff` test: Typer `CliRunner.invoke()` with mocked services.

### Pre-existing Unit Test Fix

**File:** `features/steps/repositories_uncovered_branches_steps.py`
**Scenario:** `repo branch cov upsert profile with schema version mismatch` (line 110)
**Root cause:** Plain `sessionmaker` returns a new session per call. The `Given` step inserted via session A and committed session B (different session), so the `When` step's session C couldn't see the uncommitted data.
**Fix:** Changed to `scoped_session(sessionmaker(...))` so all factory calls return the same thread-local session.

### Other Fixes
- **CONTRIBUTORS.md**: Moved "Rui Hu" to correct alphabetical position (between Freeman and Khyari)
- **CHANGELOG.md**: Updated #495 entry to document CLI test additions

## M4 Acceptance Criteria Verification

All 7 criteria exercised by 10 E2E tests (7 existing + 3 new) + 8 smoke tests:

| # | Criterion | Test(s) | Status |
|---|-----------|---------|--------|
| 1 | Subplans spawned during Execute via SubplanConfig | `spawn-subplans`, **`cli-plan-use`**, **`cli-plan-execute`** | PASS |
| 2 | Parallel execution with max_parallel bounds | `parallel-exec` | PASS |
| 3 | Three-way merge combines non-conflicting changes | `merge-clean` | PASS |
| 4 | Merge conflicts surfaced with git markers | `merge-conflict` | PASS |
| 5 | Parent plan tracks subplan statuses | `parent-tracking` | PASS |
| 6 | Plan tree displays subplan hierarchy | `plan-tree`, **`cli-plan-tree`** | PASS |
| 7 | Plan diff shows merged results | `plan-diff` (already uses CLI) | PASS |

## Quality Gates

| Stage | Result |
|-------|--------|
| lint | pass |
| format | pass (1074 files unchanged) |
| typecheck | pass (0 errors) |
| unit_tests | 8524 scenarios, 0 failures |
| integration_tests | 1110/1118 pass (8 pre-existing failures in `cli_plan_context_commands.robot`, identical on master) |
| coverage_report | 97% (threshold: 97%) |
| security_scan | pass |
| dead_code | pass |
| docs | pass |
| build | pass |
| benchmark | pass |

## Files Changed

- `CHANGELOG.md` — Updated #495 entry
- `CONTRIBUTORS.md` — Fixed alphabetical ordering
- `features/steps/repositories_uncovered_branches_steps.py` — `scoped_session` fix
- `robot/helper_m4_e2e_verification.py` — 3 new helper functions + imports
- `robot/m4_e2e_verification.robot` — 3 new test cases

ISSUES CLOSED: #495

Reviewed-on: #560
Reviewed-by: Luis Mendes <luis.mendes@cleverthis.com>
Co-authored-by: Rui Hu <rui.hu@cleverthis.com>
Co-committed-by: Rui Hu <rui.hu@cleverthis.com>
2026-03-06 03:22:45 +00:00
hurui200320 cb1403c24d test(e2e): validate M3 acceptance criteria for v3.2.0 milestone closure (#559)
CI / lint (push) Successful in 15s
CI / build (push) Successful in 15s
CI / quality (push) Successful in 24s
CI / security (push) Successful in 34s
CI / typecheck (push) Successful in 54s
CI / benchmark-regression (push) Has been skipped
CI / integration_tests (push) Successful in 3m14s
CI / unit_tests (push) Successful in 3m34s
CI / docker (push) Successful in 41s
CI / coverage (push) Successful in 4m26s
CI / benchmark-publish (push) Has been cancelled
## Summary

Validates all 10 M3 (v3.2.0) acceptance criteria via the E2E verification suite. This is the final gate before closing milestone v3.2.0.

### Single Commit (Squashed per CONTRIBUTING.md)

Branch history was squashed from 2 commits into 1 (`e1665c6e`) to comply with the one-commit-per-issue rule. The single commit includes:

1. **Original work**: Suite-level Force Tags, per-test acceptance criteria tags, enhanced documentation with milestone cross-references, CHANGELOG and CONTRIBUTORS entries.
2. **Review feedback fixes** (addressing Luis's CRITICAL/HIGH findings): Replaced fixture-self-assertion patterns with real CLI-path validation for all 10 acceptance criteria, added persistence-backed decision tree checks, robust JSON output parsing, explicit Robot process timeouts, and clearer correction tags.
3. **Rebase onto current master** (`fff6bb38`): Clean rebase resolving CHANGELOG conflict, as requested by PM (freemo).
4. **Bug fix — `async_enabled` attribute**: `PlanLifecycleService.execute_plan()` accesses `self.settings.async_enabled` (`plan_lifecycle_service.py:283`). The test helper's `_make_settings()` used `create_autospec(Settings)` but didn't set this attribute, causing `plan execute` CLI tests to fail with `AttributeError`. Fixed by adding `settings.async_enabled = False`.
5. **Timeout fixes for parallel execution**: When `pabot` runs 16 parallel Robot processes, cold-start import times + Alembic migrations cause 30s timeouts to be insufficient. Increased timeouts from 30s to 120s in 3 robot files: `actor_context_management.robot`, `decision_di_wiring_smoke.robot`, `changeset_persistence.robot`.

### Files Changed (7)

| File | Change |
|------|--------|
| `robot/helper_m3_e2e_verification.py` | Rewritten for real CLI-path validation; `_make_settings()` fixed with `async_enabled = False` |
| `robot/m3_e2e_verification.robot` | Force Tags, per-test tags, timeouts, enhanced docs |
| `robot/actor_context_management.robot` | Timeout 30s → 120s (line 92) |
| `robot/decision_di_wiring_smoke.robot` | Timeout 30s → 120s (lines 14, 21) |
| `robot/changeset_persistence.robot` | `${TIMEOUT}` 30s → 120s (line 12) |
| `CHANGELOG.md` | Entry for #494 |
| `CONTRIBUTORS.md` | Added Rui Hu |

### Acceptance Criteria Verified (10/10)

**Success Criteria:**
- `plan use` + `plan execute` generates decisions during Strategize
- `plan tree` displays decision tree correctly (via CLI invocation)
- `plan explain` shows full decision context (via CLI invocation)
- `invariant add --project` / `invariant list --project` work with project scope
- `plan correct --dry-run` performs impact analysis (via CLI invocation)
- `plan correct --mode=revert` executes live correction (via CLI invocation)

**Technical Criteria:**
- Decisions recorded with full context snapshot
- Decision tree persists to database and renders correctly
- Correction in revert mode re-executes from decision point
- Invariants enforced during strategize

### Quality Gates (Full Nox Suite)

| Session | Result | Details |
|---------|--------|---------|
| `lint` | PASS | ruff clean |
| `format` | PASS | ruff format clean |
| `typecheck` | PASS | pyright 0 errors, 0 warnings |
| `security_scan` | PASS | bandit clean |
| `dead_code` | PASS | vulture clean |
| `unit_tests` | PASS | 8500 BDD scenarios, 0 failures |
| `integration_tests` | PASS | 1194/1194 tests, 0 failures |
| `docs` | PASS | mkdocs build clean |
| `build` | PASS | wheel built |
| `benchmark` | PASS | performance benchmarks pass |
| `coverage_report` | PASS | 96.96% → rounds to 97% (meets `--fail-under=97`) |

Closes #494

Reviewed-on: #559
Reviewed-by: Luis Mendes <luis.mendes@cleverthis.com>
Co-authored-by: Rui Hu <rui.hu@cleverthis.com>
Co-committed-by: Rui Hu <rui.hu@cleverthis.com>
2026-03-05 15:09:19 +00:00
khyari hamza 27bef69ddd feat(decision): add decision persistence
Add decision persistence layer with DecisionRepository, DecisionModel,
and Alembic migration. Includes tree queries (BFS traversal via deque,
path-to-root), superseded lookup, ordered decision path retrieval,
concrete Decision type annotations (via TYPE_CHECKING), and comprehensive
test coverage (Behave BDD, Robot Framework, ASV benchmarks). Updated
database_schema.md, CHANGELOG.md, and CONTRIBUTORS.md.

ISSUES CLOSED: #171
2026-02-26 13:40:07 +00:00
brent.edwards 3b58432ecc docs(merge): merge new docs into branch
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 17s
CI / quality (pull_request) Successful in 19s
CI / security (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 36s
CI / integration_tests (pull_request) Failing after 3m10s
CI / benchmark-regression (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
2026-02-25 19:41:56 +00:00
CoreRasurae 0e8d43c04b chore: Update CHANGELOG and CONTRIBUTORS for the implemented features in PR 417 2026-02-25 10:07:16 +00:00
brent.edwards f3ddb48faf chore(pr): address code review feedback for PR #420
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 18s
CI / build (pull_request) Successful in 17s
CI / typecheck (pull_request) Successful in 32s
CI / security (pull_request) Successful in 33s
CI / unit_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
Added CHANGELOG entry for CLI extension test suite. Added Brent Edwards
to CONTRIBUTORS.md. Replaced broad except Exception with specific
ValidationError catch in benchmark. Moved import json to module
top-level in robot helper script.

ISSUES CLOSED: #326
2026-02-25 02:55:40 +00:00
freemo 635b100322 Initial commit 2024-01-25 23:10:04 -05:00