Commit Graph

30 Commits

Author SHA1 Message Date
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