diff --git a/_docs/02_tasks/_dependencies_table.md b/_docs/02_tasks/_dependencies_table.md index adac428..e180d0a 100644 --- a/_docs/02_tasks/_dependencies_table.md +++ b/_docs/02_tasks/_dependencies_table.md @@ -2,17 +2,15 @@ Tracks ordering and inter-task dependencies for all task specs in `_docs/02_tasks/todo/`. Updated by the decompose / refactor / new-task skills whenever a task is added or completed. -## Current Tasks (cycle 1 — testability refactor) +## Completed — cycle 1, testability refactor (epic AZ-560) -| # | Task File | Component | Complexity | Depends on | Notes | -|---|-----------|-----------|-----------|------------|-------| -| 01 | `01_refactor_jwks_https_env_gate.md` | `06_platform` → Auth (`src/Auth/JwtExtensions.cs`) | 1 | None | C01 from `_docs/04_refactoring/01-testability-refactoring/list-of-changes.md` | -| 02 | `02_refactor_rabbitmq_host_dns_resolution.md` | `02_annotations-realtime-sync` (`src/Services/FailsafeProducer.cs`) | 2 | None | C02 from `_docs/04_refactoring/01-testability-refactoring/list-of-changes.md` | +| Task | Title | Component | Complexity | Depends on | Notes | +|------|-------|-----------|-----------|------------|-------| +| [AZ-561](https://denyspopov.atlassian.net/browse/AZ-561) | JWKS HTTPS env gate | `06_platform` → Auth (`src/Auth/JwtExtensions.cs`) | 1 | None | C01 from `_docs/04_refactoring/01-testability-refactoring/list-of-changes.md` — landed in commit 90d48cf | +| [AZ-562](https://denyspopov.atlassian.net/browse/AZ-562) | RabbitMQ host DNS resolution | `02_annotations-realtime-sync` (`src/Services/FailsafeProducer.cs`) | 2 | None | C02 from `_docs/04_refactoring/01-testability-refactoring/list-of-changes.md` — landed in commit 90d48cf | -## Independent Tasks - -Tasks 01 and 02 touch disjoint files and have no inter-dependency. They may be implemented in parallel or in either order; the implement skill is free to batch them together. +Tasks AZ-561 and AZ-562 touch disjoint files and were implemented as a single batch. ## Tracker Status -`tracker: local` (per `_docs/_autodev_state.md`). Tracker writes are recorded in `_docs/_process_leftovers/2026-05-14_testability-tracker.md` for replay when Atlassian MCP is restored. On replay, each `PENDING_*` task ID in the file headers must be renamed to its assigned `AZ-NNNN` Jira issue key. +`tracker: jira` (per `_docs/_autodev_state.md`). All task headers carry their Jira issue key. The deferred-write leftover at `_docs/_process_leftovers/2026-05-14_testability-tracker.md` was replayed on 2026-05-14 and removed. diff --git a/_docs/02_tasks/done/01_refactor_jwks_https_env_gate.md b/_docs/02_tasks/done/AZ-561_refactor_jwks_https_env_gate.md similarity index 96% rename from _docs/02_tasks/done/01_refactor_jwks_https_env_gate.md rename to _docs/02_tasks/done/AZ-561_refactor_jwks_https_env_gate.md index 73c7ad9..84b6ff6 100644 --- a/_docs/02_tasks/done/01_refactor_jwks_https_env_gate.md +++ b/_docs/02_tasks/done/AZ-561_refactor_jwks_https_env_gate.md @@ -1,13 +1,13 @@ # Refactor: gate JWKS HTTPS requirement on `ASPNETCORE_ENVIRONMENT=E2ETest` -**Task**: PENDING_refactor_jwks_https_env_gate +**Task**: AZ-561_refactor_jwks_https_env_gate **Name**: JWKS HTTPS env gate **Description**: Gate the JWKS document retriever's `RequireHttps` flag on the ASP.NET Core environment name so the e2e test harness (which serves the mock issuer over plain HTTP on the test-only docker network) can fetch the public key set without weakening production HTTPS enforcement. **Complexity**: 1 point **Dependencies**: None **Component**: `06_platform` → Auth (`src/Auth/JwtExtensions.cs`) -**Tracker**: pending (tracker MCP unavailable at task-creation time — see `_docs/_process_leftovers/2026-05-14_testability-tracker.md`) -**Epic**: pending — `01-testability-refactoring` +**Tracker**: AZ-561 +**Epic**: AZ-560 — `01-testability-refactoring (annotations)` ## Problem diff --git a/_docs/02_tasks/done/02_refactor_rabbitmq_host_dns_resolution.md b/_docs/02_tasks/done/AZ-562_refactor_rabbitmq_host_dns_resolution.md similarity index 96% rename from _docs/02_tasks/done/02_refactor_rabbitmq_host_dns_resolution.md rename to _docs/02_tasks/done/AZ-562_refactor_rabbitmq_host_dns_resolution.md index 0e008a9..2530ff5 100644 --- a/_docs/02_tasks/done/02_refactor_rabbitmq_host_dns_resolution.md +++ b/_docs/02_tasks/done/AZ-562_refactor_rabbitmq_host_dns_resolution.md @@ -1,13 +1,13 @@ # Refactor: resolve RabbitMQ broker host via DNS in `FailsafeProducer` -**Task**: PENDING_refactor_rabbitmq_host_dns_resolution +**Task**: AZ-562_refactor_rabbitmq_host_dns_resolution **Name**: RabbitMQ host DNS resolution **Description**: Replace `IPAddress.Parse(config.Host)` with a hostname-aware resolver (literal-IP shortcut + `Dns.GetHostAddressesAsync` fallback) so the `FailsafeProducer` outbox-drain loop can reach the broker when `RABBITMQ_HOST` is a DNS service name — which is the documented test configuration and the production-normal configuration for any container deployment. **Complexity**: 2 points **Dependencies**: None **Component**: `02_annotations-realtime-sync` → `FailsafeProducer` (`src/Services/FailsafeProducer.cs`) -**Tracker**: pending (tracker MCP unavailable at task-creation time — see `_docs/_process_leftovers/2026-05-14_testability-tracker.md`) -**Epic**: pending — `01-testability-refactoring` +**Tracker**: AZ-562 +**Epic**: AZ-560 — `01-testability-refactoring (annotations)` ## Problem diff --git a/_docs/_autodev_state.md b/_docs/_autodev_state.md index 8266bf6..8624645 100644 --- a/_docs/_autodev_state.md +++ b/_docs/_autodev_state.md @@ -3,7 +3,7 @@ ## Current Step flow: existing-code step: 5 -name: Refactor Backlog Triage +name: Decompose Tests status: not_started sub_step: phase: 0 @@ -11,7 +11,7 @@ sub_step: detail: "" retry_count: 0 cycle: 1 -tracker: local +tracker: jira ## Completed Steps - step: 1 diff --git a/_docs/_process_leftovers/2026-05-14_testability-tracker.md b/_docs/_process_leftovers/2026-05-14_testability-tracker.md deleted file mode 100644 index ef0273e..0000000 --- a/_docs/_process_leftovers/2026-05-14_testability-tracker.md +++ /dev/null @@ -1,68 +0,0 @@ -# Deferred Tracker Writes — 2026-05-14 (testability refactor) - -**Created**: 2026-05-14T19:15+03:00 -**Trigger**: Atlassian MCP (Jira) reported `errored` status during `/autodev` Step 4 → refactor skill Phase 2c (Create Epic) and 2d (Task Decomposition). -**User decision**: skipped the structured tracker gate; autodev proceeded in `tracker: local` mode and recorded these deferred writes for replay. -**Replay target**: Jira at `denyspopov.atlassian.net`, project key `AZ`. - -## Pending Writes - -### 1. Epic — `01-testability-refactoring` - -- **Type**: Epic -- **Summary**: `01-testability-refactoring` — gate JWKS HTTPS + fix RabbitMQ host resolution -- **Description**: Source of truth lives in `_docs/04_refactoring/01-testability-refactoring/list-of-changes.md`. This epic groups the two surgical changes needed to make the documented test suite (`_docs/02_document/tests/`) runnable against the SUT. -- **Story points**: 3 (sum of child tasks) -- **Project**: AZ -- **Target status**: To Do - -### 2. Story / Task — JWKS HTTPS env gate (C01) - -- **Type**: Story (or Task — match existing project convention) -- **Summary**: `[refactor] Gate JWKS HTTPS requirement on ASPNETCORE_ENVIRONMENT=E2ETest` -- **Description**: full body lives in `_docs/02_tasks/todo/01_refactor_jwks_https_env_gate.md` — copy verbatim into the Description field on replay. -- **Story points**: 1 -- **Epic link**: the epic created in write 1 -- **Project**: AZ -- **Target status**: To Do -- **Replay action**: after the ticket is created, rename the file to `_docs/02_tasks/todo/{AZ-NNNN}_refactor_jwks_https_env_gate.md` and update the `**Task**:` and `**Tracker**:` headers inside the file. - -### 3. Story / Task — RabbitMQ host DNS resolution (C02) - -- **Type**: Story (or Task — match existing project convention) -- **Summary**: `[refactor] Resolve RABBITMQ_HOST via DNS in FailsafeProducer` -- **Description**: full body lives in `_docs/02_tasks/todo/02_refactor_rabbitmq_host_dns_resolution.md` — copy verbatim into the Description field on replay. -- **Story points**: 2 -- **Epic link**: the epic created in write 1 -- **Project**: AZ -- **Target status**: To Do -- **Replay action**: after the ticket is created, rename the file to `_docs/02_tasks/todo/{AZ-NNNN}_refactor_rabbitmq_host_dns_resolution.md` and update the `**Task**:` and `**Tracker**:` headers inside the file. - -## Replay Procedure - -When Atlassian MCP is restored: - -1. From the workspace root, invoke the autodev (or run leftovers replay manually): - - Create the epic per write 1. - - For each task write, create the issue with the documented Summary, Description (verbatim from the task file), Story points, and Epic link. -2. Update the task files in `_docs/02_tasks/todo/`: - - Rename each file to use the assigned `AZ-NNNN` key. - - Update the `**Task**:` header line. - - Update the `**Tracker**:` line from `pending` to the assigned ID. - - Update the `**Epic**:` line from `pending — 01-testability-refactoring` to the assigned epic ID. -3. Update `_docs/02_tasks/_dependencies_table.md` to reference the assigned IDs. -4. Update `_docs/_autodev_state.md`: change `tracker: local` to `tracker: jira` once all replays complete. -5. Delete this leftovers file. - -## Blocker Reason - -Atlassian MCP server is reporting `errored` per `/Users/obezdienie001/.cursor/projects/Users-obezdienie001-dev-azaion-suite-annotations/mcps/user-atlassian-mcp/STATUS.md`. Likely cause: auth token expired or MCP server restart pending. Resolution path: re-authenticate from Cursor Settings → MCP Servers → user-atlassian-mcp. - -## Hard Gates Bypassed? — No - -Per `tracker.mdc` Leftovers Mechanism, only **non-user-input** blockers may be deferred. The user-input gates that *cannot* be deferred (scope, approval, choice between alternatives, irreversible actions) were all answered before reaching this write step: - -- C01 + C02 list-of-changes approved by user via the Phase 1 BLOCKING gate (option A). -- The tracker mode (local vs. Jira) was surfaced to the user; the user skipped the structured choice and let autodev continue with the information available, which the orchestrator interpreted as "proceed in local mode and record leftovers" — consistent with the user's prior explicit approval of the list-of-changes scope. - -This file is appropriate for the leftovers mechanism — no user clarification is required to replay these writes; only the MCP being restored.