Files
Oleksandr Bezdieniezhnykh bf13549b32
ci/woodpecker/push/02-build-push Pipeline failed
[autodev] Update configuration and documentation for cycle-1
- Enhanced `.env.example` with detailed CMake build flags and replay-mode strategy flags for development and CI environments.
- Updated `.gitignore` to include a new deploy rollback bookmark.
- Revised `_docs/_autodev_state.md` to reflect the current task status and steps.
- Added new lessons to `_docs/LESSONS.md` regarding testing and architectural improvements.
- Documented changes in `_docs/02_document/deployment/ci_cd_pipeline.md` to reflect the relaxed OpenCV version pin.
- Updated test data documentation in `_docs/02_document/tests/test-data.md` to clarify fixture usage and paths.

This commit continues the cycle-1 documentation sync and addresses various configuration updates for improved clarity and functionality.
2026-05-20 08:05:35 +03:00

53 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ripple Log — Cycle 1 (End-of-Cycle Documentation Sync)
> Produced as part of greenfield Step 13 (Update Docs, document skill Task mode).
> Source: `_docs/_autodev_state.md` (`cycle: 1`).
> Date: 2026-05-19.
## Why this ripple log is not a per-file enumeration
The document skill's Task Step 0.5 normally walks each touched source file and adds the downstream importers to the refresh set. The conventional output is a one-line-per-affected-doc list:
```
- docs/components/02_ingestor.md — refreshed because src/ingestor/queue.py imports src/shared/serializer.py (changed by AZ-173)
```
That mode assumes an **incremental** task batch — typically 15 specs against an established codebase where most code is unchanged. Cycle 1 of this greenfield is the inverse: 165 done task specs across 14 components + 8 helpers + 18 contract surfaces + 9 system-level test docs, landed across 97 implementation batches between 2026-05-09 and 2026-05-17. Every component owns code that did not exist when the Plan baseline docs were written, and every cross-cutting helper has at least one consumer in every component.
Computing the literal reverse-dependency set in this state produces "essentially every component imports essentially every helper, and every component is consumed by `runtime_root.compose_root`". The output would be ~30 doc rows all saying "refreshed because cycle 1 landed it". That is not actionable.
## What the refresh set actually is for cycle 1
The Task workflow's three update levels each have a different effective scope this cycle:
| Update level | Effective scope this cycle | Status after this session |
|--------------|----------------------------|---------------------------|
| Task Step 1 — Module docs (`_docs/02_document/modules/`) | **N/A** — this project's Plan chose component-level granularity; no `modules/` folder exists. | No action. |
| Task Step 2 — Component docs (`components/<NN>_<cN>/{description,tests}.md` + `common-helpers/*.md` + `contracts/*/*.md` + `tests/*.md`) | All 14 product components, all 8 helpers, all 18 contract subfolders, all 9 system-level test docs. ~50+ files. | **DEFERRED** — to a follow-up `/document` task pass in a fresh session (see "Documentation reconciliation still owed" in `FINAL_report.md` § Cycle 1 Implementation Status). |
| Task Step 3 — System-level docs (`architecture.md`, `system-flows.md`, `data_model.md`, `glossary.md`, `module-layout.md`, `FINAL_report.md`) | Real cross-cutting drift: `_STRATEGY_REGISTRY` + `pre_constructed` patterns (AZ-591, AZ-618), KltRansac-as-production-default (AZ-332/333 BLOCKED), opencv pin relaxation (D-CROSS-CVE-1 leftover). | **PARTIAL**`FINAL_report.md` + `glossary.md` updated this session; `architecture.md` + `module-layout.md` + `system-flows.md` deferred. |
| Task Step 4 — Problem-level docs (`_docs/00_problem/*`) | No cycle-1 task changed an AC, restriction, or input-data parameter that the problem-level docs encode. | No action; revisit only if the deferred Step 2 / Step 3 surfaces a contradiction. |
## Files actually changed this session
- `_docs/02_document/FINAL_report.md` — Decision 9 revised (OpenCV pin); new "Cycle 1 Implementation Status" section appended before Quality Checklist Verification, listing composition-root architecture additions (`_STRATEGY_REGISTRY`, `pre_constructed`), BLOCKED tasks AZ-332 + AZ-333 with parked Tier-2 follow-ups, Step 11 Run Tests results, dependency pin drift, and the deferred-doc list.
- `_docs/02_document/glossary.md` — 5 new entries (alphabetical): `_STRATEGY_REGISTRY`, `airborne_bootstrap`, `KltRansac`, `pre_constructed`, `Tier-1 task / Tier-2 task`. Status line updated to note cycle-1 additions pending re-confirmation.
- `_docs/02_document/ripple_log_cycle1.md` — this file (new).
- `_docs/_autodev_state.md` — sub_step bump to `system-level-updates` with deferred-work note.
## Follow-up session — recommended ordering
1. **Architecture-level updates (continue Task Step 3)**`architecture.md` ADR-009 sibling notes for `_STRATEGY_REGISTRY` + `pre_constructed`; OpenCV mentions in § Technology stack / § Risks; KltRansac-as-production-default note in § C1. `module-layout.md` § "Composition Root" extension for `airborne_bootstrap` + `build_pre_constructed`. `system-flows.md` only if any flow's wiring narrative drifted (likely F2 takeoff + F8 reboot — the only flows where `compose_root` is the visible actor). **DONE** — commits `4f122b6` (FINAL_report + glossary) + `1ca9a59` (arch + module-layout).
2. **C1 component refresh**`components/01_c1_vio/description.md` should explicitly mark KltRansac as the cycle-1 production-default; reflect the Tier-2 status of OKVIS2 + VINS-Mono. **DONE** — uncommitted in working tree at handoff time; rolled into the cycle-1 doc-sync batch with C2/C2.5/C3.
3. **Other 13 components + 8 helpers** — task-by-task reconciliation, batched ~3 components per session.
- **Batch 1 (this session, 2026-05-19)**: C2 (VPR), C2.5 (Rerank), C3 (Matcher) — cycle-1 reality paragraphs + OpenCV pin relaxation (where applicable) + C3 xfeat Tier-2 follow-up note. Source of truth crossed: `runtime_root/airborne_bootstrap.py` (`_C*_STRATEGIES`, `AIRBORNE_REQUIRED_PRE_CONSTRUCTED_KEYS`, `C3_MATCHER_BUILD_FLAGS`), `runtime_root/vpr_factory.py`, per-component `config.py`.
- **Remaining (10 components)**: C3.5 (AdHoP), C4 (Pose), C5 (StateEstimator), C6 (TileCache), C7 (Inference), C8 (FC adapter), C10 (Provisioning), C11 (TileManager), C12 (OperatorOrchestrator), C13 (FDR).
- **Helpers (8 files)**: `imu_preintegrator`, `se3_utils`, `lightglue_runtime`, `wgs_converter`, `sha256_sidecar`, `engine_filename_schema`, `ransac_filter`, `descriptor_normaliser`.
4. **`tests/*.md`** — pick up cycle-1 deltas; Step 12 (Test-Spec Sync) already touched `traceability-matrix.md` and `resilience-tests.md` in the uncommitted working tree; the remaining test-doc surfaces (`blackbox-tests.md`, `performance-tests.md`, `resource-limit-tests.md`, `security-tests.md`, `tier2-jetson-testing.md`, `environment.md`, `test-data.md`) should be checked against the ~36 done Blackbox Tests task specs. **DONE** — 2026-05-19 session (autodev Step 13 phase 9 tests-doc-updates):
- **`environment.md`** — added § Harness Implementation Layout (47-evaluator `runner/helpers/` inventory, `runner/reporting/` CSV+evidence bundler from AZ-445/446, `fixtures/{injectors,sitl_replay,sitl_replay_builder}` layout, `e2e/jetson/` Tier-2 entrypoint); added § Replay-Mode Skip Gating (`E2E_SITL_REPLAY_DIR` + `sitl_replay_ready` marker from AZ-594/595/598/599); replaced raw-compose Tier-1 + Tier-2 examples with `e2e/docker/run-tier1.sh` + `e2e/jetson/run-tier2.sh` selector-parity wrappers (AZ-444 AC-1); aligned OpenCV pin reference to the cycle-1 `>=4.11.0.86,<4.12` floor with leftover cross-reference; fixed stale `tests/fixtures/` and `tests/runner` paths to `e2e/fixtures/` and `e2e/runner`.
- **`test-data.md`** — added rows for `sitl-replay-fixture-p01`, `sitl-replay-fixture-p02`, and `fc-proxy-schedule` (AZ-596/598/599); revised `cve-jpeg-fixture` row to reflect the relaxed cycle-1 OpenCV pin band with leftover cross-reference; added § Data Isolation paragraph for committed-fixture mode; fixed stale `tests/fixtures/` paths to `e2e/fixtures/`.
- **`security-tests.md`** — NFT-SEC-04 pin assertion + Pass Criteria updated to the cycle-1 relaxed band with leftover cross-reference; replay condition documented.
- **`ci_cd_pipeline.md`** (deployment doc — adjacent hygiene) — OpenCV pin-gate row revised to the relaxed band with replay condition.
- **Unchanged** — `blackbox-tests.md`, `performance-tests.md`, `resilience-tests.md`, `resource-limit-tests.md`, `tier2-jetson-testing.md`, `traceability-matrix.md`. Step 12 (Test-Spec Sync) already aligned these with implementation; no further gaps found against the ~50 done test task specs (AZ-406-446, AZ-594-600, AZ-618-619). `tests/e2e/replay/test_derkachi_1min.py` path references in `resilience-tests.md` + `tier2-jetson-testing.md` verified — file exists at that path at repo root, distinct from the `e2e/tests/` blackbox harness.
The component-level pass (item 2 + 3) is the bulk of the work. Each component-batch session should re-read this ripple log + the relevant component description.md + the task specs in `_docs/02_tasks/done/AZ-*_<component>*.md` + the actual source in `src/gps_denied_onboard/components/<c>/`. Per-batch session pattern proven this cycle: read `runtime_root/airborne_bootstrap.py` `_C*_STRATEGIES` + `AIRBORNE_REQUIRED_PRE_CONSTRUCTED_KEYS` rows for each slug, cross-check against component `config.py` defaults, then add (a) a "Cycle-1 operational reality" paragraph in § 1 of `description.md`, (b) an OpenCV pin row in § 5 if the component imports `cv2`, (c) a "Cycle-1 Tier-2 follow-up dependencies" subsection in § 7 only when a strategy exists in code but is parked from the airborne registry.