Commit Graph

59 Commits

Author SHA1 Message Date
HAL9000 30f8c81a33 fix(actor): add changelog, contributors and benchmark fix for issue #1429
ISSUES CLOSED: #1429
2026-05-30 02:07:41 -04:00
HAL9000 02e51b9298 fix(actor): fix lint errors and add regression tests for lsp_binding field (#1432)
CI / build (pull_request) Successful in 34s
CI / helm (pull_request) Successful in 38s
CI / lint (pull_request) Successful in 45s
CI / typecheck (pull_request) Successful in 1m4s
CI / security (pull_request) Successful in 1m10s
CI / quality (pull_request) Successful in 1m16s
CI / push-validation (pull_request) Successful in 18s
CI / unit_tests (pull_request) Successful in 6m32s
CI / docker (pull_request) Successful in 1m37s
CI / coverage (pull_request) Successful in 13m26s
CI / integration_tests (pull_request) Successful in 23m55s
CI / status-check (pull_request) Successful in 4s
- Remove trailing whitespace from blank lines in _extract_lsp_bindings()
  (W293 at lines 160, 164, 167, 172, 183, 188, 203)
- Simplify over-long line 180 (E501): auto_detect=node.lsp_binding.auto
- Add Behave scenario verifying NodeLspBinding typed field populates
  CompilationMetadata.lsp_bindings (features/actor_lsp_binding_field.feature)
- Add corresponding @given step using NodeLspBinding in actor_compiler_steps.py
- Add Robot Framework regression test case and lsp-binding-field helper command
  confirming node.lsp_binding is read by compile_actor()
- Update CHANGELOG.md and CONTRIBUTORS.md

ISSUES CLOSED: #1432
2026-05-30 00:36:20 -04:00
freemo 7b91b66b28 Fix actor add --config crash with combined-format config.actor (#11189)
When users register actors via `agents actor add --config` using the
spec-compliant combined config.actor YAML format — either as a compact
string (config:\n  actor: "<provider>/<model>") or as a nested dict
(config:\n  actor:\n    type: llm\n    provider: aws) — the CLI crashed
with click.BadParameter: "Invalid value: 'provider' is required" because
the parser did not detect or flatten the nested structure.

Added:
- _detect_nested_config_actor() in schema.py to recognise both
  compact-string and nested-dict forms of config-actor format.
- _flatten_config_actor() in schema.py to merge config["actor"]
  fields into the dict top-level (removing the wrapper).
- Flattening logic in ActorConfiguration.from_blob() to handle both
  string ("<provider>/<model>") and nested-dict forms of config.actor.
- CLI flattening step at the start of `agents actor add` command.
- New BDD scenarios for combined-format registration.
- Unit tests for detection, flattening, schema-v3 detection, and
  full from_blob() flow.

ISSUES CLOSED: #11189
2026-05-28 20:25:17 -04:00
freemo bf52a9c648 fix(invariant): restore ACTION scope in merge_invariants and InvariantSet.merge precedence chain
The 4-tier invariant precedence chain (plan > action > project > global) was
broken at the domain layer — merge_invariants() and InvariantSet.merge() only
accepted 3 parameters (plan, project, global), silently dropping all action-
scoped invariants. Added action_invariants as a fourth parameter with proper
backward compatibility (default to empty list). Updated module docstrings,
InvariantScope docstring, and InvariantService.get_effective_invariants() to
reflect the correct precedence chain. Added comprehensive BDD test scenarios
covering four-tier merge precedence, action-before-project ordering, and effective
invariant computation with all four scopes.

ISSUES CLOSED: #9126
2026-05-16 04:14:17 +00:00
HAL9000 655cd7ebc2 fix: persist strategy decisions via DecisionService during strategize (#10813)
The plan tree command reported zero decision nodes after strategize because
PlanExecutor.run_strategize() never persisted strategy decisions as domain
Decision objects. Added _persist_strategy_decisions() to the PlanExecutor,
wired decision_service from the DI container in _get_plan_executor(), and
ensure each strategy decision is recorded with correct DecisionType mapping.

ISSUES CLOSED: #10813
2026-05-15 03:41:13 +00:00
HAL9000 fa95c518d5 fix(tui): rename ActorSelectionOverlay._render to avoid shadowing Textual Widget._render
CI / push-validation (pull_request) Successful in 33s
CI / helm (pull_request) Successful in 42s
CI / build (pull_request) Successful in 1m6s
CI / lint (pull_request) Successful in 1m12s
CI / security (pull_request) Successful in 1m47s
CI / quality (pull_request) Successful in 1m53s
CI / typecheck (pull_request) Successful in 2m15s
CI / integration_tests (pull_request) Successful in 3m39s
CI / unit_tests (pull_request) Successful in 7m14s
CI / docker (pull_request) Successful in 1m42s
CI / coverage (pull_request) Successful in 14m56s
CI / status-check (pull_request) Successful in 3s
CI / push-validation (push) Successful in 35s
CI / helm (push) Successful in 1m10s
CI / benchmark-regression (push) Failing after 1m12s
CI / build (push) Successful in 1m16s
CI / lint (push) Successful in 1m36s
CI / quality (push) Successful in 1m43s
CI / e2e_tests (push) Successful in 1m50s
CI / security (push) Successful in 2m7s
CI / typecheck (push) Successful in 2m10s
CI / integration_tests (push) Successful in 4m50s
CI / unit_tests (push) Successful in 5m23s
CI / docker (push) Successful in 1m37s
CI / benchmark-publish (push) Has started running
CI / coverage (push) Successful in 10m54s
CI / status-check (push) Successful in 3s
Rename ActorSelectionOverlay._render() to _refresh_display() to avoid
shadowing Textual's Widget._render(), fixing a crash in textual >=1.0 where
get_content_height() would receive None and raise AttributeError.

ISSUES CLOSED: #11039
2026-05-15 00:56:08 +00:00
HAL9000 2f29f8352f chore: resolve merge conflicts and apply cosmetic fixes
CI / push-validation (push) Successful in 29s
CI / helm (push) Successful in 39s
CI / build (push) Successful in 1m9s
CI / lint (push) Successful in 1m23s
CI / typecheck (push) Successful in 1m34s
CI / quality (push) Successful in 1m39s
CI / security (push) Successful in 1m46s
CI / e2e_tests (push) Successful in 52s
CI / benchmark-regression (push) Failing after 40s
CI / integration_tests (push) Successful in 5m6s
CI / unit_tests (push) Successful in 6m7s
CI / docker (push) Successful in 1m28s
CI / coverage (push) Successful in 10m46s
CI / status-check (push) Successful in 7s
CI / benchmark-publish (push) Failing after 45m49s
CI / helm (pull_request) Successful in 45s
CI / build (pull_request) Successful in 1m8s
CI / lint (pull_request) Successful in 1m45s
CI / quality (pull_request) Successful in 1m39s
CI / security (pull_request) Successful in 2m11s
CI / typecheck (pull_request) Successful in 2m21s
CI / push-validation (pull_request) Successful in 22s
CI / integration_tests (pull_request) Successful in 4m19s
CI / unit_tests (pull_request) Successful in 5m5s
CI / docker (pull_request) Successful in 1m47s
CI / coverage (pull_request) Successful in 11m53s
CI / status-check (pull_request) Successful in 3s
- Resolve CHANGELOG.md conflict to include both entries, referencing issue #8164 instead of PR #11161
- Resolve CONTRIBUTORS.md conflict, fix leading space in new entry
- Remove duplicate create_sequence_node function (dead code)
Merges master into feat/structural-output-validation branch
2026-05-14 18:14:48 +00:00
HAL9000 8c5dbf3f33 chore(contributors): add ACMS hot_max_tokens fix detail entry
CI / helm (pull_request) Successful in 43s
CI / build (pull_request) Successful in 1m15s
CI / push-validation (pull_request) Successful in 1m24s
CI / lint (pull_request) Successful in 1m34s
CI / security (pull_request) Successful in 1m47s
CI / quality (pull_request) Successful in 1m50s
CI / typecheck (pull_request) Successful in 2m7s
CI / integration_tests (pull_request) Successful in 4m0s
CI / unit_tests (pull_request) Successful in 10m3s
CI / docker (pull_request) Successful in 1m43s
CI / coverage (pull_request) Successful in 10m56s
CI / status-check (pull_request) Successful in 3s
CI / helm (push) Successful in 38s
CI / push-validation (push) Successful in 37s
CI / build (push) Successful in 1m9s
CI / lint (push) Successful in 1m34s
CI / quality (push) Successful in 1m34s
CI / security (push) Successful in 1m42s
CI / typecheck (push) Successful in 1m53s
CI / e2e_tests (push) Successful in 1m21s
CI / benchmark-regression (push) Failing after 45s
CI / integration_tests (push) Successful in 3m42s
CI / benchmark-publish (push) Has started running
CI / unit_tests (push) Successful in 6m23s
CI / docker (push) Successful in 1m50s
CI / coverage (push) Successful in 11m2s
CI / status-check (push) Successful in 3s
Adds contributor detail line for Hamza Khyari's ACMS execute-phase
context assembler project-level budget override fix.

ISSUES CLOSED: #11035
2026-05-14 07:13:24 +00:00
freemo 80d27df9cc fix(changelog): correct PR #11161 references in CHANGELOG.md and CONTRIBUTORS.md
ISSUES CLOSED: #11147
2026-05-14 06:46:27 +00:00
HAL9000 f8e4f4a579 feat: implement structural component output validation
Replace exact character matching with structural component checking
for output validation. Implements three validators covering plan tree
output, decision CLI dicts, and structured session snapshots.

- validate_plan_tree: validates node dicts for required keys (decision_id, type, sequence, question, children), ULID format, correct types, and sibling ordering
- validate_decision_dict: validates decision CLI output against Decision.as_cli_dict() schema with field presence, type, ULID, confidence range [0..1], bool fields
- validate_structured_output: validates StructuredOutput envelope for command, session_id (ULID), status membership, exit_code, elements integrity
- validate_structured_component_output: unified dispatcher by target_type

BDD tests in features/structural_validation.feature.

ISSUES CLOSED: #11147
2026-05-14 06:46:27 +00:00
HAL9000 3368cba38f refactor(a2a): execute ACP to A2A module rename and symbol standardization (#10583)
CI / lint (push) Successful in 1m15s
CI / helm (push) Successful in 51s
CI / push-validation (push) Successful in 1m3s
CI / build (push) Successful in 1m17s
CI / quality (push) Successful in 1m45s
CI / typecheck (push) Successful in 2m14s
CI / security (push) Successful in 2m13s
CI / integration_tests (push) Successful in 3m48s
CI / e2e_tests (push) Successful in 4m21s
CI / unit_tests (push) Successful in 5m14s
CI / docker (push) Successful in 2m28s
CI / coverage (push) Successful in 11m51s
CI / status-check (push) Successful in 3s
CI / benchmark-regression (push) Has been cancelled
CI / benchmark-publish (push) Has been cancelled
Executes the systematic ACP -> A2A module rename per ADR-047.
- Renamed all legacy ACP references to A2A throughout cleveragents.a2a module
- Standardized all 22 exported symbols to A2A naming conventions
- Added BDD test suite validating export completeness, zero ACP remnants, and documentation accuracy

Closes #10583
Parent Epic: #8569 (A2A Standard Adoption)
2026-05-13 06:49:40 +00:00
HAL9000 09c79eab73 chore(deps): upgrade PyYAML to address known security vulnerability (#9244)
CI / helm (push) Successful in 44s
CI / push-validation (push) Successful in 1m38s
CI / lint (push) Successful in 1m45s
CI / benchmark-publish (push) Has started running
CI / build (push) Successful in 2m3s
CI / typecheck (push) Successful in 2m5s
CI / quality (push) Successful in 2m7s
CI / security (push) Successful in 2m27s
CI / benchmark-regression (push) Failing after 43s
CI / integration_tests (push) Successful in 4m2s
CI / e2e_tests (push) Successful in 4m12s
CI / unit_tests (push) Successful in 5m25s
CI / docker (push) Successful in 1m27s
CI / coverage (push) Successful in 11m27s
CI / status-check (push) Successful in 15s
- Add explicit `pyyaml>=6.0.3` constraint to pyproject.toml dependencies with a security comment
- Add a `\#\#\# Security` section to CHANGELOG.md documenting this dependency constraint update
- Verify no unsafe yaml.load() calls exist in the codebase

Co-authored-by: HAL 9000 <hal9000@cleverthis.com>
ISSUES CLOSED: #9055
2026-05-13 06:01:19 +00:00
freemo 9cfa1dd1d7 fix(subplan): propagate invariant_enforced decisions to child plans on spawn
CI / lint (pull_request) Successful in 1m25s
CI / typecheck (pull_request) Successful in 1m48s
CI / quality (pull_request) Successful in 1m52s
CI / security (pull_request) Successful in 1m52s
CI / push-validation (pull_request) Successful in 36s
CI / helm (pull_request) Successful in 38s
CI / build (pull_request) Successful in 46s
CI / integration_tests (pull_request) Successful in 3m55s
CI / unit_tests (pull_request) Successful in 6m46s
CI / docker (pull_request) Successful in 1m33s
CI / coverage (pull_request) Successful in 10m45s
CI / status-check (pull_request) Successful in 7s
CI / lint (push) Successful in 56s
CI / quality (push) Successful in 1m15s
CI / typecheck (push) Successful in 1m25s
CI / security (push) Successful in 1m30s
CI / build (push) Successful in 34s
CI / push-validation (push) Successful in 40s
CI / helm (push) Successful in 43s
CI / benchmark-regression (push) Failing after 45s
CI / integration_tests (push) Successful in 3m55s
CI / unit_tests (push) Successful in 4m21s
CI / e2e_tests (push) Successful in 4m26s
CI / docker (push) Successful in 1m28s
CI / coverage (push) Successful in 12m20s
CI / status-check (push) Successful in 3s
CI / benchmark-publish (push) Successful in 1h20m8s
SubplanService.spawn() now re-records all invariant_enforced decisions from
the parent plan decision tree onto each child plan decision tree. This
satisfies the spec requirement: 'recorded as invariant_enforced decisions that
propagate to child plans.' (Glossary → Invariant)

Previously, child plans started Strategize with a completely empty invariant
set, violating the spec's propagation requirement. non_overridable global
invariants enforced on the parent were not guaranteed to be enforced on child
plans.

The fix adds _propagate_invariant_decisions() to SubplanService which queries
the parent plan's invariant_enforced decisions and re-records each one on the
child plan using DecisionService.record_decision(). The DecisionService is
already injected into SubplanService, so no new dependencies are required.

BDD regression coverage added in features/tdd_invariant_propagation_subplan.feature
with 4 scenarios covering: single invariant propagation, multiple invariant
propagation, non_overridable invariant propagation, and clean spawn with no
parent invariants.

ISSUES CLOSED: #9131
2026-05-12 16:45:59 +00:00
hurui200320 d25a060c58 Revert "feat(ci): implement TDD bug tag quality gate for bug fix PRs"
CI / lint (pull_request) Successful in 50s
CI / quality (pull_request) Successful in 1m2s
CI / push-validation (pull_request) Successful in 39s
CI / helm (pull_request) Successful in 43s
CI / typecheck (pull_request) Successful in 1m31s
CI / security (pull_request) Successful in 1m32s
CI / build (pull_request) Successful in 1m3s
CI / integration_tests (pull_request) Successful in 3m42s
CI / unit_tests (pull_request) Successful in 6m13s
CI / docker (pull_request) Successful in 2m2s
CI / coverage (pull_request) Successful in 11m15s
CI / status-check (pull_request) Successful in 3s
CI / build (push) Successful in 53s
CI / lint (push) Successful in 1m1s
CI / helm (push) Successful in 26s
CI / quality (push) Successful in 1m16s
CI / typecheck (push) Successful in 1m20s
CI / security (push) Successful in 1m37s
CI / benchmark-regression (push) Failing after 40s
CI / push-validation (push) Successful in 21s
CI / integration_tests (push) Successful in 3m17s
CI / unit_tests (push) Successful in 4m28s
CI / e2e_tests (push) Successful in 3m22s
CI / docker (push) Successful in 1m52s
CI / coverage (push) Successful in 12m50s
CI / status-check (push) Successful in 3s
CI / benchmark-publish (push) Successful in 1h20m0s
This reverts commit e8d2f76466.
2026-05-12 08:30:24 +00:00
CoreRasurae e8d2f76466 feat(ci): implement TDD bug tag quality gate for bug fix PRs
CI / push-validation (pull_request) Successful in 45s
CI / helm (pull_request) Successful in 57s
CI / build (pull_request) Successful in 1m8s
CI / lint (pull_request) Successful in 1m31s
CI / tdd_quality_gate (pull_request) Failing after 1m26s
CI / quality (pull_request) Successful in 1m30s
CI / typecheck (pull_request) Successful in 1m43s
CI / security (pull_request) Successful in 1m42s
CI / e2e_tests (pull_request) Failing after 4m10s
CI / integration_tests (pull_request) Successful in 5m2s
CI / unit_tests (pull_request) Successful in 6m6s
CI / docker (pull_request) Successful in 1m32s
CI / coverage (pull_request) Successful in 12m12s
CI / status-check (push) Blocked by required conditions
CI / status-check (pull_request) Failing after 3s
CI / tdd_quality_gate (push) Has been skipped
CI / benchmark-regression (push) Failing after 1m8s
CI / build (push) Successful in 1m2s
CI / lint (push) Successful in 1m16s
CI / helm (push) Successful in 45s
CI / push-validation (push) Successful in 45s
CI / quality (push) Successful in 1m37s
CI / typecheck (push) Successful in 2m1s
CI / security (push) Successful in 2m1s
CI / integration_tests (push) Successful in 3m34s
CI / unit_tests (push) Successful in 5m14s
CI / docker (push) Successful in 1m37s
CI / coverage (push) Failing after 19m17s
CI / benchmark-publish (push) Successful in 1h20m43s
CI / e2e_tests (push) Successful in 4m13s
Add an automated quality gate that enforces TDD bug fix workflow rules
on pull requests. The gate parses PR descriptions for bug-closing
keywords (Closes/Fixes/Resolves #N, ISSUES CLOSED: #N), searches the
codebase for corresponding TDD tests tagged @tdd_bug_N, and verifies
that @tdd_expected_fail tags have been removed.

Key components:
- scripts/tdd_quality_gate.py: Main quality gate script with PR
  description parsing, TDD test discovery, and tag removal verification.
  All public functions validate arguments fail-fast and are statically
  typed.
- noxfile.py: New tdd_quality_gate session that reads PR_DESCRIPTION
  from the environment and runs the quality gate script.
- .forgejo/workflows/ci.yml: New tdd_quality_gate CI job that runs
  only on pull_request events, passing the PR body as PR_DESCRIPTION.
- features/tdd_quality_gate.feature: 46 Behave scenarios covering PR
  parsing, TDD test search, tag removal verification, full gate logic,
  robot diff handling, edge cases, argument validation, bool guards,
  co-located bug false-positive guard, and main() CLI entry point.
- features/steps/tdd_quality_gate_steps.py: Step definitions for all
  Behave scenarios using temporary directories for isolation.
- robot/tdd_quality_gate.robot: 15 Robot Framework integration tests
  exercising the gate end-to-end via a helper subprocess.
- robot/helper_tdd_quality_gate.py: Helper script for Robot tests with
  sentinel-based sub-commands.

Review-round fixes applied:
- check_expected_fail_removed now uses _contains_tag_token for
  word-boundary matching (avoids false positives on partial tag names)
- Diff expected-fail removal detection tracks flags at file level
  instead of per-hunk (fixes false negatives when tags span hunks)
- parse_bug_refs filters out issue number zero
- Redundant double error reporting eliminated (file-level check
  short-circuits the diff-level check)
- run_quality_gate returns (errors, bug_refs) tuple to avoid
  redundant re-parsing in main()
- Regex compilation cached via functools.lru_cache
- Nox session no longer installs the full project (stdlib only)
- CI checkout uses fetch-depth: 0 for reliable merge-base resolution

Review-round 2 fixes applied:
- _diff_has_expected_fail_removal_for_bug now requires the removed
  line to contain both the expected-fail tag and the specific bug tag
  (fixes false positives when two bugs share the same test file)
- check_expected_fail_removed error messages use the correct tag
  prefix per file type (@tdd_bug_N for .feature, tdd_bug_N for .robot)
- bool values rejected by bug-number validation guards in
  find_tdd_tests, check_expected_fail_removed, and
  _diff_has_expected_fail_removal_for_bug
- File-read error handling catches UnicodeDecodeError alongside OSError
  (root-safe unreadable-file handling via invalid-UTF-8 test fixture)
- Temp directory cleanup added to after_scenario hook in environment.py
- 8 new Behave scenarios: bool type guards (2), co-located bug
  false-positive regression (1), run_quality_gate argument validation
  (3), and main() CLI entry point exit codes (2)

Review-round 3 fixes applied:
- Synthetic PR diff helper (_default_pr_diff_for_bug_refs) now
  auto-detects .robot vs .feature file type from the temp search
  tree and generates the matching diff format (fixes under-tested
  robot-format diff code path in multi-bug integration scenarios)
- check_expected_fail_removed test step now filters files by bug
  tag via find_tdd_tests before checking (matches production path
  in run_quality_gate)
- after_scenario temp directory cleanup no longer sets
  context.temp_dir = None (fixes cleanup conflict with
  cli_init_yes_flag_steps.py cleanup functions that run after hooks)
- 2 new Behave scenarios: multi-line PR description parsing, and
  non-string pr_diff type guard for run_quality_gate

ISSUES CLOSED: #629
2026-05-12 00:22:49 +01:00
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