|
3 | 3 | Release History |
4 | 4 | =============== |
5 | 5 |
|
| 6 | +0.2.1b7 |
| 7 | ++++++++ |
| 8 | + |
| 9 | +Build stage re-entry fix |
| 10 | +~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 11 | +* **QA remediation failure now retries on re-entry** — fixed a bug where |
| 12 | + ``mark_stage_generated()`` was called after each remediation attempt |
| 13 | + inside ``_run_stage_qa()``, leaving the stage with status ``"generated"`` |
| 14 | + even when QA subsequently failed. On re-entry, the stage was skipped |
| 15 | + instead of retried. Changed to ``mark_stage_validating()`` so failed |
| 16 | + stages remain in the retry list. |
| 17 | + |
| 18 | +QA checklist hardening |
| 19 | +~~~~~~~~~~~~~~~~~~~~~~~~ |
| 20 | +* **Aligned response_export_values directive** — QA checklist now requires |
| 21 | + ``response_export_values = ["*"]`` on EVERY ``azapi_resource``, matching |
| 22 | + the terraform agent's mandatory rule (was conditional on output usage). |
| 23 | +* **Added deploy.sh -state= flag check** — QA checklist now flags use of |
| 24 | + ``terraform output -state=`` which was removed in Terraform 1.9. |
| 25 | +* **Added UUID hex validation** — QA checklist now checks that UUID values |
| 26 | + in role assignment names contain only valid hex characters ``[0-9a-f]``. |
| 27 | + |
| 28 | +Full stage retry on QA exhaustion |
| 29 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 30 | +* **Full stage retry when QA remediation fails** -- when QA remediation |
| 31 | + exhausts all attempts for a stage, the build now retries the entire |
| 32 | + stage from scratch (clean artifacts, regenerate, QA) instead of |
| 33 | + stopping the build immediately. Previous QA findings are injected |
| 34 | + into the new generation prompt — framed as guidance rather than |
| 35 | + file-specific instructions — so the model avoids the same classes |
| 36 | + of mistakes on the fresh attempt. |
| 37 | + |
| 38 | + In practice, the same generation prompt produces passing code ~90% |
| 39 | + of the time. The remaining ~10% failure rate is stochastic — not a |
| 40 | + systematic prompt deficiency — meaning a fresh generation with |
| 41 | + knowledge of what went wrong almost always succeeds. Without this |
| 42 | + retry, that 10% forces the user to manually re-run the entire build, |
| 43 | + losing the progress of all previously generated stages. The retry |
| 44 | + doubles the token cost of one stage in the worst case, but saves |
| 45 | + the full cost of restarting a 16-stage build from scratch. |
| 46 | + |
| 47 | + Controlled by ``_MAX_FULL_STAGE_ATTEMPTS`` (default 2: 1 initial |
| 48 | + + 1 fresh retry). |
| 49 | + |
| 50 | +Generation prompt improvements |
| 51 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 52 | +* **Front-loaded remote state no-dead-code directive** — when upstream |
| 53 | + stages exist, a ``CROSS-STAGE DEPENDENCIES — NO DEAD CODE`` section |
| 54 | + now appears before the architecture context in the generation prompt, |
| 55 | + reducing unused ``terraform_remote_state`` data sources. |
| 56 | + |
| 57 | +Agent-level service filtering |
| 58 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 59 | +* **Agent governance checks now filter by service namespace** — added |
| 60 | + ``stage_services`` field to ``AgentContext``, populated by |
| 61 | + ``_agent_build_context()``. ``_apply_governance_check()`` now passes |
| 62 | + stage services to ``validate_response()``, reducing false positive |
| 63 | + anti-pattern warnings for irrelevant service namespaces. |
| 64 | + |
| 65 | +ReDoS fix in transform handlers |
| 66 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 67 | +* **Replaced nested-quantifier regex with brace counting** — extracted |
| 68 | + shared ``_find_azapi_blocks()`` helper and rewrote |
| 69 | + ``_add_response_export_values``, ``_add_resource_group_parent_id``, |
| 70 | + and ``_remove_private_endpoint_resources`` to use it. Eliminates |
| 71 | + potential exponential backtracking on pathological input. |
| 72 | + |
| 73 | +Test suite consolidation |
| 74 | +~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 75 | +* **Consolidated and enhanced unit test coverage** — migrated flat test |
| 76 | + files to a mirrored directory structure (1:1 test-to-source mapping), |
| 77 | + merged split test files, and removed ~114 duplicate tests across 10 |
| 78 | + files. Test suite reduced from 3,644 to 3,530 tests with zero loss |
| 79 | + of unique coverage. |
| 80 | + |
| 81 | +QA review continuation for large stages |
| 82 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 83 | +* **QA review collects complete response before evaluating** — when the |
| 84 | + QA review response is truncated (``finish_reason=length``), the build |
| 85 | + session now continues requesting until the full review is received, |
| 86 | + then evaluates the concatenated result. Uses the existing |
| 87 | + ``_execute_with_continuation()`` pattern with a review-specific |
| 88 | + continuation prompt that prevents the QA agent from generating code |
| 89 | + in the continuation. Conversation history is saved and restored |
| 90 | + around QA calls to prevent review messages from contaminating |
| 91 | + subsequent stage generation. |
| 92 | + |
6 | 93 | 0.2.1b6 |
7 | 94 | +++++++ |
8 | 95 |
|
|
0 commit comments