Files
annotations/_docs/_process_leftovers/2026-05-14_testability-tracker.md
T
Oleksandr Bezdieniezhnykh 13e9731a8f docs: Step 4 testability refactor — list-of-changes + 2 task specs
autodev existing-code Step 4 (Code Testability Revision) — invoked
refactor skill in guided mode. Phase 0 (baseline) + Phase 1 (discovery
+ validation) + Phase 2 (analysis + task decomposition) artifacts.

list-of-changes.md identifies two surgical fixes required before the
67-scenario blackbox suite (already specified in _docs/02_document/
tests/) can run against the SUT:

  C01 — env-gate JWKS RequireHttps on ASPNETCORE_ENVIRONMENT=E2ETest
       (architecture.md Open Risks Section 6 prescribes this; the
       mock issuer in e2e/docker-compose.test.yml serves plain HTTP)

  C02 — DNS-resolve RABBITMQ_HOST in FailsafeProducer.ProcessQueue
       (IPAddress.Parse currently throws on every drain cycle when
       host is a service name; latent production-relevant bug, not
       just a test-env issue)

Two task specs in _docs/02_tasks/todo/ (3 story points total).
Independent — no inter-task dependency.

Tracker: local — Atlassian MCP reported errored at task-creation
time. Deferred Jira writes (epic + 2 tickets) recorded in
_docs/_process_leftovers/2026-05-14_testability-tracker.md for
replay when MCP is restored.

Items explicitly deferred to Step 8 Refactor are enumerated in
list-of-changes.md "Deferred to Step 8 Refactor" — including the
FailsafeProducer static helper (F3), the JWKS GetAwaiter().GetResult()
hot path, RB-05/06/08 backlog items, and the MediaService ffprobe
empty-catch.

State: Step 4 in_progress, sub_step 3 (phase-2-task-decomposition).
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-14 20:19:27 +03:00

4.3 KiB

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.