fix(gitea-sync): survive live Gitea replies; point project memory at /buglog
gitea-sync.py fixes found on the first live run (bug-1855 follow-up): - 204/empty-body replies (label DELETE) no longer crash in json.loads - every request has a 60s timeout, so a stalled call fails instead of hanging - spec.json sync state is inserted as a trailing "gitea" block instead of re-serializing the file (15 hand-formatted spec.json files would reflow) - implementation issue body labels generated vs approved correctly; the validation body uses the same done-phase set as the close rules Project memory now routes all buglog writes through the buglog skill: CLAUDE.md key rule, a cerebrum Do-Not-Repeat entry (with the older duplicate-id / json.dump / tags-vs-fix lessons tagged as superseded), and xce-audit-invariants step 5. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
19104f1940
commit
e915f8def4
4 changed files with 53 additions and 20 deletions
|
|
@ -36,6 +36,7 @@ For details on any topic below, read the corresponding steering file in `.kiro/s
|
|||
- **Middleware chain** (non-negotiable): WhitelistURL → WhitelistIP → RateLimit → JWT → CORS → RBAC
|
||||
- **Error pattern**: `ReturnError(code, msg, nil); return` — early return on every error
|
||||
- **Build**: `/xce-build [component]` — debug + ASAN + tests. Components: `all` (default), `lib`, `controller`, `harness`, `scheduler`, `worker`, `apiserver`, `xcecli`, `xceadmin`. See `build-deployment.md` for full commands
|
||||
- **Buglog**: log and update bugs only through the `buglog` skill (`scripts/buglog.py add | status | note | recur | list --open | triage`), never by hand-editing or re-serializing `.wolf/buglog.json`. Each entry's `status` is the only source of truth for open/closed (values in `.claude/rules/buglog-status.md`); after a fix commit run `scripts/buglog.py status <id> fixed --note <sha>`
|
||||
- **Save/restore field-completeness**: any persistence mechanism (WAL fact, scheduler snapshot, checkpoint) must capture every field of the entity it claims to persist — a state that "recovers correctly" while silently missing a field it depends on (e.g. `job.state` correct but `job.allocs` lost) is a bug, not an acceptable simplification, unless the omission is explicitly documented as a scope decision (see `persistence.md`'s "Snapshot Save/Load Field-Completeness" + `APPLY_CLEAN`/bug-1678 sections). When adding or extending save/restore logic, verify the field round-trips through BOTH the write side and every read/apply seam, and run `/xce-audit-invariants` (controller dimension 7 / scheduler dimension 4) rather than assuming a passing test suite already proves it — `APPLY_CLEAN`-style verdicts check row counts and cursor position, not per-field completeness
|
||||
|
||||
## Key Files
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue