myxce/.wolf/STATUS.md
Rongsong Shen eee76a75ab
chore(wolf): regenerate handoff, sync anatomy/memory bookkeeping
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 03:55:14 +00:00

52 lines
3.8 KiB
Markdown
Raw 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.

# STATUS
> Single source of truth for resuming work. Read this FIRST when starting a session.
> Update at the end of every work phase so the next `/clear` resumes in 1 read.
---
## ✅ Done (2026-09-27, all pushed)
- **Bug records are Markdown** (`d26ff887`): one `.wolf/bugs/<id>.md` per bug, written to `.claude/skills/buglog/bug-record.md` (bug-1866 = worked example). `buglog.json` is a generated index; 710 hook auto-detections archived in `buglog-archive.json`; 500 migrated records carry `legacy: true`. `buglog.py status` and the pre-commit hook enforce the standard. `gitea-sync.py` renders records and links fix commits; 23 issues refreshed (`25d8a461`).
- **bug-1866** fixed (`e84a8d43`): `remove_worker` frees 5 more strings. Worker suite 12/12.
- **HA / async-I/O group**: bug-1450/1451/1728/1433/1474/1469/1741 + bug-1870 follow-up (`cb1415d7`); all 6 HA soak modes PASS. bug-1747 FAIL half and bug-1867 were already fixed (`1d6c04c2`, `e4bb492a`).
- Gitea #290–#297 created; weekly report + `CHANGES.md` for Sep 20–26.
---
## 🚀 Next phase
**Goal:** _None active._ Suggested order: `xce_test` harness bug batch → bug-1871 → spec metadata sync → a tasks-ready spec.
### Open items (not yet actioned)
- **`xce_test` harness batch** (all in `src/harness`, small): bug-1574, 1702, 1703, 1705, 1707–1710, 1712, 1777, 1793, 1796, 1797. Use `buglog.py status <id> fixed --commit <sha>` — the record must meet the standard first.
- **bug-1871** (investigating): HA snapshot transfer to a rejoining standby stalls 3+ s mid-stream (2 of 4 force-snapshot runs). Suspect: edge-triggered epoll not re-signalled for data buffered while the endpoint task was blocked. Evidence: `/home/claude/tmp/xce-ha-final-force-snapshot`.
- **Other open bugs** (25 total, `buglog.py list --open`): bug-1553/1580 (intermittent controller_unit_test), bug-1632/1763 (ASAN in sim tests), bug-1604, bug-1736 partial.
- **Spec metadata lag**: `controller-status`, `scheduler-sim-live-allocation`, `xce-test-cli-ux`, `scheduler-sim-diagnostics` are functionally done but `spec.json` still reads `tasks-generated`.
- **Pending specs awaiting approval**: `controller-peers-env-fallback` (design review), `libxce-alloc-preason-equality` (tasks, 0/8, not ready).
### Files to create / edit
- _none pending_
### Open decisions
- **REST job output for jobs with a custom `out_file`/`err_file`**: the worker never writes those paths (always `/tmp/job_<id>_task<N>.out`), so since bug-1508 `GET /jobs/:id/output` for such a job returns a permission error from the worker. Either the apiserver's `resolveOutputPath()` (controllers/output.go) always targets the worker's own output file, or the worker starts honouring `out_file`. Waiting on the user.
- **~400 older bug records were never mirrored to Gitea.** A sync without `--since`/`--ids` would create an issue for each. Default: leave them off Gitea.
---
## 📁 Active architecture
- **Stack:** Go API/CLI tier (`src/frontend/apiserver`) fronting C daemons (`src/controller`, `src/worker`, `src/scheduler`); Meson-based build via `src/tools/xce-build.sh`, hermetic nix dev shell.
- **Bug tracking:** `.wolf/bugs/*.md` (records) → `scripts/buglog.py` (CLI + checks) → `.wolf/buglog.json` (generated index) → `scripts/gitea-sync.py` (Gitea issues in `nexa/xce`).
- **Local-only, never committed:** `.claude/settings.json` (hook paths rewritten for this machine), `data/` (450 MB replays/logs).
---
## 🔧 Useful commands
```bash
python3 scripts/buglog.py list --open | new ... --binary <bin> | check <id> | status <id> fixed --commit <sha>
ln -sf ../../scripts/git-hooks/pre-commit .git/hooks/pre-commit # once per clone
XCE_HA_ROUNDS=6 nix develop ./src --command bash .claude/skills/xce-test-ha/run-ha-soak.sh --sequential <dir>
python3 scripts/gitea-sync.py --dry-run --bugs --since <date> [--ids bug-N,bug-M] # dry-run first
```