chore(wolf): sync anatomy/cerebrum/memory/hooks/token-ledger bookkeeping
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AgYRU3zDTqNGV5Jk8aiKLg
This commit is contained in:
parent
3eba7c16bf
commit
d1803376d8
5 changed files with 1593 additions and 36 deletions
|
|
@ -1,7 +1,7 @@
|
|||
# anatomy.md
|
||||
|
||||
> Auto-maintained by OpenWolf. Last scanned: 2026-08-25T13:04:51.029Z
|
||||
> Files: 738 tracked | Anatomy hits: 0 | Misses: 0
|
||||
> Auto-maintained by OpenWolf. Last scanned: 2026-08-25T13:49:34.701Z
|
||||
> Files: 740 tracked | Anatomy hits: 0 | Misses: 0
|
||||
|
||||
## ../../../../../../tmp/
|
||||
|
||||
|
|
@ -946,7 +946,7 @@
|
|||
|
||||
- `apiserver.c` — include <errno.h> (~5966 tok)
|
||||
- `CLAUDE.md` — XCE Controller (~4927 tok)
|
||||
- `cluster.c` — include "config.h" (~24998 tok)
|
||||
- `cluster.c` — include "config.h"; bug-1693 (2026-08-25): new `int schedadmin_signal_disconnect(void)` (thin wrapper around the existing static `schedadmin_signal(-ECONNRESET, NULL)`) lets `sched.c`'s `handle_scheduler_leave()` wake a pending `OPCode_schedAdmin` waiter immediately on scheduler disconnect instead of only at the 5s `SCHEDADMIN_TIMEOUT_MS` deadline; the post-wait dispatch gained a `got_status==-ECONNRESET` branch replying `SchedAdminReply{error="scheduler disconnected"}` (~25702 tok)
|
||||
- `commit.c` — Declares is (~13741 tok)
|
||||
- `config_repl.c` — define _GNU_SOURCE (~36913 tok)
|
||||
- `config_repl.h` — pragma once (~6952 tok)
|
||||
|
|
@ -957,10 +957,10 @@
|
|||
- `ha_convergence.c` — Declares char (~8389 tok)
|
||||
- `ha.c` — define _GNU_SOURCE (~126128 tok)
|
||||
- `ha.h` — ifndef HA_H (~34172 tok)
|
||||
- `job.c` — include <assert.h> (~37749 tok)
|
||||
- `job.c` — include <assert.h>; bug-1693 (2026-08-25): `fetchfile_pending_t` gained a `worker_t* worker` field (set in `on_fetchfile()` before registering); new `void fetchfile_signal_worker_disconnect(worker_t*)` walks `g_fetchfile_list` and wakes every pending waiter proxied to a disconnected worker with `-ECONNRESET`, called from `handle_worker_leave()` (worker.c); `XCE_TESTING`-only `fetchfile_wait_for_test()` seam added for regression coverage (~38719 tok)
|
||||
- `join.c` — include "config.h" (~2994 tok)
|
||||
- `main.c` — build-time-versioning task 3.2 (argp_program_version runtime-composed into static `version_buf[128]`, "My name is..." startup INFO reads that buffer) PLUS dirty-content-fingerprint task 3.2 (2026-08-21): new static `version_display_buf[128]` composed via `xce_compose_version_ex()` (adds `STR(VERSION_DIRTY_FINGERPRINT)`) feeds `argp_program_version` instead; `version_buf`'s composition + the startup INFO log are byte-identical/untouched (Req 3.2). Live-verified: `--version` -> `7ebcba6d-cdb7cc7d`, startup log -> `7ebcba6d-dirty` (~5346 tok)
|
||||
- `meson.build` (~3521 tok)
|
||||
- `meson.build` (src/controller/) — bug-1693: added `testsuite/test_fetchfile_disconnect.c` to `controller_unit_test_src` (~3533 tok)
|
||||
- `misc.c` — include <errno.h> (~1359 tok)
|
||||
- `myapp.c` — define _GNU_SOURCE (~6287 tok)
|
||||
- `myconf.c` — define _GNU_SOURCE (~1180 tok)
|
||||
|
|
@ -971,15 +971,15 @@
|
|||
- `repl.c` — include <assert.h> (~9240 tok)
|
||||
- `reply.c` — include "config.h" (~590 tok)
|
||||
- `resources.c` — include <errno.h> (~50 tok)
|
||||
- `sched.c` — include <errno.h> (~6080 tok)
|
||||
- `sched.c` — include <errno.h>; bug-1693 (2026-08-25): `handle_scheduler_leave()` now calls `schedadmin_signal_disconnect()` (cluster.c) BEFORE acquiring `c->sched.lock` (calling after would deadlock against the OPCode_schedAdmin dispatch case, which holds that lock for its whole wait) so a mid-wait scheduler disconnect wakes the pending waiter immediately instead of only at the 5s deadline (~6405 tok)
|
||||
- `slowlane.c` — define _GNU_SOURCE (~2392 tok)
|
||||
- `startup_validation.c` — define _GNU_SOURCE (~1524 tok)
|
||||
- `task.c` — include <errno.h> (~1376 tok)
|
||||
- `worker.c` — include <errno.h> (~8004 tok)
|
||||
- `worker.c` — include <errno.h>; bug-1693 (2026-08-25): `handle_worker_leave()` now calls `fetchfile_signal_worker_disconnect(w)` (job.c) right after nulling `w->ep`, so a mid-wait worker disconnect wakes any `on_fetchfile()` waiter proxied to it immediately instead of only at the 10s deadline (~8298 tok)
|
||||
|
||||
## src/controller/include/
|
||||
|
||||
- `cluster.h` — if !defined(_CLUSTER_H_) (~3474 tok)
|
||||
- `cluster.h` — if !defined(_CLUSTER_H_); bug-1693: declares `fetchfile_signal_worker_disconnect(worker_t*)` and `schedadmin_signal_disconnect(void)` (~3400 tok)
|
||||
- `commit.h` — pragma once (~3894 tok)
|
||||
- `slowlane.h` — pragma once (~1149 tok)
|
||||
- `worker.h` — if !defined(_WORKER_H_) (~213 tok)
|
||||
|
|
@ -989,7 +989,7 @@
|
|||
- `clean_failover_preservation.sh` — clean_failover_preservation.sh — ha-term-safety task 5.2 live integration test. (~5327 tok)
|
||||
- `configcompare.c` — define _GNU_SOURCE (~2273 tok)
|
||||
- `configcompare.h` — pragma once (~1186 tok)
|
||||
- `controller_test.c` — include <argp.h> (~2459 tok)
|
||||
- `controller_test.c` — include <argp.h>; bug-1693: registered `test_fetchfile_disconnect` (extern decl + TEST()) alongside existing `test_sched_admin_dispatch` (~2481 tok)
|
||||
- `ctrlstatus_fmt.h` — ifndef _CTRLSTATUS_FMT_H_ (~631 tok)
|
||||
- `resval_typeresolve.c` — resval_resolve_type(): resource-name -> Value_u_which table lookup (14 known names unchanged) + task 2.1's numeric-default fallback / `-t` type_override for unrecognized names (~499 tok)
|
||||
- `resval_typeresolve.h` — declares resval_resolve_type()/RESVAL_TYPE_UNKNOWN; task 2.1 fallback now implemented (~676 tok)
|
||||
|
|
@ -1020,16 +1020,18 @@
|
|||
- `test_dispatch_commit.c` — Declares table (~7800 tok)
|
||||
- `test_dispatch_fail_retry.c` — task 5.2's fail->succeed->fail test (`test_rpc_failure_bound_resets_after_intervening_success`, toggles worker ep broken/working across `dispatch_a_job_test()` calls) proves Req 4.3 counter-reset end-to-end (GREEN). Its job.state==PEND/job.allocs==NULL assertions on the post-success retryable/terminal failures were REMOVED (task 5.2 remediation, 2026-08-23) after kiro-debug (HIGH confidence) found that sub-scenario unreachable via any real caller today -- see bug-1631 for the deferred analysis; the removed-assertion rationale is documented inline in the test (~13000 tok)
|
||||
- `test_dispatch_fail_terminal.c` — Declares table (~3499 tok)
|
||||
- `test_fetchfile_disconnect.c` — bug-1693 regression suite (NEW, 2026-08-25): drives job.c's real `fetchfile_signal_worker_disconnect()`/`fetchfile_wait_for_test()` (XCE_TESTING seam) directly with a plain stack `worker_t` (not the full `on_fetchfile()`/real jobmgr+workermgr chain, out of this fix's scope). Proves a worker disconnect wakes a pending fetchfile wait in <1s with `-ECONNRESET` (not the ~5-10s deadline's `-ETIMEDOUT`), and that a disconnect on a DIFFERENT worker never cross-wakes an unrelated waiter (~2197 tok)
|
||||
- `test_ha_durability.c` — Declares char (~5643 tok)
|
||||
- `test_ha_rdhup_integration.c` — Declares char (~8362 tok)
|
||||
- `test_job_array_sched_push.c` — job-array-single-wal-record task 5.1: standalone binary (`sched_push_unit_test`) linking real `sched.c`+`dataex.c`+`egress.c` to test `sched_job_new_fun`/`xcesched_push_jobarray`; bug-1693 (2026-08-25): added a one-line link-satisfying `schedadmin_signal_disconnect()` stub (mirrors the file's existing `check_worker_()` stub) since `sched.c`'s `handle_scheduler_leave()` now calls the real one, defined in cluster.c, which this binary doesn't link (~2863 tok)
|
||||
- `test_job_dispatch_fail_count.c` (~1002 tok)
|
||||
- `test_job_dispatch_fail_count.c` — scheduler-dispatch-commit task 1.3: proves job_t.dispatch_fail_count (xce/types.h wrapper struct, new uint32_t next to submit_lsn) is a plain, directly settable/incrementable/resettable in-memory-only field; bare stack-local job_t, no jobmgr/RTTI, mirrors test_persist_types.c's test_slot_key_t_fields precedent. Data-model only -- no dispatch_a_job_() wiring (~1600 tok)
|
||||
- `test_job_dispatch.c` — Declares in (~1205 tok)
|
||||
- `test_jobdispatch_no_double_notify.c` — Declares table (~5490 tok)
|
||||
- `test_repl_apply.c` — include <dirent.h> (~5812 tok)
|
||||
- `test_resval_typeresolve.c` — Declares override (~1118 tok)
|
||||
- `test_sched_admin_dispatch.c` (~7510 tok)
|
||||
- `test_sched_worker_change.c` — Declares bug (~3893 tok)
|
||||
- `test_sched_admin_dispatch.c` — Unity tests for OPCode_schedAdmin dispatch (cluster.c) via `myreq_handler_for_test`: standby/not-connected/admission-exhausted rejects, success/timeout/rpc-status-only/business-error round trips. bug-1693 (2026-08-25): added `test_schedadmin_disconnect_wakes_immediately`, calling the real `schedadmin_signal_disconnect()` (cluster.c) from a second thread against a real pending wait -- proves a disconnect wakes it in <1s (not the real unshrunk 5s deadline) with a distinguishable `"scheduler disconnected"` SchedAdminReply. Calls `schedadmin_signal_disconnect()` directly rather than `handle_scheduler_leave()` since this binary doesn't link the real sched.c (test_config_repl.c's stub would silently swallow the call -- see cerebrum.md) (~8752 tok)
|
||||
- `test_sched_worker_change.c` — bug-1578 regression (sched_worker_change() dangling resvals_to_sched fix); standalone binary (`sched_worker_change_unit_test`) linking real sched.c+dataex.c+egress.c. bug-1693 (2026-08-25): upgraded its link-satisfying `schedadmin_signal_disconnect()` stub into a counting/capturing SPY, and added `test_scheduler_leave_signals_schedadmin_before_clearing_ep` proving the REAL `handle_scheduler_leave()` calls it exactly once and BEFORE nulling `c->sched.ep` (the deadlock-avoidance ordering) -- complements test_sched_admin_dispatch.c's test in controller_unit_test, where cluster.c is real but sched.c is stubbed; together the two prove both halves of the fix for real (~5279 tok)
|
||||
- `test_term_safety_adapter.c` — define _GNU_SOURCE (~29920 tok)
|
||||
- `test_wal_job_ckpt_fact.c` — bug-1691 regression suite: WAL_JOB_CKPT restart-drop fix for job.ckptinfo (plain char*, xstring-backed via makeString()). 7 tests: apply_committed_entry unconditional-decode (no-state-change is the key test, since on_job_ckpt() never changes state — mirrors bug-1690's RUSAGE divergence) + forward-transition + backward-compat, apply_wal_entry adopt + backward-compat, direct-payload restart replay, and a real on_job_ckpt() production-path restart-replay test (needed `persist_init(..., &c)` not NULL, since CKPT is hook-driven like RUSAGE, not a direct call site like DISPATCH/START/FINISH — persist_start() only registers persist_job_hook_fun when p->cluster != NULL) (~7000 tok)
|
||||
- `test_wal_job_dispatch_fact.c` — Declares in (~5222 tok)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue