Technical Audit Remediation — WealthLedger — 2026-10-11 #23

Open
opened 2026-10-11 21:40:00 +03:00 by codex-bot · 1 comment
Owner

Цель

Исправить подтверждённые correctness/recovery defects и завершить переход hourly/local/online data flow у существующих owners. Этот Issue — навигация/управление, implementation выполняется связанными задачами.

Executive assessment

Все 18 источников рассмотрены: 125 специализированных IDs + 65 нормализованных прежних записей = 190. 39 engineering topics → 43 working Issues (40 новых, 3 reused); этот navigation Issue отдельно. Всего создано 41 новое Issue; participating Issues 44. Два P1, 33 working P2, 8 P3, P0 нет. Severity основана на механизме, не числе повторов. Runtime incidents/ущерб не измерены.

Основа modular monolith/FSD/Query/SQLite/exact money/fenced publication сохраняется. Главные риски: ложный success/stalled durable hourly work и блокирование нового полного forecast старым overlap. Принятые product решения: main #22 comment; исходная задача не переписана.

Git evidence

17 оригиналов опубликованы byte-for-byte; все 18 originals остаются локально. АудитЭффективности.md publication blocked: private session identifiers/titles в публичный Git не отправлены. RC-01–18 учтены без private metadata. Нужен подходящий приватный Git location либо явное owner решение допустимости публикации; original не редактируется. Redacted Gitleaks и privacy review выполнены.

Milestones

main · backend · frontend · specs · docs.
Без due dates/version bump. Existing organization priority/kind labels переиспользованы; 8 новых используемых repo labels. Новые assignees не угадываются; original reused bodies/assignees сохранены, audit criteria добавлены comments.

Этап 1 — небольшое удешевление существующих gates

Не задерживает P1 и не является dependency runtime fixes.

Этап 2 — P1 correctness/recovery

Этап 3 — финансовая свежесть, read ownership, UI recovery

Этап 4 — code-only legacy retirement

Этап 5 — remaining distinguishing tests

Этап 6 — narrow tooling/DRY/data-flow simplification

Этап 7 — current authority/navigation/docs

Native dependency graph

  • backend #53 → backend #55: failed-existing-calendar publication/fallback proof до force.
  • frontend #63 → backend #55: delivered original window/identity.
  • specs #2 → specs #4: только исходные native toolchain completion criteria; Git-range portion независим.
    Все три native edges установлены и прочитаны обратно. Cycles нет. Прочий порядок — рекомендация, не technical blockers.

KEEP/NO_ACTION и закрытие

190-record triage: FIX31, REFACTOR0, SIMPLIFY20, DELETE8, INVESTIGATE7, KEEP40, DUPLICATE67, NO_ACTION17. Непривязанных actionable findings 0. Два mapped external-evidence findings ждут private owner input: RISK-008/RC-17. Publication blocker одного original явно открыт.

Correctness first; simplify before adding abstractions; preserve proven guarantees. Exact money, server validation, auth/CAS/replay/transaction/source fences, independent CI/semantic proof и accessibility сохраняются. Original reports, historical ADR/OpenSpec archives и standard lifecycle skills неизменны. Не создавать change автоматически, новую infrastructure/registry/validators или release bump.

Статусы принадлежат Gitea; этот список не второй status checklist. Программа закрывается после evidence-based acceptance всех actionable Issues, explicit investigation/KEEP/NO_ACTION dispositions и снятия либо явно принятого publication blocker. Создание Issue не означает исправление. Final diff gates исполняют future implementation owners; planning application verify/build/tests/codegen/migration не запускал.

<!-- wealthledger-audit:2026-10-11:campaign --> ## Цель Исправить подтверждённые correctness/recovery defects и завершить переход hourly/local/online data flow у существующих owners. Этот Issue — навигация/управление, implementation выполняется связанными задачами. ## Executive assessment Все 18 источников рассмотрены: 125 специализированных IDs + 65 нормализованных прежних записей = 190. 39 engineering topics → 43 working Issues (40 новых, 3 reused); этот navigation Issue отдельно. Всего создано 41 новое Issue; participating Issues 44. Два P1, 33 working P2, 8 P3, P0 нет. Severity основана на механизме, не числе повторов. Runtime incidents/ущерб не измерены. Основа modular monolith/FSD/Query/SQLite/exact money/fenced publication сохраняется. Главные риски: ложный success/stalled durable hourly work и блокирование нового полного forecast старым overlap. Принятые product решения: [main #22 comment](https://git.personal.ksv741.ru/WealthLedger/main/issues/22#issuecomment-831); исходная задача не переписана. ## Git evidence - [Архив и исследованные revisions](https://git.personal.ksv741.ru/WealthLedger/main/src/commit/d07fbfabb1295780952a554185989d2d5b5c8349/audits/2026-10-11/README.md). - [Полный triage, mapping и KEEP/NO_ACTION](https://git.personal.ksv741.ru/WealthLedger/main/src/commit/d07fbfabb1295780952a554185989d2d5b5c8349/audits/2026-10-11/triage.md). - [Immutable original-report commit](https://git.personal.ksv741.ru/WealthLedger/main/src/commit/d07fbfabb1295780952a554185989d2d5b5c8349/audits/2026-10-11/reports). 17 оригиналов опубликованы byte-for-byte; все 18 originals остаются локально. `АудитЭффективности.md` publication blocked: private session identifiers/titles в публичный Git не отправлены. RC-01–18 учтены без private metadata. Нужен подходящий приватный Git location либо явное owner решение допустимости публикации; original не редактируется. Redacted Gitleaks и privacy review выполнены. ## Milestones [main](https://git.personal.ksv741.ru/WealthLedger/main/milestone/1) · [backend](https://git.personal.ksv741.ru/WealthLedger/backend/milestone/4) · [frontend](https://git.personal.ksv741.ru/WealthLedger/frontend/milestone/3) · [specs](https://git.personal.ksv741.ru/WealthLedger/specs/milestone/5) · [docs](https://git.personal.ksv741.ru/WealthLedger/docs/milestone/2). Без due dates/version bump. Existing organization priority/kind labels переиспользованы; 8 новых используемых repo labels. Новые assignees не угадываются; original reused bodies/assignees сохранены, audit criteria добавлены comments. ## Этап 1 — небольшое удешевление существующих gates Не задерживает P1 и не является dependency runtime fixes. - [frontend #60 — native OpenAPI check, P3](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/60). - [backend #66 — single preparation/local gates](https://git.personal.ksv741.ru/WealthLedger/backend/issues/66). - [frontend #62 — local gates/lean fail-closed hook](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/62). - [main #24 — generic applicability/evidence/approval/bootstrap](https://git.personal.ksv741.ru/WealthLedger/main/issues/24). - [specs #2, reused — meaningful committed CI input](https://git.personal.ksv741.ru/WealthLedger/specs/issues/2#issuecomment-1067). ## Этап 2 — P1 correctness/recovery - **[backend #56 — hourly terminal lifecycle/recovery, P1](https://git.personal.ksv741.ru/WealthLedger/backend/issues/56)**: outer exception не succeeded, child/parent persistence recovery и real coordinator proof. - **[backend #55 — latest complete forecast/identity/filtering, P1](https://git.personal.ksv741.ru/WealthLedger/backend/issues/55)**: complete W1 публикуется, failed update сохраняет W0, narrow/disjoint read не переименовывает saved basis. - [backend #54 — long-walk skipped-term eligibility](https://git.personal.ksv741.ru/WealthLedger/backend/issues/54). P1 между собой независимы. Calendar #53 и финальный Events #63 требуют forecast #55 boundary/artifact, а не блокируют его. ## Этап 3 — финансовая свежесть, read ownership, UI recovery - [backend #53 — mutable calendars](https://git.personal.ksv741.ru/WealthLedger/backend/issues/53). - [backend #57 — local Income/narrow Ledger/planner](https://git.personal.ksv741.ru/WealthLedger/backend/issues/57). - [backend #58 — relevant hourly resource meta](https://git.personal.ksv741.ru/WealthLedger/backend/issues/58). - [backend #59 — online permanent token translation](https://git.personal.ksv741.ru/WealthLedger/backend/issues/59). - [backend #60 — password UTF-8 policy/artifact](https://git.personal.ksv741.ru/WealthLedger/backend/issues/60). - [backend #61 — auth role/expiry/cookie regression](https://git.personal.ksv741.ru/WealthLedger/backend/issues/61). - [backend #70 — approved screener constraints](https://git.personal.ksv741.ru/WealthLedger/backend/issues/70). - [frontend #54 — Query lifecycle/eligibility/API pruning](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/54). - [frontend #55 — investment source/client feedback](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/55). - [frontend #56 — pending auth navigation](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/56). - [frontend #57 — banking read recovery](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/57). - [frontend #59 — CURRENCY visibility decision](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/59). - [frontend #63 — Events contract/oracles](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/63). - [backend #73 — actual auth perimeter investigation](https://git.personal.ksv741.ru/WealthLedger/backend/issues/73). - [main #25 — private provider credential investigation](https://git.personal.ksv741.ru/WealthLedger/main/issues/25). Unverified hypotheses не представлены как runtime incidents. Cold Income/cadence/CURRENCY/Events/MOEX/product decisions явно scoped в Issues. ## Этап 4 — code-only legacy retirement - [backend #62 — manual→exclusive discovery producer closure](https://git.personal.ksv741.ru/WealthLedger/backend/issues/62). - [backend #64 — support/retirement public status/observe investigation](https://git.personal.ksv741.ru/WealthLedger/backend/issues/64). Reader compatibility/FK/source guarantees остаются: #64 не блокирует безопасное удаление dead writers. ## Этап 5 — remaining distinguishing tests - [backend #63 — true source races/post-write rollback/completion](https://git.personal.ksv741.ru/WealthLedger/backend/issues/63). - [backend #65 — per-case HTTP data и scheduler isolation](https://git.personal.ksv741.ru/WealthLedger/backend/issues/65). - [frontend #61 — loser client settlement barriers](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/61). Regression proof P1 входит непосредственно в P1 acceptance, не откладывается до этого этапа. ## Этап 6 — narrow tooling/DRY/data-flow simplification - [backend #4, reused — unused compiler deps](https://git.personal.ksv741.ru/WealthLedger/backend/issues/4#issuecomment-1083). - [backend #67 — compatible SQLite driver](https://git.personal.ksv741.ru/WealthLedger/backend/issues/67). - [backend #68 — bounded banking page relations](https://git.personal.ksv741.ru/WealthLedger/backend/issues/68). - [backend #69 — one publicInstrument projection, P3](https://git.personal.ksv741.ru/WealthLedger/backend/issues/69). - [backend #71 — independent bond prices/detail waterfall](https://git.personal.ksv741.ru/WealthLedger/backend/issues/71). - [backend #72 — small real runner-regression payload, P3](https://git.personal.ksv741.ru/WealthLedger/backend/issues/72). - [frontend #58 — payment-system tuple, P3](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/58). ## Этап 7 — current authority/navigation/docs - [specs #1, reused — documentation/task-first authority](https://git.personal.ksv741.ru/WealthLedger/specs/issues/1#issuecomment-1080). - [specs #28 — capability index](https://git.personal.ksv741.ru/WealthLedger/specs/issues/28). - [specs #29 — original completion disposition](https://git.personal.ksv741.ru/WealthLedger/specs/issues/29). - [docs #34 — current hourly/local/online explanation](https://git.personal.ksv741.ru/WealthLedger/docs/issues/34). - P3 title edit proof, independently shipped: [frontend #64](https://git.personal.ksv741.ru/WealthLedger/frontend/issues/64), [backend #74](https://git.personal.ksv741.ru/WealthLedger/backend/issues/74), [specs #30](https://git.personal.ksv741.ru/WealthLedger/specs/issues/30), [docs #35](https://git.personal.ksv741.ru/WealthLedger/docs/issues/35). ## Native dependency graph - backend #53 → [backend #55](https://git.personal.ksv741.ru/WealthLedger/backend/issues/55): failed-existing-calendar publication/fallback proof до force. - frontend #63 → [backend #55](https://git.personal.ksv741.ru/WealthLedger/backend/issues/55): delivered original window/identity. - specs #2 → [specs #4](https://git.personal.ksv741.ru/WealthLedger/specs/issues/4): только исходные native toolchain completion criteria; Git-range portion независим. Все три native edges установлены и прочитаны обратно. Cycles нет. Прочий порядок — рекомендация, не technical blockers. ## KEEP/NO_ACTION и закрытие [190-record triage](https://git.personal.ksv741.ru/WealthLedger/main/src/commit/d07fbfabb1295780952a554185989d2d5b5c8349/audits/2026-10-11/triage.md): FIX31, REFACTOR0, SIMPLIFY20, DELETE8, INVESTIGATE7, KEEP40, DUPLICATE67, NO_ACTION17. Непривязанных actionable findings 0. Два mapped external-evidence findings ждут private owner input: RISK-008/RC-17. Publication blocker одного original явно открыт. Correctness first; simplify before adding abstractions; preserve proven guarantees. Exact money, server validation, auth/CAS/replay/transaction/source fences, independent CI/semantic proof и accessibility сохраняются. Original reports, historical ADR/OpenSpec archives и standard lifecycle skills неизменны. Не создавать change автоматически, новую infrastructure/registry/validators или release bump. Статусы принадлежат Gitea; этот список не второй status checklist. Программа закрывается после evidence-based acceptance всех actionable Issues, explicit investigation/KEEP/NO_ACTION dispositions и снятия либо явно принятого publication blocker. Создание Issue не означает исправление. Final diff gates исполняют future implementation owners; planning application verify/build/tests/codegen/migration не запускал.
codex-bot added this to the Technical Audit Remediation — 2026-10-11 milestone 2026-10-11 21:40:00 +03:00
codex-bot added the Kind/Enhancement
Priority
Medium
3
audit/2026-10-11
labels 2026-10-11 21:40:00 +03:00
Author
Owner

Финальная публикация planning/evidence подтверждена: Git HEAD и remote task branch — d07fbfabb1295780952a554185989d2d5b5c8349.

Read-back: 19 archive blobs совпадают с local committed objects (17 original reports + README/triage); 190 уникальных source records; 44 participating Issues/44 unique markers; 5 milestones без due dates; 8 новых используемых repo labels; 3 native dependencies без cycles. У всех working Issues проверены template/acceptance sections, exactly one priority/primary kind/audit label и owner milestone. Главный body содержит все 43 working URLs. README/triage/campaign/original archive/milestones HTTP 200; source-linked Git resources проверены на audited commits.

Root git diff --check, staged allowlist/semantic review, redacted Gitleaks и commitlint прошли; оба commits успешно pushed. Application HEAD/status frontend/backend/specs/docs исходные и clean. Application verify/build/tests/codegen/migrations не запускались.

Publication blocker остаётся только у оригинала АудитЭффективности.md: private session identifiers/titles не опубликованы, локальный original сохранён и RC-01–18 имеют triage dispositions. Ранее отказ org-label API обработан repo fallback; labels reused Issues подтверждены replace_labels/read-back. Parallel HEAD scan timeout обработан адресным API/Git и sequential HTTP proof, полный parallel scan PASS не заявляется. Необработанных write API errors нет. Создание программы не означает implementation remediation.

Финальная публикация planning/evidence подтверждена: Git HEAD и remote task branch — `d07fbfabb1295780952a554185989d2d5b5c8349`. - [Final archive README permalink](https://git.personal.ksv741.ru/WealthLedger/main/src/commit/d07fbfabb1295780952a554185989d2d5b5c8349/audits/2026-10-11/README.md) - [Final triage permalink](https://git.personal.ksv741.ru/WealthLedger/main/src/commit/d07fbfabb1295780952a554185989d2d5b5c8349/audits/2026-10-11/triage.md) Read-back: 19 archive blobs совпадают с local committed objects (17 original reports + README/triage); 190 уникальных source records; 44 participating Issues/44 unique markers; 5 milestones без due dates; 8 новых используемых repo labels; 3 native dependencies без cycles. У всех working Issues проверены template/acceptance sections, exactly one priority/primary kind/audit label и owner milestone. Главный body содержит все 43 working URLs. README/triage/campaign/original archive/milestones HTTP 200; source-linked Git resources проверены на audited commits. Root `git diff --check`, staged allowlist/semantic review, redacted Gitleaks и commitlint прошли; оба commits успешно pushed. Application HEAD/status frontend/backend/specs/docs исходные и clean. Application verify/build/tests/codegen/migrations не запускались. Publication blocker остаётся только у оригинала `АудитЭффективности.md`: private session identifiers/titles не опубликованы, локальный original сохранён и RC-01–18 имеют triage dispositions. Ранее отказ org-label API обработан repo fallback; labels reused Issues подтверждены replace_labels/read-back. Parallel HEAD scan timeout обработан адресным API/Git и sequential HTTP proof, полный parallel scan PASS не заявляется. Необработанных write API errors нет. Создание программы не означает implementation remediation.
codex-bot was assigned by hermes-agent 2026-10-12 00:04:26 +03:00
hermes-agent added this to the WealthLedger — Delivery Board project 2026-10-12 00:04:26 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/main#23