docs: repoint audit 2026-10-11 Evidence permalinks to reachable commit #38

Closed
opened 2026-10-17 20:36:35 +03:00 by codex-bot · 1 comment
Owner

Контекст

В #36 архив audits/2026-10-11/ перенесён в develop squash-merge'ем (PR #37, результат d07fbfa). Исходные коммиты 0d6344a и 7dc1c76 в develop не попали и после удаления ветки codex/audit-remediation-2026-10-11 стали недостижимы:

$ git for-each-ref --format='%(refname)' | while read r; do \
    git merge-base --is-ancestor 0d6344a "$r" 2>/dev/null && echo "reachable from $r"; done
(пусто)

Issues кампании audit/2026-10-11 используют Evidence-permalink вида:

https://git.personal.ksv741.ru/WealthLedger/main/src/commit/0d6344abfdf9c4c6139e4d2b50bf3bd3b2ee690e/audits/2026-10-11/reports/06-backend-architecture-report.md

Такие ссылки отдают 404. Содержимое не потеряно — те же 19 файлов идентичны и доступны из d07fbfa.

Ожидаемое поведение

Evidence-ссылки Issues кампании открываются и ведут на те же отчёты по достижимому коммиту.

Scope

In scope

  • Замена 0d6344abfdf9c4c6139e4d2b50bf3bd3b2ee690e → d07fbfabb1295780952a554185989d2d5b5c8349 в телах Issues кампании.
  • Замена 7dc1c76964da17cce6f5ad6d0c08186063901aee → d07fbfabb1295780952a554185989d2d5b5c8349 там же, включая комментарии #23.
  • Только часть URL с SHA. Путь audits/2026-10-11/... не менялся и правке не подлежит.

Out of scope

  • Текст Problem/Expected Behavior/Scope/AC — не трогаем.
  • Ссылки на revision исходного кода (0ad84ff, c8821200, 197ffe2 и подобные): это коммиты frontend/backend/specs, они достижимы из своих develop и остаются как есть.
  • Содержание отчётов: архив read-only.
  • Issues вне кампании (specs#1, specs#2 ссылаются на свои репозитории, dead SHA не содержат).

Затронутые Issues

44 Issue с label audit/2026-10-11:

repo Issues
main 23, 24, 25
frontend 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64
backend 53–74
docs 34, 35
specs 28, 29, 30

Правятся только те, в чьём теле фактически найден dead SHA.

Acceptance Criteria

  • Ни одно тело Issue и ни один комментарий в кампании не содержат 0d6344a или 7dc1c76 в составе permalink.
  • Каждая заменённая ссылка отдаёт HTTP 200 и ведёт на тот же файл отчёта.
  • Остальной текст Issues побайтово не изменён, кроме подменённого SHA.
  • Ссылки на revision прикладных репозиториев не затронуты.

Verification

git rev-parse d07fbfa
git ls-tree -r d07fbfa --name-only -- audits/ | wc -l    # ожидается 19
git diff --stat d07fbfa 7dc1c76 -- audits/               # ожидается пустой вывод

Плюс выборочная проверка нескольких обновлённых URL на HTTP 200.

Ограничение: правка тел Issues необратима через API — исходные тексты сохраняются локально до завершения работы.

## Контекст В `#36` архив `audits/2026-10-11/` перенесён в `develop` squash-merge'ем (PR `#37`, результат `d07fbfa`). Исходные коммиты `0d6344a` и `7dc1c76` в `develop` не попали и после удаления ветки `codex/audit-remediation-2026-10-11` стали недостижимы: ``` $ git for-each-ref --format='%(refname)' | while read r; do \ git merge-base --is-ancestor 0d6344a "$r" 2>/dev/null && echo "reachable from $r"; done (пусто) ``` Issues кампании `audit/2026-10-11` используют Evidence-permalink вида: ``` https://git.personal.ksv741.ru/WealthLedger/main/src/commit/0d6344abfdf9c4c6139e4d2b50bf3bd3b2ee690e/audits/2026-10-11/reports/06-backend-architecture-report.md ``` Такие ссылки отдают 404. Содержимое не потеряно — те же 19 файлов идентичны и доступны из `d07fbfa`. ## Ожидаемое поведение Evidence-ссылки Issues кампании открываются и ведут на те же отчёты по достижимому коммиту. ## Scope ### In scope - Замена `0d6344abfdf9c4c6139e4d2b50bf3bd3b2ee690e` → `d07fbfabb1295780952a554185989d2d5b5c8349` в телах Issues кампании. - Замена `7dc1c76964da17cce6f5ad6d0c08186063901aee` → `d07fbfabb1295780952a554185989d2d5b5c8349` там же, включая комментарии `#23`. - Только часть URL с SHA. Путь `audits/2026-10-11/...` не менялся и правке не подлежит. ### Out of scope - Текст Problem/Expected Behavior/Scope/AC — не трогаем. - Ссылки на revision исходного кода (`0ad84ff`, `c8821200`, `197ffe2` и подобные): это коммиты `frontend`/`backend`/`specs`, они достижимы из своих `develop` и остаются как есть. - Содержание отчётов: архив read-only. - Issues вне кампании (`specs#1`, `specs#2` ссылаются на свои репозитории, dead SHA не содержат). ## Затронутые Issues 44 Issue с label `audit/2026-10-11`: | repo | Issues | | --- | --- | | `main` | 23, 24, 25 | | `frontend` | 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64 | | `backend` | 53–74 | | `docs` | 34, 35 | | `specs` | 28, 29, 30 | Правятся только те, в чьём теле фактически найден dead SHA. ## Acceptance Criteria - [ ] Ни одно тело Issue и ни один комментарий в кампании не содержат `0d6344a` или `7dc1c76` в составе permalink. - [ ] Каждая заменённая ссылка отдаёт HTTP 200 и ведёт на тот же файл отчёта. - [ ] Остальной текст Issues побайтово не изменён, кроме подменённого SHA. - [ ] Ссылки на revision прикладных репозиториев не затронуты. ## Verification ```bash git rev-parse d07fbfa git ls-tree -r d07fbfa --name-only -- audits/ | wc -l # ожидается 19 git diff --stat d07fbfa 7dc1c76 -- audits/ # ожидается пустой вывод ``` Плюс выборочная проверка нескольких обновлённых URL на HTTP 200. Ограничение: правка тел Issues необратима через API — исходные тексты сохраняются локально до завершения работы.
codex-bot added the Kind/Documentation
Priority
Medium
3
audit/2026-10-11
labels 2026-10-17 20:36:35 +03:00
Author
Owner

Выполнено. Обновлено 43 объекта (42 по SHA + 1 по branch-ссылкам).

Что заменено

Было Стало Объектов
0d6344abfdf9c4c6139e4d2b50bf3bd3b2ee690e d07fbfabb1295780952a554185989d2d5b5c8349 42 (тела + комментарии)
7dc1c76964da17cce6f5ad6d0c08186063901aee то же входит в 42
src/branch/codex/audit-remediation-2026-10-11 src/commit/d07fbfa… 3 вхождения в #23

Ветко-ориентированные ссылки в #23 изначально не были в scope — обнаружены при проверке HTTP и исправлены тем же способом.

Разбивка по репозиториям: backend 22 (#4 комментарий, #53–#74), frontend 9 (#54–#64), main 3 (#23 тело и комментарий, #25), specs 5 (#1, #2 комментарии, #28, #29, #30), docs 2 (#34, #35).

Проверка Acceptance Criteria

$ python3 scan.py   # поиск dead SHA во всех телах и комментариях 5 repo
ITEMS: 1  TOTAL OCCURRENCES: 3
  main #38 body
  • Dead SHA не осталось нигде, кроме тела этой Issue — здесь они приведены намеренно как описание проблемы.
  • Все ссылки отдают 200: из 20 уникальных audit-URL кампании 19 файловых вернули 200; двадцатый — ссылка на каталог .../reports в #23, она отдаёт 200 в форме src/ (через raw/ каталог недоступен по определению).
  • Остальной текст не изменён: замена выполнена строго str.replace по 40-символьному SHA, длина тела проверена assert'ом до записи (len(new) == len(body)).
  • Ссылки на revision прикладных repo (0ad84ff, c8821200, 197ffe2, fcdc805) не затронуты — они достижимы из своих develop.
$ git rev-parse d07fbfa
d07fbfabb1295780952a554185989d2d5b5c8349
$ git ls-tree -r d07fbfa --name-only -- audits/ | wc -l
19
$ git diff --stat d07fbfa 7dc1c76 -- audits/
(пусто)

Уточнение по срочности

На момент работы 0d6344a ещё отдавался сервером с кодом 200 — Gitea держит dangling-объекты до сборки мусора. Но по refs он недостижим:

$ curl .../api/v1/repos/WealthLedger/main/branches
develop  d07fbfab
main     3027fd51

То есть ссылки сломались бы отложенно, при следующем git gc на сервере. Замена выполнена до этого момента, поэтому разрыва не произошло вовсе.

Исходные тексты всех 43 объектов сохранены локально до закрытия Issue.

Выполнено. Обновлено **43 объекта** (42 по SHA + 1 по branch-ссылкам). ## Что заменено | Было | Стало | Объектов | | --- | --- | --- | | `0d6344abfdf9c4c6139e4d2b50bf3bd3b2ee690e` | `d07fbfabb1295780952a554185989d2d5b5c8349` | 42 (тела + комментарии) | | `7dc1c76964da17cce6f5ad6d0c08186063901aee` | то же | входит в 42 | | `src/branch/codex/audit-remediation-2026-10-11` | `src/commit/d07fbfa…` | 3 вхождения в `#23` | Ветко-ориентированные ссылки в `#23` изначально не были в scope — обнаружены при проверке HTTP и исправлены тем же способом. Разбивка по репозиториям: `backend` 22 (#4 комментарий, #53–#74), `frontend` 9 (#54–#64), `main` 3 (#23 тело и комментарий, #25), `specs` 5 (#1, #2 комментарии, #28, #29, #30), `docs` 2 (#34, #35). ## Проверка Acceptance Criteria ``` $ python3 scan.py # поиск dead SHA во всех телах и комментариях 5 repo ITEMS: 1 TOTAL OCCURRENCES: 3 main #38 body ``` - [x] Dead SHA не осталось нигде, кроме тела этой Issue — здесь они приведены намеренно как описание проблемы. - [x] Все ссылки отдают 200: из 20 уникальных audit-URL кампании 19 файловых вернули `200`; двадцатый — ссылка на каталог `.../reports` в `#23`, она отдаёт `200` в форме `src/` (через `raw/` каталог недоступен по определению). - [x] Остальной текст не изменён: замена выполнена строго `str.replace` по 40-символьному SHA, длина тела проверена assert'ом до записи (`len(new) == len(body)`). - [x] Ссылки на revision прикладных repo (`0ad84ff`, `c8821200`, `197ffe2`, `fcdc805`) не затронуты — они достижимы из своих `develop`. ``` $ git rev-parse d07fbfa d07fbfabb1295780952a554185989d2d5b5c8349 $ git ls-tree -r d07fbfa --name-only -- audits/ | wc -l 19 $ git diff --stat d07fbfa 7dc1c76 -- audits/ (пусто) ``` ## Уточнение по срочности На момент работы `0d6344a` ещё отдавался сервером с кодом 200 — Gitea держит dangling-объекты до сборки мусора. Но по refs он недостижим: ``` $ curl .../api/v1/repos/WealthLedger/main/branches develop d07fbfab main 3027fd51 ``` То есть ссылки сломались бы отложенно, при следующем `git gc` на сервере. Замена выполнена до этого момента, поэтому разрыва не произошло вовсе. Исходные тексты всех 43 объектов сохранены локально до закрытия Issue.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/main#38