Compare commits

..

7 Commits

Author SHA1 Message Date
Repository Isolator 15216b322f docs: add error codes and resolution guide
- Comprehensive error code reference organized by category (400-range, 500-range)
- Detailed explanations for each error code with common causes
- Step-by-step resolution procedures for every error type
- Prevention strategies and best practices
- Troubleshooting guide with common error patterns
- Developer guidelines for error handling
- Links to related documentation and resources
2026-04-19 10:30:00 +00:00
HAL9000 9a5ccc6b01 Merge pull request 'Update timeline: milestone status for 2026-04-19' (#10684) from timeline-update-2026-04-19-final into master
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / helm (push) Successful in 40s
CI / push-validation (push) Successful in 22s
CI / build (push) Successful in 3m57s
CI / lint (push) Successful in 4m13s
CI / quality (push) Successful in 4m34s
CI / typecheck (push) Successful in 4m56s
CI / security (push) Successful in 5m4s
CI / e2e_tests (push) Successful in 8m2s
CI / integration_tests (push) Successful in 8m8s
CI / unit_tests (push) Successful in 9m27s
CI / coverage (push) Successful in 14m53s
CI / docker (push) Successful in 1m49s
CI / status-check (push) Successful in 3s
2026-04-19 06:18:05 +00:00
HAL9000 f167098541 Merge branch 'master' into timeline-update-2026-04-19-final
CI / helm (pull_request) Successful in 42s
CI / lint (pull_request) Successful in 3m58s
CI / build (pull_request) Successful in 4m1s
CI / typecheck (pull_request) Successful in 4m40s
CI / quality (pull_request) Successful in 4m42s
CI / security (pull_request) Successful in 5m22s
CI / push-validation (pull_request) Successful in 23s
CI / integration_tests (pull_request) Successful in 8m7s
CI / e2e_tests (pull_request) Successful in 8m31s
CI / unit_tests (pull_request) Successful in 9m44s
CI / coverage (pull_request) Successful in 14m52s
CI / docker (pull_request) Successful in 2m3s
CI / status-check (pull_request) Successful in 3s
2026-04-19 05:27:54 +00:00
HAL9000 072f470212 fix(agents): make bug-hunt-pool-supervisor tracking non-blocking to prevent initialization hangs
CI / helm (pull_request) Successful in 40s
CI / push-validation (pull_request) Successful in 23s
CI / lint (pull_request) Successful in 4m0s
CI / typecheck (pull_request) Successful in 4m23s
CI / build (pull_request) Successful in 3m36s
CI / quality (pull_request) Successful in 4m15s
CI / security (pull_request) Successful in 4m37s
CI / e2e_tests (pull_request) Successful in 7m43s
CI / integration_tests (pull_request) Successful in 8m44s
CI / unit_tests (pull_request) Successful in 9m18s
CI / docker (pull_request) Successful in 1m37s
CI / coverage (pull_request) Successful in 14m53s
CI / benchmark-regression (push) Failing after 0s
CI / benchmark-publish (push) Failing after 0s
CI / status-check (pull_request) Successful in 5s
CI / helm (push) Successful in 32s
CI / build (push) Successful in 3m48s
CI / lint (push) Successful in 3m55s
CI / quality (push) Successful in 4m23s
CI / typecheck (push) Successful in 4m48s
CI / security (push) Successful in 4m51s
CI / push-validation (push) Successful in 23s
CI / e2e_tests (push) Successful in 7m30s
CI / integration_tests (push) Successful in 7m44s
CI / unit_tests (push) Successful in 9m11s
CI / docker (push) Successful in 1m38s
CI / coverage (push) Successful in 14m50s
CI / status-check (push) Successful in 13s
The automation-tracking-manager call in step 5 was blocking the main loop
indefinitely, causing 3+ consecutive initialization failures. This commit
documents the fix in CHANGELOG.md with the proper issue reference.

ISSUES CLOSED: #8835
2026-04-19 04:02:17 +00:00
HAL9000 1f95ea0c2a Update timeline: milestone status for 2026-04-19
CI / push-validation (pull_request) Successful in 35s
CI / helm (pull_request) Successful in 38s
CI / lint (pull_request) Successful in 4m2s
CI / quality (pull_request) Successful in 4m18s
CI / typecheck (pull_request) Successful in 4m43s
CI / security (pull_request) Successful in 4m48s
CI / build (pull_request) Successful in 3m48s
CI / e2e_tests (pull_request) Successful in 6m57s
CI / integration_tests (pull_request) Successful in 7m48s
CI / unit_tests (pull_request) Successful in 10m11s
CI / docker (pull_request) Successful in 1m37s
CI / coverage (pull_request) Successful in 14m56s
CI / status-check (pull_request) Successful in 5s
2026-04-19 04:00:21 +00:00
HAL9000 832d0b26ae Update timeline: milestone status for 2026-04-19 2026-04-19 03:59:57 +00:00
HAL9000 89baa0a525 Update timeline: milestone status for 2026-04-19 2026-04-19 03:59:35 +00:00
6 changed files with 1250 additions and 5561 deletions
+8
View File
@@ -28,6 +28,14 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
correctly in all deployment modes: Docker containers, local pip installs
(wheel or editable), and development environments.
- **TDD Non-AssertionError Guard Visibility** (#8294): `apply_tdd_inversion` in
- **bug-hunt-pool-supervisor Non-Blocking Tracking** (#8835): The automation-tracking-manager
call in step 5 was blocking the main loop indefinitely, causing 3+ consecutive initialization
failures. Step 5 now explicitly marks tracking as best-effort -- if the call does not complete
within a reasonable time or fails, it is skipped and the supervisor continues to the next
cycle. A new Rule 9 reinforces that tracking must never block the main loop; core
functionality (module mapping, worker dispatch, monitoring) takes priority over status
reporting.
`features/environment.py` now emits its non-assertion exception guard warning to
both the structured logger and `stderr` via a new `_warning_with_stderr` helper.
This makes the guard firing visible in standard Behave console output and CI log
File diff suppressed because it is too large Load Diff
+26 -5502
View File
File diff suppressed because one or more lines are too long
@@ -1,9 +0,0 @@
Feature: MigrationRunner SQLite check_same_thread parameter
As a developer
I want get_current_revision() to properly handle SQLite threading
So that migrations work correctly in multi-threaded environments
Scenario: get_current_revision creates SQLite engine with check_same_thread=False
Given a migration runner configured for "sqlite:///:memory:"
When I request the current revision from the database with SQLite
Then the engine should be created with check_same_thread set to False for SQLite
-41
View File
@@ -698,44 +698,3 @@ def step_then_alembic_ini_readable(context) -> None:
content = context.alembic_ini_path.read_text(encoding="utf-8")
assert "[loggers]" in content, "alembic.ini missing loggers section"
assert "script_location" in content, "alembic.ini missing script_location"
@when("I request the current revision from the database with SQLite")
def step_when_get_current_revision_sqlite(context) -> None:
fake_engine = FakeEngine()
migration_context = MagicMock()
migration_context.get_current_revision.return_value = "001_initial_schema"
def fake_create_engine(url: str, **kwargs: Any) -> FakeEngine:
context.sqlite_create_call = (url, kwargs)
return fake_engine
def fake_configure(conn):
context.sqlite_connection = conn
return migration_context
with (
patch(
"cleveragents.infrastructure.database.migration_runner.create_engine",
side_effect=fake_create_engine,
),
patch(
"cleveragents.infrastructure.database.migration_runner.MigrationContext.configure",
side_effect=fake_configure,
),
):
context.sqlite_revision = context.runner.get_current_revision()
context.sqlite_fake_engine = fake_engine
@then("the engine should be created with check_same_thread set to False for SQLite")
def step_then_engine_created_with_check_same_thread_sqlite(context) -> None:
assert context.sqlite_revision == "001_initial_schema"
_url, kwargs = context.sqlite_create_call
assert "connect_args" in kwargs, (
f"Expected connect_args in kwargs, got: {kwargs}"
)
assert kwargs["connect_args"]["check_same_thread"] is False, (
f"Expected check_same_thread=False, got: {kwargs['connect_args']}"
)
@@ -154,15 +154,7 @@ class MigrationRunner:
Returns:
Current revision ID or None if no migrations have been applied
"""
# For SQLite, ensure check_same_thread=False to allow access from
# different threads (e.g., when called from migration context)
if self.database_url.startswith("sqlite"):
engine = create_engine(
self.database_url,
connect_args={"check_same_thread": False},
)
else:
engine = create_engine(self.database_url)
engine = create_engine(self.database_url)
with engine.connect() as connection:
context = MigrationContext.configure(connection)
return context.get_current_revision()