Compare commits
No commits in common. "master" and "task/drobne-fixy" have entirely different histories.
master
...
task/drobn
|
|
@ -1,59 +0,0 @@
|
||||||
---
|
|
||||||
okf: "0.1"
|
|
||||||
type: session-log
|
|
||||||
visibility: private
|
|
||||||
status: active
|
|
||||||
updated: 2026-08-27
|
|
||||||
links:
|
|
||||||
- ../../kb/phases/kb-m5-faza5-wiki.md
|
|
||||||
- ../../kb/phases/kb-m5-faza3.md
|
|
||||||
- ../../kb/audits/wiki-kompilat-recon-2026-08-26.md
|
|
||||||
---
|
|
||||||
|
|
||||||
# Sesja 2026-08-27 — Faza 5: decyzje + Etap 1 + rekonсyliacja (ZAMKNIĘTY)
|
|
||||||
|
|
||||||
## Timeline
|
|
||||||
|
|
||||||
- **Sanity** — automat mailowy zdrowy po nocy (last_success świeży, gmail
|
|
||||||
max(ts) bieżący).
|
|
||||||
- **Formalizacja decyzji** (2df4f1d i wcześniejsze) — pakiet (a)-(h) audytu
|
|
||||||
`wiki-kompilat-recon-2026-08-26.md` ZATWIERDZONY w całości; inwariant 7
|
|
||||||
dopisany do faza3 §8.1 (izolacja retrievalu kompilacji od `source='wiki'`);
|
|
||||||
`check_okf.py` łapie bajty kontrolne (nowy check #12 + testy) — 4 NUL-e
|
|
||||||
usunięte z samego audytu.
|
|
||||||
- **Etap 1** (`task/wiki-etap1`, autonomiczny run CC ~25 min) — bootstrap +
|
|
||||||
3 strony proof (`sprawy/fll-2025-26`, `podmioty/mbank`,
|
|
||||||
`osoby/pawel-cesar-sanjuan-szklarz`). 40 sources + 47 przypisów
|
|
||||||
zweryfikowanych byte-for-byte, zero degradacji. Alias-resolution: 6 er
|
|
||||||
życia Pawła spójnie + 2 fałszywe pozytywy pod `paweld2.eu` wykryte i
|
|
||||||
udokumentowane jako wynik negatywny (kluczowy test mechanizmu PASS).
|
|
||||||
- **ODKRYCIE** — kb-wiki istniało na Forgejo od 2026-07-21 (5 stron: `pzu`,
|
|
||||||
`warta`, `ubezpieczenie-auto`, `fll-2025-26`, `wspólnota`) — proof
|
|
||||||
wykonany w fazie 3 (wątek "Kontynuacja wątku o KB", decyzja D7),
|
|
||||||
nieodnotowany w `kb/` ani w audycie. Recon 08-26 błędnie stwierdził
|
|
||||||
"remote nie istnieje" — sprawdził repo/pilota/bazę, nie odpytał Forgejo
|
|
||||||
bezpośrednio.
|
|
||||||
- **LEKCJA 1**: fakty wykonania muszą lądować w repo (lekcja 6 narty27 w
|
|
||||||
praktyce — zgubiliśmy całe repo na 5 tygodni).
|
|
||||||
- **LEKCJA 2**: recon zasobów zewnętrznych odpytuje źródło wprost, nie
|
|
||||||
wnioskuje z planów.
|
|
||||||
- **Rekonсyliacja** — porównanie dwóch niezależnych kompilacji `fll-2025-26`
|
|
||||||
(lipiec paperless-only vs sierpień paperless+gmail): komplementarne, zero
|
|
||||||
sprzeczności w faktach wspólnych; konwergencja metodologiczna (obie sesje
|
|
||||||
ten sam chunk 277/278, obie odmówiły potwierdzenia nieczytelnego OCR).
|
|
||||||
Scalenie: 21 envelope, 38 par sources, 45 przypisów re-zweryfikowanych;
|
|
||||||
naprawiony wadliwy lipcowy przypis; konwencja "Brak danych w KB"
|
|
||||||
sformalizowana. Potem mbank+paweł przeniesione do kanonicznego repo,
|
|
||||||
konwencje (d)-(f) scalone, walidator w repo. Stan końcowy kb-wiki@Forgejo
|
|
||||||
`a540a99`: 7 stron, lint 74/74 sources + 150/150 inline zielono.
|
|
||||||
- **kb-wiki remote** przepięty HTTPS→SSH (port 222).
|
|
||||||
- **Kandydat Etapu 2** wykryty SQL-em: `podmioty/future-minds` (organizator
|
|
||||||
FLL, 8+ dokumentów).
|
|
||||||
- **Follow-upy bez zmian**: rotacja sekretów (kb-postgres + `TG_TOKEN` —
|
|
||||||
NADAL WISI), fix UID SEARCH, PDF-y, charset, R1/R2 z incydentu 26.08.
|
|
||||||
|
|
||||||
## Stan Fazy 5
|
|
||||||
|
|
||||||
- Etap 1 ✓ (2026-08-27). Next: Etap 2 — skala do 17+1 encji, lint w kodzie,
|
|
||||||
skan charset/NUL, decyzja o integracji `source='wiki'` w retrievalu
|
|
||||||
(inwariant 7 obowiązuje).
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
## Session 13:49
|
|
||||||
|
|
||||||
### Commits
|
|
||||||
a97cec0 merge: task/drobne-fixy (resolve-requests 775, prune out of health-monitor, events doc, redeploy action_id)
|
|
||||||
1dca438 fix(supervisor): apply started_at suffix to redeploy action_id too
|
|
||||||
40d78ce docs: fix events layout drift in CLAUDE.md
|
|
||||||
9a86843 fix(monitor): remove unfiltered docker container prune from health-monitor.sh
|
|
||||||
89f75c3 fix(observer): make world/resolve-requests/ group-writable
|
|
||||||
|
|
||||||
### Files changed
|
|
||||||
CLAUDE.md | 2 +-
|
|
||||||
scripts/monitor/health-monitor.sh | 110 +++------------------
|
|
||||||
scripts/observer/observer.py | 12 +++
|
|
||||||
services/control-plane/src/supervisor.py | 40 ++++----
|
|
||||||
.../control-plane/tests/test_incident_lifecycle.py | 17 ++++
|
|
||||||
.../tests/test_supervisor_action_id_uniqueness.py | 50 +++++++++-
|
|
||||||
6 files changed, 109 insertions(+), 122 deletions(-)
|
|
||||||
|
|
||||||
### Deploys
|
|
||||||
- control-plane → VPS: tagged 4/4 images `:rollback-pre-drobnefixy`, `git pull` (03441a1→a97cec0) + `docker compose up -d --build --force-recreate` (direct, no deploy-local.sh, per 26.08 precedent). Result: 4/4 healthy, zero error/traceback in logs since restart, sha256 of observer.py and supervisor.py match HEAD, `world/resolve-requests/` mode 775 confirmed, incidents.json stable (md5 unchanged) over 3 observer cycles. 30s permission test: flag `test-perms-123` dropped via plain `ssh` as `oskar` (no docker exec) was picked up and deleted in ~5s with `WARNING - Resolve-request flag for unknown incident test-perms-123 — removing flag` — 775 confirmed working in practice.
|
|
||||||
|
|
||||||
### Narrative
|
|
||||||
> _user-provided summary_
|
|
||||||
|
|
@ -3,7 +3,7 @@ okf: "0.1"
|
||||||
type: audit
|
type: audit
|
||||||
visibility: private
|
visibility: private
|
||||||
status: active
|
status: active
|
||||||
updated: 2026-08-27
|
updated: 2026-08-26
|
||||||
as_of: 2026-08-26
|
as_of: 2026-08-26
|
||||||
links:
|
links:
|
||||||
- ../phases/kb-m5-faza3.md
|
- ../phases/kb-m5-faza3.md
|
||||||
|
|
@ -663,7 +663,7 @@ wiki-kompilat:
|
||||||
- **NUL w `entities` jsonb jest poważniejszy strukturalnie** — jeśli sesja
|
- **NUL w `entities` jsonb jest poważniejszy strukturalnie** — jeśli sesja
|
||||||
kompilująca odpytuje `entities` bezpośrednio (nie tylko `document_chunk.text`),
|
kompilująca odpytuje `entities` bezpośrednio (nie tylko `document_chunk.text`),
|
||||||
NUL bajt w jsonb może wywrócić parser po stronie klienta (Pythonowy
|
NUL bajt w jsonb może wywrócić parser po stronie klienta (Pythonowy
|
||||||
`json`/`asyncpg` różnie reaguje na `` w zależności od ścieżki). To
|
`json`/`asyncpg` różnie reaguje na ` | ||||||