chore(wolf): checkpoint buglog.json (1062 bugs)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AgYRU3zDTqNGV5Jk8aiKLg
This commit is contained in:
Rongsong Shen 2026-08-27 08:27:43 +00:00
parent 13246a89c8
commit d8bf8fb2e1
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2
27 changed files with 7702 additions and 897158 deletions

View file

@ -1,77 +1,7 @@
# anatomy.md
> Auto-maintained by OpenWolf. Last scanned: 2026-08-25T16:05:07.063Z
> Files: 742 tracked | Anatomy hits: 0 | Misses: 0
## ../../../../../../tmp/
- `apiserver` (~27 tok)
## ../../../../../../tmp/claude-1000/-home-rshen-projects-xce-worktrees-scheduler-framework/01599b27-8a93-432e-a4a8-263066731f52/scratchpad/
- `add_bug1573.py` — Declares core_apply_worker_resvals (~901 tok)
- `check_leftover.sh` — Standalone leftover-process checker -- avoids the bug-1576 self-match (~180 tok)
- `crash_handler.c` — define _GNU_SOURCE (~485 tok)
- `exe-watch.sh` — Watches for a REAL worker daemon process by checking each PID's /proc/exe (~193 tok)
- `fake-apiserver.sh` — Deliberately-crashing fake apiserver binary for independent mid-abort (~96 tok)
- `fix_bug_1574.py` (~799 tok)
- `fix_bug1572.py` (~1026 tok)
- `gdbcmds.txt` (~63 tok)
- `proc_worker_scan.sh` — Scan /proc/<pid>/exe for any process whose REAL BINARY (not argv/cmdline (~300 tok)
- `procscan.sh` — Scan /proc for real processes whose cmdline references the given (~261 tok)
- `reviewer_synth_test.sh` — Independent reviewer synthetic test -- sources the REAL script (production (~1538 tok)
- `stress_driver.sh` — Independent stress-test driver for run-resource-verify.sh's trap-based (~758 tok)
- `synth_aggregate_test_round2.sh` — Round-2 synthetic regression suite for run-resource-verify.sh's task 7.1 (~2469 tok)
- `synth_aggregate_test.sh` — Synthetic sanity-check for run-resource-verify.sh's aggregate_verdict() (~1559 tok)
- `test_aggregate.sh` — Independent synthetic test of aggregate_verdict() / build_verdict_record() (~2105 tok)
- `test-sched-check.sh` — Synthetic (no live deployment) test of query_scheduler_resvals() / poll_scheduler_log() (~783 tok)
- `trap_repro.sh` (~301 tok)
- `xtest_script.txt` (~52 tok)
## ../../../../../../tmp/claude-1000/-home-rshen-projects-xce-worktrees-scheduler-framework/0334ebbe-8d9c-4931-871d-87c678f83a79/scratchpad/
- `dryrun_funcs.sh` — Dry-run harness: extracts and exercises the pure functions from the new (~1407 tok)
- `fix_bug1604.py` (~813 tok)
- `log_bug_1602.py` (~1054 tok)
## ../../../../../../tmp/claude-1000/-home-rshen-projects-xce-worktrees-scheduler-framework/0334ebbe-8d9c-4931-871d-87c678f83a79/scratchpad/dfp-4.3-remediation/fakebin/
- `git` — Wrapper: fail ONLY `git diff` (and any `git diff ...` invocation), pass (~55 tok)
## ../../../../../../tmp/claude-1000/-home-rshen-projects-xce-worktrees-scheduler-framework/0334ebbe-8d9c-4931-871d-87c678f83a79/scratchpad/dfp_test/
- `Makefile.after` (~441 tok)
- `Makefile.before` (~376 tok)
## ../../../../../../tmp/claude-1000/-home-rshen-projects-xce-worktrees-scheduler-framework/2455e81b-dd7c-4f96-b2cd-548167b22732/scratchpad/
- `close_out_bug1588.py` — Declares parameter (~1202 tok)
- `fix_buglog_1629.py` (~405 tok)
- `tasks-draft.md` — Implementation Plan (~2677 tok)
- `update_bug1613.py` (~859 tok)
- `update_buglog.py` (~1058 tok)
## ../../../../../../tmp/claude-1000/-home-rshen-projects-xce-worktrees-scheduler-framework/fe2ba1fe-c8fb-4d72-986e-1c8e2406aa3a/scratchpad/
- `strstr_probe.c` — define _GNU_SOURCE (~236 tok)
## ../../../../../claude/.claude/plugins/claude-hud/
- `config.json` (~310 tok)
## ../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/
- `incident_subagent_scope_violation.md` (~1171 tok)
- `MEMORY.md` (~83 tok)
- `project_bug_tracker_buglog.md` (~369 tok)
## ../../xce/.claude/worktrees/fix-bug-1613/.kiro/steering/
- `scheduler-driver-equivalence.md` — Scheduler Driver Equivalence (~1520 tok)
## ../../xce/.claude/worktrees/fix-bug-1613/src/scheduler/
- `CLAUDE.md` — XCE Scheduler (~1264 tok)
> Auto-maintained by OpenWolf. Last scanned: 2026-08-27T07:51:49.234Z
> Files: 507 tracked | Anatomy hits: 0 | Misses: 0
## ./
@ -79,7 +9,7 @@
- `.gitignore` — Git ignore rules (~402 tok)
- `.mcp.json` (~7 tok)
- `.opencode.json` (~7 tok)
- `CLAUDE.md` — OpenWolf (~1484 tok)
- `CLAUDE.md` — OpenWolf (~1526 tok)
- `README.md` — Project documentation (~612 tok)
## .agent-shell/transcripts/
@ -89,199 +19,16 @@
- `2026-08-11-22-00-54.md` — Agent Shell Transcript (~9623 tok)
- `2026-08-15-22-30-02.md` — Agent Shell Transcript (~438 tok)
- `2026-08-16-06-11-30.md` — Agent Shell Transcript (~60273 tok)
## .claude/
- `settings.json` (~718 tok)
## .claude/rules/
- `openwolf.md` (~313 tok)
## .claude/skills/gitea-sync/
- `SKILL.md` — Gitea Sync Skill (~1875 tok)
## .claude/skills/kiro-debug/
- `SKILL.md` — kiro-debug (~1322 tok)
## .claude/skills/kiro-discovery/
- `SKILL.md` — kiro-discovery Skill (~3387 tok)
## .claude/skills/kiro-impl/
- `SKILL.md` — kiro-impl Skill (~4048 tok)
## .claude/skills/kiro-impl/templates/
- `debugger-prompt.md` — Debug Investigator (~812 tok)
- `implementer-prompt.md` — TDD Task Implementer (~1659 tok)
- `reviewer-prompt.md` — Task Implementation Reviewer (~1352 tok)
## .claude/skills/kiro-review/
- `SKILL.md` — kiro-review (~1756 tok)
## .claude/skills/kiro-spec-batch/
- `SKILL.md` — kiro-spec-batch Skill (~2293 tok)
## .claude/skills/kiro-spec-design/
- `SKILL.md` — kiro-spec-design Skill (~2869 tok)
## .claude/skills/kiro-spec-design/rules/
- `design-discovery-full.md` — Full Discovery Process for Technical Design (~949 tok)
- `design-discovery-light.md` — Light Discovery Process for Extensions (~389 tok)
- `design-principles.md` — Technical Design Rules and Principles (~2982 tok)
- `design-review-gate.md` — Design Review Gate (~1016 tok)
- `design-synthesis.md` — Design Synthesis (~464 tok)
## .claude/skills/kiro-spec-design/templates/specs/
- `design.md` — Design Document Template (~3303 tok)
- `research.md` — Research & Design Decisions Template (~586 tok)
## .claude/skills/kiro-spec-init/
- `SKILL.md` — Spec Initialization (~783 tok)
## .claude/skills/kiro-spec-init/templates/specs/
- `init.json` (~125 tok)
- `requirements-init.md` — Requirements Document (~40 tok)
## .claude/skills/kiro-spec-quick/
- `SKILL.md` — Quick Spec Generator (~1993 tok)
## .claude/skills/kiro-spec-quick/templates/specs/
- `init.json` (~125 tok)
- `requirements-init.md` — Requirements Document (~40 tok)
## .claude/skills/kiro-spec-requirements/
- `SKILL.md` — kiro-spec-requirements Skill (~2122 tok)
## .claude/skills/kiro-spec-requirements/rules/
- `ears-format.md` — EARS Format Guidelines (~739 tok)
- `requirements-review-gate.md` — Requirements Review Gate (~924 tok)
## .claude/skills/kiro-spec-requirements/templates/specs/
- `requirements.md` — Requirements Document (~325 tok)
## .claude/skills/kiro-spec-status/
- `SKILL.md` — kiro-spec-status Skill (~746 tok)
## .claude/skills/kiro-spec-tasks/
- `SKILL.md` — kiro-spec-tasks Skill (~2460 tok)
## .claude/skills/kiro-spec-tasks/rules/
- `tasks-generation.md` — Task Generation Rules (~2773 tok)
- `tasks-parallel-analysis.md` — Parallel Task Analysis Rules (~633 tok)
## .claude/skills/kiro-spec-tasks/templates/specs/
- `tasks.md` — Implementation Plan (~318 tok)
## .claude/skills/kiro-steering-custom/
- `SKILL.md` — kiro-steering-custom Skill (~1222 tok)
## .claude/skills/kiro-steering-custom/rules/
- `steering-principles.md` — Steering Principles (~593 tok)
## .claude/skills/kiro-steering-custom/templates/steering-custom/
- `api-standards.md` — API Standards (~415 tok)
- `authentication.md` — Authentication & Authorization Standards (~523 tok)
- `database.md` — Database Standards (~377 tok)
- `deployment.md` — Deployment Standards (~441 tok)
- `error-handling.md` — Error Handling Standards (~549 tok)
- `security.md` — Security Standards (~523 tok)
- `testing.md` — Testing Standards (~325 tok)
## .claude/skills/kiro-steering/
- `SKILL.md` — kiro-steering Skill (~1185 tok)
## .claude/skills/kiro-steering/rules/
- `steering-principles.md` — Steering Principles (~593 tok)
## .claude/skills/kiro-steering/templates/steering/
- `product.md` — Product Overview (~89 tok)
- `structure.md` — Project Structure (~218 tok)
- `tech.md` — Technology Stack (~198 tok)
## .claude/skills/kiro-validate-design/
- `SKILL.md` — kiro-validate-design Skill (~1296 tok)
## .claude/skills/kiro-validate-design/rules/
- `design-review.md` — Design Review Process (~1090 tok)
## .claude/skills/kiro-validate-gap/
- `SKILL.md` — kiro-validate-gap Skill (~1385 tok)
## .claude/skills/kiro-validate-gap/rules/
- `gap-analysis.md` — Gap Analysis Process (~1266 tok)
## .claude/skills/kiro-validate-impl/
- `SKILL.md` — kiro-validate-impl Skill (~2826 tok)
## .claude/skills/kiro-verify-completion/
- `SKILL.md` — kiro-verify-completion (~972 tok)
## .claude/skills/weekly_report/
- `SKILL.md` — weekly_report Skill (~3367 tok)
## .claude/skills/xce-audit-invariants/
- `SKILL.md` — XCE Design-Invariant Audit & Fix (~3823 tok)
## .claude/skills/xce-build/
- `SKILL.md` — build xce source code (~2597 tok)
## .claude/skills/xce-deploy-ha/
- `SKILL.md` — XCE HA Cluster Deployment; now auto-picks real `xcecd` (sudo, root) vs `xcecd_virtual` per host via `/run/systemd/system` (~8200 tok)
## .claude/skills/xce-test-ha/
- `run-ha-soak.sh` — run-ha-soak.sh — driver for /xce-test-ha: deploy a 3-node XCE HA cluster, then (~44744 tok)
- `SKILL.md` — XCE HA Failover Soak Test (~9766 tok)
- `soak-verdict-selftest.sh` — soak-verdict-selftest.sh — deterministic unit test for the verdict parser in (~2825 tok)
- `soak-verdict.sh` — soak-verdict.sh — pure (side-effect-free) verdict helpers for run-ha-soak.sh. (~2980 tok)
## .claude/skills/xce-test-resources/
- `run-resource-verify.sh` — run-resource-verify.sh -- driver for /xce-test-resources: end-to-end (~21445 tok)
- `SKILL.md` — XCE Resource-Value Verification skill contract, FULLY UPDATED for task 7.1 completion: "Status: complete and functional", real VERDICT line format (`resources=N layers_checked=3 mismatches=M unreachable=U rejected=R result=PASS|FAIL`), real flag names (`--keep-running`, `--dir DIR`, `$XCE_RESVERIFY_*` env vars, all cross-checked against the actual script), FAILURE-line format, self-contained/sourceable `aggregate_verdict()` note for task 8.2, known-bugs section (1572/1574 open, 1579 fixed). No longer says "not yet implemented" anywhere. (~3400 tok)
- `verdict-logic-selftest.sh` — verdict-logic-selftest.sh -- deterministic, no-deployment unit test for (~3135 tok)
- `2026-08-23-15-56-15.md` — Agent Shell Transcript (~69291 tok)
- `2026-08-26-17-36-06.md` — Agent Shell Transcript (~183 tok)
## .codegraph/
- `.gitignore` — Git ignore rules (~61 tok)
- `daemon.log` (~6538 tok)
- `codegraph.db-shm` (~26215 tok)
- `codegraph.db-wal` (~0 tok)
- `daemon.log` (~22564 tok)
- `daemon.pid` (~45 tok)
## .kiro/settings/rules/
@ -398,6 +145,11 @@
- `spec.json` (~129 tok)
- `tasks.md` — Implementation Plan (~3693 tok)
## .kiro/specs/eliminate-frontend-makefile/
- `brief.md` — Brief: eliminate-frontend-makefile (~2334 tok)
- `spec.json` (~236 tok)
## .kiro/specs/ha-commit-barrier-rollout/
- `brief.md` — Brief: ha-commit-barrier-rollout (~626 tok)
@ -711,7 +463,7 @@
- `brief.md` — Brief: scheduler-sim-decision-parity (~2025 tok)
- `design.md` — Design Document (~8189 tok)
- `requirements.md` — Requirements Document, 5 reqs (accounting parity, capacity awareness, decision visibility, graceful degradation, no regression) (~1400 tok)
- `requirements.md` — Requirements Document, 5 reqs (accounting parity, capacity awareness, decision visibility, graceful degradation, no regression) (~1652 tok)
- `research.md` — Research & Design Decisions (~2853 tok)
- `spec.json` (~134 tok)
- `tasks.md` — Implementation Plan (~4736 tok)
@ -722,17 +474,18 @@
## .kiro/specs/scheduler-sim-eager-reconciliation/
- `design.md` — Design Document (~5193 tok)
- `requirements.md` — Requirements Document (~2312 tok)
- `spec.json` (~137 tok)
- `research.md` — Research & Design Decisions (~4657 tok)
- `spec.json` (~133 tok)
- `tasks.md` — Implementation Plan (~1748 tok)
## .kiro/specs/scheduler-sim-repl-verbosity/
- `design.md` — Design Document: REPL continue-mode output (event echo gate, round rollup + collapse-range flush interface, jobid range compression, sim_print_decision gate) (~6900 tok)
- `design.md` — Design Document: REPL continue-mode output (event echo gate, round rollup + collapse-range flush interface, jobid range compression, sim_print_decision gate) (~6617 tok)
- `requirements.md` — Requirements Document: 5 EARS requirement areas (mode-aware echo, per-round summary, collapsing, jobid ranges, no regression) (~1852 tok)
- `research.md` — Research & Design Decisions, incl. the flush-interface gap found/fixed during task-graph sanity review (~3600 tok)
- `spec.json` — phase: tasks-generated, ready_for_implementation: true (~220 tok)
- `research.md` — Research & Design Decisions, incl. the flush-interface gap found/fixed during task-graph sanity review (~3238 tok)
- `spec.json` (~131 tok)
- `tasks.md` — Implementation Plan: 5 major tasks / 9 sub-tasks, TDD-paired, tasks 3-4 parallel-safe after task 2 (~1900 tok)
- `tasks.md` — Implementation Plan (~1962 tok)
## .kiro/specs/worker-join-refactor/
@ -748,6 +501,11 @@
- `brief.md` — Brief: worker-rejoin-resync (~1394 tok)
- `spec.json` (~200 tok)
## .kiro/specs/xce-test-cli-ux/
- `requirements.md` — Requirements Document (~3004 tok)
- `spec.json` (~131 tok)
## .kiro/specs/xce-test-e2e-primitives/
- `design.md` — Design Document — xce-test-e2e-primitives (~2913 tok)
@ -756,16 +514,25 @@
- `spec.json` (~271 tok)
- `tasks.md` — Implementation Plan (~4188 tok)
## .kiro/specs/xce-test-rc-file/
- `design.md` — Design Document (~4183 tok)
- `requirements.md` — Requirements Document (~1477 tok)
- `research.md` — Summary (~1771 tok)
- `spec.json` (~128 tok)
- `tasks.md` — Implementation Plan (~1896 tok)
## .kiro/steering/
- `api-standards.md` — API Standards (~1447 tok)
- `api-standards.md` — API Standards (~1704 tok)
- `build-deployment.md` — Build & Deployment (~2917 tok)
- `config-design.md` — Configuration Design: What Belongs in Shared Config (~2053 tok)
- `error-handling.md` — Error Handling Standards (~1367 tok)
- `ha-async-io.md` — HA Protocol & Async I/O (~4721 tok)
- `persistence.md` — WAL & Persistence Durability (~3425 tok)
- `product.md` — Product Overview (~1509 tok)
- `roadmap.md` — Roadmap (~15496 tok)
- `roadmap.md` — Roadmap (~15324 tok)
- `scheduler-driver-equivalence.md` — Scheduler Driver Equivalence (~1520 tok)
- `security.md` — Security Standards (~1636 tok)
- `structure.md` — Project Structure (~1348 tok)
- `tech.md` — Technology Stack (~1500 tok)
@ -805,11 +572,7 @@
- `flake.nix` (~1301 tok)
- `meson.build` (~672 tok)
- `meson.options` — dirty-content-fingerprint task 1: sibling `dirty_fingerprint` string option (default '') added next to commit_id/build_time (~135 tok)
## src/.claude/
- `ucai-formatter-cache.local.json` (~17 tok)
- `meson.options` — dirty-content-fingerprint task 1: sibling `dirty_fingerprint` string option (default '') added next to commit_id/build_time (~124 tok)
## src/autoscaler/
@ -921,348 +684,116 @@
- `requestMachines.sh` (~20 tok)
- `requestReturnMachines.sh` (~38 tok)
## src/configs/
## src/build-asan/
- `.resources.yaml.~undo-tree~` (~2957 tok)
- `hosts.yaml` (~248 tok)
- `limits.yaml` (~475 tok)
- `queues.yaml` (~504 tok)
- `resources.yaml` — Declares type (~1687 tok)
- `scaler.yaml` (~102 tok)
- `users.yaml` — define usergroup share (~47 tok)
- `xce.yaml` (~33 tok)
- `.gitignore` — Git ignore rules (~25 tok)
- `.hgignore` — This file is autogenerated by Meson. If you change or delete it, it won't be recreated. (~29 tok)
- `.ninja_log` — ninja log v7 (~34178 tok)
- `build.ninja` — This is the build file for project "xce" (~238122 tok)
- `compile_commands.json` (~247104 tok)
- `xce` (~176 tok)
## src/configs/schema/
## src/build-asan/controller/apiserver_push_unit_test.p/
- `hosts.schema.json` (~1016 tok)
- `limits.schema.json` (~454 tok)
- `queues.schema.json` (~1154 tok)
- `resources.schema.json` (~342 tok)
- `scaler.schema.json` (~232 tok)
- `users.schema.json` (~284 tok)
- `xce.schema.json` (~312 tok)
- `apiserver.c.o` (~269434 tok)
- `dataex.c.o` (~255400 tok)
- `testsuite_test_job_array_apiserver_push.c.o` (~264685 tok)
## src/controller/
## src/build-asan/controller/controller_unit_test.p/
- `apiserver.c` — include <errno.h> (~5966 tok)
- `CLAUDE.md` — XCE Controller (~4927 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)
- `ctrl_metrics.c` — include "ctrl_metrics.h" (~767 tok)
- `ctrlstatus.c` — include "config.h" (~3234 tok)
- `dataex.c` — include <errno.h> (~2531 tok)
- `egress.c` (~1130 tok)
- `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>; 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` (~3546 tok)
- `misc.c` — include <errno.h> (~1359 tok)
- `myapp.c` — define _GNU_SOURCE (~6277 tok)
- `myconf.c` — define _GNU_SOURCE (~1180 tok)
- `opget.c` — include "config.h" (~1730 tok)
- `opupd.c` — include "config.h" (~714 tok)
- `persist.c` — define _GNU_SOURCE (~106216 tok)
- `queue.c` — include <errno.h> (~1554 tok)
- `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>; 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` — validate_vcpus/peer_count/cert_files/startup_config/heartbeat_config; bug-1695: also hosts myapp_leader_already_known() (extracted from myapp.c so it links into controller_unit_test, which excludes myapp.c) (~3050 tok)
- `task.c` — include <errno.h> (~1376 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)
- `commit.c.o` (~256615 tok)
- `ctrl_metrics.c.o` (~14066 tok)
- `ctrlstatus.c.o` (~253988 tok)
- `egress.c.o` (~246954 tok)
- `ha_convergence.c.o` (~259978 tok)
- `join.c.o` (~259103 tok)
- `opupd.c.o` (~252253 tok)
- `queue.c.o` (~255055 tok)
- `repl.c.o` (~256263 tok)
- `slowlane.c.o` (~26286 tok)
- `startup_validation.c.o` (~250657 tok)
- `testsuite_configcompare.c.o` (~30589 tok)
- `testsuite_controller_test.c.o` (~52147 tok)
- `testsuite_rcfile.c.o` (~19766 tok)
- `testsuite_snapdiff.c.o` (~30235 tok)
- `testsuite_snapverify.c.o` (~40726 tok)
- `testsuite_test_apply_reapply_idempotency.c.o` (~267824 tok)
- `testsuite_test_apply_seam.c.o` (~259051 tok)
- `testsuite_test_bug857_regression.c.o` (~271414 tok)
- `testsuite_test_cluster_persist.c.o` (~269684 tok)
- `testsuite_test_coldstart_lsn0.c.o` (~269200 tok)
- `testsuite_test_commit_admission_pool.c.o` (~255382 tok)
- `testsuite_test_configcompare.c.o` (~56534 tok)
- `testsuite_test_ctrl_metrics.c.o` (~39039 tok)
- `testsuite_test_dispatch_fail_terminal.c.o` (~265949 tok)
- `testsuite_test_drive_async_config.c.o` (~258287 tok)
- `testsuite_test_e2e_checkpoint.c.o` (~229647 tok)
- `testsuite_test_e2e_gc.c.o` (~223678 tok)
- `testsuite_test_e2e_wal.c.o` (~226506 tok)
- `testsuite_test_egress_filter.c.o` (~272202 tok)
- `testsuite_test_fetchfile_disconnect.c.o` (~261723 tok)
- `testsuite_test_gc_retention.c.o` (~217751 tok)
- `testsuite_test_ha_bootstrap_support.c.o` (~245136 tok)
- `testsuite_test_ha_cluster.c.o` (~259030 tok)
- `testsuite_test_ha_ctrlhello.c.o` (~268038 tok)
- `testsuite_test_ha_elect_ctx_lifecycle.c.o` (~265129 tok)
- `testsuite_test_ha_failover_prevote.c.o` (~274783 tok)
- `testsuite_test_ha_failover.c.o` (~273020 tok)
- `testsuite_test_ha_heartbeat_committed.c.o` (~266799 tok)
- `testsuite_test_ha_redirect.c.o` (~252976 tok)
- `testsuite_test_ha_repl_push.c.o` (~267090 tok)
- `testsuite_test_ha_start_election_async.c.o` (~269563 tok)
- `testsuite_test_ha_vote_floor_heartbeat.c.o` (~270577 tok)
- `testsuite_test_hooks.c.o` (~248860 tok)
- `testsuite_test_job_array_fence.c.o` (~270968 tok)
- `testsuite_test_job_dispatch_fail_count.c.o` (~201471 tok)
- `testsuite_test_job_dispatch.c.o` (~30881 tok)
- `testsuite_test_jobdispatch_no_double_notify.c.o` (~273947 tok)
- `testsuite_test_join_redirect.c.o` (~254908 tok)
- `testsuite_test_p1_integration.c.o` (~254297 tok)
- `testsuite_test_p2_integration.c.o` (~262497 tok)
- `testsuite_test_p3_manual_failover.c.o` (~253028 tok)
- `testsuite_test_persist_checkpoint_offload.c.o` (~274642 tok)
- `testsuite_test_persist_checkpoint.c.o` (~223341 tok)
- `testsuite_test_persist_recovery.c.o` (~274130 tok)
- `testsuite_test_persist_repl.c.o` (~209772 tok)
- `testsuite_test_persist_schema.c.o` (~247187 tok)
- `testsuite_test_persist_types.c.o` (~200420 tok)
- `testsuite_test_persist_wal.c.o` (~222899 tok)
- `testsuite_test_rcfile.c.o` (~61221 tok)
- `testsuite_test_repl_apply.c.o` (~217832 tok)
- `testsuite_test_repl_catchup.c.o` (~42126 tok)
- `testsuite_test_repl_majority.c.o` (~258306 tok)
- `testsuite_test_repl_unit.c.o` (~269036 tok)
- `testsuite_test_replay_apply_seam.c.o` (~269938 tok)
- `testsuite_test_slowlane.c.o` (~51878 tok)
- `testsuite_test_snapdiff.c.o` (~50170 tok)
- `testsuite_test_snapverify.c.o` (~61878 tok)
- `testsuite_test_term_adoption_vectors.c.o` (~273567 tok)
- `testsuite_test_upgrade_snapshot_restore.c.o` (~267366 tok)
- `testsuite_test_walcompare.c.o` (~243026 tok)
- `testsuite_test_waldump.c.o` (~272426 tok)
- `testsuite_walcompare.c.o` (~201332 tok)
- `testsuite_waldump.c.o` (~267791 tok)
- `worker.c.o` (~273718 tok)
## src/controller/include/
## src/build-asan/controller/resval_typeresolve_unit_test.p/
- `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)
- `testsuite_resval_typeresolve.c.o` (~228167 tok)
- `testsuite_test_resval_typeresolve.c.o` (~245352 tok)
## src/controller/testsuite/
## src/build-asan/controller/sched_push_unit_test.p/
- `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> (~2506 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)
- `snapdiff.c` — define _GNU_SOURCE (~893 tok)
- `snapdiff.h` — pragma once (~610 tok)
- `snapverify.c` — define _GNU_SOURCE (~4322 tok)
- `snapverify.h` — pragma once (~1339 tok)
- `test_apply_committed_entry.c` — Declares directly (~11605 tok)
- `test_apply_correctness_verification.c` — Declares driving (~19199 tok)
- `test_apply_pump_integration.c` — Declares hook (~18120 tok)
- `test_apply_pump.c` (~22429 tok)
- `test_apply_reapply_idempotency.c` — Declares xce_job_t (~4312 tok)
- `test_apply_seam.c` — raft-apply-decoupling task 2.1: calls apply_job_start/finish/fail/update_transition() directly on a bare jobmgr+job_t (no cluster_t), bypassing on_job_start/finish/fail, to prove the extracted guard cores work outside the receipt path (~3144 tok)
- `test_bug857_regression.c` — Declares void (~6525 tok)
- `test_cluster_persist.c` — define _GNU_SOURCE (~1755 tok)
- `test_coldstart_lsn0.c` — Declares char (~4729 tok)
- `test_commit_admission_pool.c` — Declares int (~2315 tok)
- `test_commit_barrier_reply.c` — Declares uint8_t (~45624 tok)
- `test_commit_barrier_rollout.c` — Declares explicitly (~29654 tok)
- `test_commit_durability.c` — define _GNU_SOURCE (~33748 tok)
- `test_commit_engine.c` (~19059 tok)
- `test_commit_resolve.c` (~15028 tok)
- `test_config_repl.c` — define _GNU_SOURCE (~93438 tok)
- `test_configcompare.c` — define _GNU_SOURCE (~2224 tok)
- `test_convergence_verification.c` — define _GNU_SOURCE (~20242 tok)
- `test_ctrl_metrics.c` — define _GNU_SOURCE (~949 tok)
- `test_ctrlstatus.c` — include <stdatomic.h> (~6287 tok)
- `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_ha_startup.c` — startup validation + dispatch gate + myapp_run building-block tests; bug-1695: 7 new tests for myapp_leader_already_known() (stale-restored-term regression, term-advance/primary-fd/first-boot/voted-for-name/self-vote cases) (~10750 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_persist_checkpoint_offload.c` — bug-1694 regression suite: proves checkpoint_task_fn (persist.c) no longer blocks the delaymgr thread with real checkpoint I/O -- gated XCE_TESTING hook (persist_checkpoint_test_hook) + park/release probe mirrors test_ha_liveness.c's reconnect/configpush offload tests. 3 tests: GREEN (trigger returns promptly, body runs on a slow-lane thread), RED (flag OFF reproduces pre-fix inline blocking), no-cluster fallback (~3456 tok)
- `test_repl_apply.c` — include <dirent.h> (~5812 tok)
- `test_resval_typeresolve.c` — Declares override (~1118 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)
- `test_wal_job_finish_fact.c` — Declares as (~6904 tok)
- `test_wal_job_preason_fact.c` — bug-1692 regression suite: WAL_JOB_PREASON restart-drop fix for job.pend_reasons (xce_job_preason_t*: host+resource-based reasons, plain calloc/strdup-backed, NOT xstring/RTTI). 11 tests: apply_committed_entry unconditional-decode (no-state-change is key, since set_preason()/do_clr_preason() never change state) + forward-transition + backward-compat + CLEAR (presence-byte=0 must reset to NULL — the one divergence from bug-1690/1691's precedent, since pend_reasons has a real clear op) + decode-edge-case, apply_wal_entry mirrors of same, direct-payload restart replay (host+resource reasons), and real do_set_preason()/do_clr_preason() production-path restart-replay tests (needed a minimal zeroed endpoint_t since do_set_preason() calls xce_reply() before processing — mirrors test_commit_barrier_reply.c's fixture) proving both SET and CLEAR survive restart (~11300 tok)
- `test_wal_job_rusage_fact.c` — bug-1690 regression suite: WAL_JOB_RUSAGE restart-drop fix for job.run_usage. 8 tests covering both apply seams, backward compat, restart replay via the real persist_job_hook_fun(), and (key test) a merge-safety proof using a real makeString()'d host_name to confirm the fix never frees a live/xstring-backed pointer (~9250 tok)
- `test_wal_job_start_fact.c` — Declares as (~6378 tok)
- `test.c` — include <argp.h>. jobid-%lu-to-fmt_jobid task (2026-08-21): all 10 remaining raw `%lu` jobid printfs (cmd_jobkill, cmd_jobckpt, run_task_local, handle_notify x3, handle_runtasks x2, check_run_jobs, check_run_tasks) converted to `fmt_jobid(buf, sizeof(buf) - 1, ...)` + `%s`, matching this file's existing convention (buf/jobidStr/wantStr precedents at ~1559/1980/2405-2422); no new #include needed. Loop-scoped buffers repopulated fresh per iteration where the jobid varies (check_run_jobs, check_run_tasks, handle_notify's per-case union fields); reused a single populate when the jobid is loop-invariant (handle_runtasks: same runmsg->jobid across the task loop) (~40184 tok)
- `dataex.c.o` (~255400 tok)
- `egress.c.o` (~246954 tok)
- `sched.c.o` (~267906 tok)
- `testsuite_test_job_array_sched_push.c.o` (~264250 tok)
## src/frontend/
## src/build-asan/controller/sched_worker_change_unit_test.p/
- `Makefile` — XCE project — test targets (~2823 tok)
## src/frontend/apiserver/
- `meson.build` — frontend/apiserver — Go REST API server with CGO backend integration. (~613 tok)
## src/frontend/apiserver/backend/
- `convert_pure.go` — Struct: rawStartInfo (~3599 tok)
- `convert_test.go` — TestRawJobToModel_BasicFields, TestRawJobToModel_FromHost_EmptySafe, TestRawJobToModel_NilSubmit, Te (~7115 tok)
- `convert.go` — go:build cgo (~3606 tok)
- `handler_test.go` — TestOnHostConfigUpdated_UnregisteredHostIgnored, TestOnHostConfigUpdated_DefaultPseudoHostIgnored, T (~5356 tok)
- `handler.go` — Struct: DefaultHandler (~2878 tok)
- `integration_test.go` — go:build !cgo (~4494 tok)
## src/frontend/apiserver/cmd/
- `main_test.go` — dirty-content-fingerprint task 4.4: `TestComposeVersionDisplay`, table-driven, 6 cases covering strip-and-append, clean/no-fingerprint passthrough, degraded-dirty passthrough (`unknown`), append-with-nothing-to-strip, and an anchored-suffix (non-blind-substring) regression case; mutation-tested live (swapping the `"-dirty"` literal for `"-clean"` correctly fails 2/6 subtests) (~550 tok)
- `main.go` (~1611 tok)
## src/frontend/apiserver/controllers/
- `jobs_test.go` — TestPreCheckJobRequest_LostAndFound, TestJobsListFieldValidation_UsesJobInfoNotSubmitRequest, TestPr (~1292 tok)
- `jobs.go` — Struct: JobController (~30746 tok)
## src/frontend/apiserver/models/
- `jobs.go` — Struct: JobArrayID (~6787 tok)
## src/frontend/apiserver/store/
- `query.go` — ExecuteQuery, MatchesCondition, MatchesBitmaskCondition, IsBitmaskField, FilterRows (~2564 tok)
## src/frontend/xcecli/
- `meson.build` — frontend/xcecli — Go CLI tool (~195 tok)
## src/frontend/xcecli/cmd/
- `main_test.go` — dirty-content-fingerprint task 4.5: table-driven `TestComposeVersionDisplay` (6 cases incl. anchored-suffix regression), mirrors apiserver's task-4.4 test (~594 tok)
- `main.go` (~1172 tok)
## src/frontend/xcecli/cmd/jobs/
- `submit.go` — Struct: JobSubmitter (~6572 tok)
## src/frontend/xcecli/common/request/
- `request_test.go` — TestExtractErrorMessage, TestAuthHeaderConsistency (~377 tok)
- `request.go` — Struct: APIResponse (~2824 tok)
## src/frontend/xcecli/models/
- `jobs.go` — Struct: JobsResponse (~5211 tok)
## src/frontend/xcecli/router/
- `router.go` — Execute(cm, version string); build-time-versioning task 4.5: signature extended with `version string` param, sets `rootCmd.Version = version` before `rootCmd.Execute()` so Cobra's native `--version` handling prints/exits (~900 tok)
## src/include/
- `persist.h` — pragma once (~26099 tok)
- `utils.h` — dirty-content-fingerprint task 3.1: new `xce_compose_version_ex()` extern decl (--version-only sibling of xce_compose_version(), adds optional `dirty_fingerprint` param); startup-log call sites keep calling the untouched xce_compose_version() (~2720 tok)
- `wal_types.h` — pragma once (~4524 tok)
## src/include/xce/
- `types.h` — < NULL. (~5439 tok)
## src/lib/
- `group.c` — include <errno.h> (~2635 tok)
- `jobj.c` — include <errno.h> (~6130 tok)
- `utils.c` — dirty-content-fingerprint task 3.1: `xce_compose_version_ex()` added after xce_compose_version() -- when dirty_fingerprint empty, delegates straight to xce_compose_version() (byte-identical); when non-empty, strips a literal trailing "-dirty" off the commit field (anchored suffix check, not blind substring) and appends "-<dirty_fingerprint>" before composing. commit_id/xce_compose_version() itself untouched (~7035 tok)
## src/lib/testsuite/
- `test_group.c` — include <stdio.h> (~1659 tok)
- `test_jobj.c` — include <stdio.h> (~3856 tok)
- `test_utils.c` — dirty-content-fingerprint task 3.1: 5 new tests for xce_compose_version_ex() (strip-and-append with fingerprint, empty+clean, empty+dirty unchanged, NULL fingerprint, and a direct byte-for-byte regression proof against xce_compose_version()); all 5 pre-existing compose/version_field tests untouched and still passing (~2708 tok)
## src/nixSupport/
- `default.nix` — threads myCommitId AND (dirty-content-fingerprint task 2.2) myDirtyFingerprint to xce.nix/xcecli.nix callPackage calls; myBuildTime removed, no longer eval-time (~286 tok)
- `xce.nix` — mesonFlags has `-Dcommit_id=` and (task 2.2) `-Ddirty_fingerprint=` (both eval-time, plain mesonFlags entries); a separate `preConfigure` hook computes `date -u +%Y-%m-%dT%H:%M:%SZ` at build time and appends `-Dbuild_time=` to `mesonFlagsArray` (fixes bug-1603: builtins.currentTime broke pure-eval) -- untouched by task 2.2 (~1190 tok)
- `xcecli.nix` — same `preConfigure` build-time pattern as xce.nix, plus (task 2.2) `-Ddirty_fingerprint=` in mesonFlags (~292 tok)
## src/scheduler/
- `CLAUDE.md` — XCE Scheduler (~1188 tok)
- `meson.build` (~1426 tok)
## src/scheduler/include/
- `core.h` — if !defined(_CORE_H_) (~8550 tok)
- `plugin.h` — if !defined(_PLUGIN_H_) (~3583 tok)
- `repl.h` — if !defined(_REPL_H_); task 12.5 added xce_repl_on_replay_complete()/xce_repl_check_replay_complete() (bug-1594) (~2258 tok)
- `scheduler.h` — if !defined(_SCHEDULER_H_) (~4072 tok)
## src/scheduler/src/
- `core_clock.c` — include <stdarg.h> (~3441 tok)
- `core_events.c` — include <errno.h> (~10963 tok)
- `core_session.c` — include <errno.h> (~4367 tok)
- `core.c` — include <errno.h> (~4310 tok)
- `driver.c` — include <errno.h> (~9443 tok)
- `handler.c` — include <errno.h> (~6283 tok)
- `main.c` — build-time-versioning task 3.2 (argp_program_version runtime-composed into static `version_buf[128]`, both mutually-exclusive startup INFO lines read that buffer) PLUS dirty-content-fingerprint task 3.2 (2026-08-21): same split-buffer pattern as controller/main.c -- new static `version_display_buf[128]` via `xce_compose_version_ex()` feeds `argp_program_version`; `version_buf`/startup INFO lines untouched (Req 3.2). Live-verified: `--version` -> `7ebcba6d-cdb7cc7d`, startup log -> `7ebcba6d-dirty` (~5186 tok)
- `plugin.c` — include <errno.h> (~4344 tok)
- `recording_session.c` — include <stdint.h> (~2706 tok)
- `repl_break.c` — include <stdio.h> (~7907 tok)
- `repl_info.c` — include <stdio.h> (~9489 tok)
- `repl_internal.h` — if !defined(_REPL_INTERNAL_H_); task 12.5 added replay_complete field + repl_job_state_name extern (~3602 tok)
- `repl_params.c` — include <errno.h> (~4299 tok)
- `repl.c` — include <ctype.h>; task 12.5 added xce_repl_on_replay_complete(), replay_complete guard on step/continue, quote-stripping in repl_split_tokens() (bug-1594/1596) (~6611 tok)
- `resource.c` — include <errno.h> (~4509 tok)
- `scheduler.c` — include <errno.h> (~15839 tok)
- `sim_loop.c` — include <errno.h> (~13920 tok)
- `sim_picker.c` — include <errno.h> (~1374 tok)
- `sim_verify.c` — include <stdio.h> (~4694 tok)
- `sim.c` — include <errno.h> (~6106 tok)
- `snapshot_load.c` — include <errno.h> (~4005 tok)
- `snapshot_wire.c` — include <errno.h> (~2611 tok)
## src/scheduler/src/plugins/
- `builtin_fcfs.c` — Declares signature. bug-1686 FIXED (2026-08-25): priv->cursor/job_cursor (raw ordq_item_t*) persist across separate next_job() calls, each with its own priv->lock acquisition; a properly-locked on_queue_update()/on_job_state_change()/fcfs_remove_job_everywhere() call in between could free the exact node a cursor rests on, causing a real heap-use-after-free on the next next_job() (live SIGSEGV in fcfs_cursor_enter_queue). Fixed by NULLing whichever cursor points at a node right before it's freed, at all 3 sites -- see file header comment + buglog bug-1686 (~11900 tok)
- `limit.c` — plugin.h hooks: limit_update_config/limit_job_election/limit_prepare_allocation. bug-1685 FIXED (2026-08-25): limit_update_config()'s error path no longer calls kill_limit(limit) after a failed key_add() into privdata->limits (a kvmgr with .datakiller=kill_limit) -- that kvmgr's own xkvmgr_add() rollback (kvmgr.c) already frees `limit` once via xzarray_clear()'s killer callback (zarray.c) on any kvtab-level failure (e.g. duplicate name -> EEXIST); the removed second call was a double free (see limit.c's own inline comment + buglog bug-1685) (~4700 tok)
## src/scheduler/testsuite/
- `meson.build` — Declares vtask_entry (~19272 tok)
- `scratch_gen_resource_replay.c` (~2735 tok)
- `test_admin_request.c` — Declares level (~12713 tok)
- `test_builtin_fcfs_cursor_uaf.c` — bug-1686 regression: white-box #include ../src/plugins/builtin_fcfs.c (always-ready sched_queue_is_ready/sched_job_is_ready doubles + plugin_register stub to satisfy the linker, same convention as test_picker_fcfs_session.c) driving priv->cursor/job_cursor directly. Single-threaded repro: next_job() (dispatches job 1, cursor parked on Q1's node) -> on_queue_update() re-sorting the SAME queue name (frees the OLD ordq_item_t node the cursor rests on) -> asserts priv->cursor/job_cursor now NULL -> next_job() again returns NULL cleanly, no crash (RED pre-fix: genuine ASAN heap-use-after-free in builtin_fcfs_next_job, matching the live SIGSEGV in fcfs_cursor_enter_queue) -> fresh begin_session()/next_job() round confirms job 1 and job 2 both still findable (no job permanently lost) (~2900 tok)
- `test_clock.c` — Declares uint64_t (~5450 tok)
- `test_core_events.c` — Declares and; real dup_val() reimpl added for link (bug-1585) (~7880 tok)
- `test_core_isolation.c` — Declares char (~4069 tok)
- `test_driver_decision_cb.c` — Declares is (~3683 tok)
- `test_driver_session_ordering.c` — Declares started (~8520 tok)
- `test_driver_translate.c` — Declares field (~9514 tok)
- `test_handlers.c` — define UNIT_TEST 1 (~2728 tok)
- `test_limit_plugin.c` — bug-1685 regression: white-box #include ../src/plugins/limit.c (stubs reset_sched_obj/get_resvals/put_resvals/plugin_register to satisfy the linker) driving the real limit_update_config()/limit_init() against a real xce_scheduler_t fixture (groupmgr_init()'d core.ugmgr/qgmgr/pgmgr/hgmgr). test_duplicate_limit_name_no_double_free: two xce_limit_config_t entries with the SAME name -> asserts rc==-EEXIST with no ASAN abort (RED pre-fix: genuine heap-use-after-free in kill_limit, confirmed live). test_distinct_limit_names_both_succeed: control case, two distinct names -> rc==0 (~2900 tok)
- `test_no_bare_printf.c` — Declares char (~1702 tok)
- `test_record_lifecycle.c` — Declares char (~12710 tok)
- `test_repl_breakpoints_inspection.c` — Declares and (~19332 tok)
- `test_repl_equivalence.c` — Declares char (~7658 tok)
- `test_repl_execution_control.c` — Declares directly (~8901 tok)
- `test_repl_snapshot_params.c` — Declares char (~8179 tok)
- `test_resource_accounting.c` — Req 1.4 proof: sched_charge_account/sched_uncharge_account/sched_commit_job_alloc (resource.c) give identical resInUse/sharedInUse whether core comes from xce_scheduler_t or xce_sched_sim_driver_t; white-box core.c+resource.c (~3200 tok)
- `test_resource_accounting.c` — Declares char (~4292 tok)
- `test_resval_ownership.c` — Declares instead (~5478 tok)
- `test_scheduler_dispatch_commit.c` — scheduler-dispatch-commit task 2.1 (Req 1.1-1.3): sched_commit_decision()'s DISPATCH branch sets job->state=JOB_STAT_RUN alongside allocs/accounts; whole-scheduler_srcs link, no sched_init()/xcecli_* wrap needed. Extended task 5.1 (Req 1.1-1.3,2.1,2.3, bug-1624 e2e regression): added test_dispatch_commit_survives_several_rounds_before_confirmation (GAP_ROUNDS=5 round-boundary loop, asserts resInUse restored every round) and test_dispatch_commit_multi_round_gap_matches_same_round_confirmation (explicit value comparison via run_dispatch_then_n_rounds(1) vs (GAP_ROUNDS) helper, not just a hardcoded-constant check); RED-verified by temporarily reverting scheduler.c's job->state=JOB_STAT_RUN line (4/5 tests failed as expected), restored clean (~5000 tok)
- `test_sim_alt_events.c` — Declares char (~4966 tok)
- `test_sim_contention_parity.c` — Declares calls (~14346 tok)
- `test_sim_contention_parity.c` — scheduler-sim-decision-parity task 4.1 (Req 1.4, 2.1/2.2): record-then-replay-and-diff parity proof extending task 1.2's contention fixture (worker 10.0 capacity, jobs A/B/C wanting 8/5/2) to an ACTUAL round-by-round comparison -- Part A: real driven normal-mode recording (2 real rounds: A+C dispatch/B deny, then job D denied too, capacity fully saturated); Part B: hand-crafted `.replay` (JOB_STATE_CHANGE precedes matching DISPATCH for BOTH A and C, extending task 3's single-job technique) replayed via real unmodified sched_sim_driver_run(); real sched_account_jobs() reimpl augmented with a round-boundary resInUse snapshot spy (g_round_resinuse[]) giving per-round sim-side observability; asserts resInUse parity at EVERY round (not just final) plus decision-level (dispatch/pend) and sched_check_host_satisfy() capacity-check parity on both sides; white-box core.c+driver.c+resource.c+full sim/repl/recording stack; RED-phase discriminating power confirmed live (temporarily reverted sim_loop.c's reconciliation call site -- test failed "Expected 10 Was 0" -- restored, GREEN) (~9800 tok)
- `test_sim_e2e_original_motivation.c` — scheduler-sim-decision-parity task 4.3 (FINAL task, Req 1.1-1.3, 3.1-3.3): live-verify substitute for the missing original bug-1611/bug-1613 motivating recording (`scheduler-replay-20260820-070103.replay`, confirmed absent from this filesystem before writing). A real, driven 24-round, 12-job, resource-constrained recording (worker 20.0 capacity; ANCHOR_ID holds 12.0 permanently; J2-J12 arrive/deny/dispatch/finish across the remaining 8.0 headroom via a capacity-aware allocator thread, same technique as test_sim_resource_contention.c) is replayed through the real, unmodified interactive REPL (fork+freopen stdin/stdout, test_repl_execution_control.c's own technique). ANCHOR_ID's own arrival+RUN-confirmation are pushed via the real dataq/translate path; its OWN "originating decision" is the one deliberately-injected piece (built with real make_charge_account/sched_commit_job_alloc/make_dispatch_decision constructors, fed through the real core->decisions cbuf), because reconciliation's successful-match path is PROVABLY unreachable from any organically-live-driven round (dispatch-round and RUN-confirmation-round can never coincide for a job a real/simulated picker itself decided) -- confirmed both by source analysis and empirically (J2-J12's own real dispatches never surface via resInUse during replay, only ANCHOR_ID's does, since only its trigger was engineered same-round). Asserts "info worker" shows used=12.00 (nonzero, ANCHOR_ID's charge, constant since no churn job is ever reconciled) at 4 checkpoints across the whole replay, plus ANCHOR_ID's own "[sim] DISPATCH jobid=..." line now visible in step/continue output (bug-1611's exact symptom, fixed). RED-phase discriminating power confirmed live (reverted sim_loop.c's reconciliation call site -- DISPATCH-visibility assertion failed for the right reason -- restored, git diff clean, GREEN) (~13500 tok)
- `test_sim_e2e_original_motivation.c` (~12913 tok)
- `test_sim_equivalence.c` — Declares BOTH (~8365 tok)
- `test_sim_event_loop.c` — Declares char (~9352 tok)
- `test_sim_isolation.c` — Declares names (~8174 tok)
- `test_sim_reconcile_unaccounted.c` — Declares char (~9352 tok)
- `test_sim_record_output.c` — Declares char (~5888 tok)
- `test_sim_resource_contention.c` — scheduler-sim-decision-parity task 1.2 (Req 2.1/2.2): resource-contention replay fixture (worker w/ 10.0-unit capacity, 3 jobs wanting 8/5/2 -- job B genuinely denied by real sched_check_host_satisfy()/sched_charge_account()); proves fixture shape + dual-use (real normal-mode recording, also replayable via sim driver); white-box core.c+driver.c+resource.c+full sim/repl/recording stack (~9218 tok)
- `test_sim_round_boundary_reconciliation.c` — scheduler-sim-decision-parity task 3 (Req 1.3/1.4, 2.1/2.2): end-to-end proof that reconciliation is wired before sched_account_jobs()/xce_core_signal_go() -- job A already RUN with no live decision (JOB_STATE_CHANGE event + matching recorded DISPATCH, hand-crafted `.replay`) gets its resInUse charged (via REAL make_job_account()/sched_charge_account(), including lazy resname->residx resolution through a pre-registered makeResource()) before sched_check_host_satisfy() correctly denies/grants hypothetical capacity; real (non-stub) sched_account_jobs() reimpl, unlike every sibling sim_loop.c-including test file (~7700 tok)
- `test_sim_session_ordering.c` (~7772 tok)
- `test_sim_snapshot_reconcile_gap.c` — scheduler-sim-decision-parity task 4.2 (Req 4.1/4.2 regression, the genuinely-new check (c)): a replay starting from a SNAPSHOT that already has a job (901) in RUN state with no in-window recorded decision anywhere -- pushes a QUEUE_UPDATE+JOBS_PUSH(job.state=JOB_STAT_RUN, no allocs) directly onto a throwaway xce_scheduler_t's core via real xce_core_push_events() BEFORE sched_record_start() snapshots it, so the written `.replay`'s initial SnapshotEntry carries the RUN job with job->accounts==NULL from byte one; asserts rc==0 (no crash), job->accounts/allocs stay NULL after replay (unavailable, not fabricated), job->state stays RUN, and a second ordinary job (902) is still decided normally -- proves builtin_fcfs's JOB_IS_PEND(job->state) guard in on_job_push also keeps this job out of live-picker candidacy, so reconciliation's "not found" branch (task 2.2) is the only path that ever touches it; white-box core.c+full sim/repl/recording stack, same set as test_sim_verify.c (~6117 tok)
- `test_sim_startup.c` — Declares char (~5535 tok)
- `test_sim_verify.c` — Declares mismatch; task 3 (Req 5.2) adds append_job_state_change_event()/append_replay_session_with_dispatch_and_pend() + test_verify_with_already_resolved_job_reports_no_mismatch(): --sim-verify against a recording with an already-resolved job reports zero mismatches now that reconciliation compacts decoded_session before the verify drain loop; task 4.2 (Req 5.1/5.2, check (b) extension) adds append_replay_session_with_two_dispatches_and_pend()/append_replay_session_with_two_pends() + test_verify_with_multiple_already_resolved_jobs_across_rounds_reports_no_mismatch(): TWO already-resolved jobs (A/C) in one round with a still-genuinely-PEND job's (B) own recorded PEND sandwiched BETWEEN the two DISPATCH entries (exercises non-adjacent memmove compaction, unlike task 3's single-leading-entry case), followed by an ordinary round 2 -- caught a real test-authoring gap live: builtin_fcfs's pendJobs discipline re-offers a still-PEND job EVERY subsequent round (not just its arrival round), so round 2's recorded fixture had to include B's recurring PEND too, not just the fresh job D's (~13500 tok)
## src/schema/
- `controller.capnp` — Declares OPCode (~15094 tok)
- `dataex.c.o` (~255400 tok)
- `egress.c.o` (~246954 tok)
## src/tools/
- `deploy-ha.sh` — auto-detects real `xcecd` vs `xcecd_virtual` (XCE_REAL_WORKER / /run/systemd/system), generates sudo-wrapped start-worker.sh for real (~8000 tok)
- `go_build` — dirty-content-fingerprint task 4.1: reads `XCE_DIRTY_FINGERPRINT` (empty-safe like GitCommit/BuildTime), but falls back to plain `""` (NOT `"unknown"`, unlike the other two) and appends `-X main.DirtyFingerprint=$_dirty_fingerprint` to the existing `-ldflags` alongside GitCommit/BuildTime, unaffected (~730 tok)
- `test-build-version-regression.sh` — build-time-versioning task 6.1: standalone regression script (follows `test-commit-durability.sh`/`test-heartbeat-tolerance.sh` precedent in this dir) running a REAL `nix develop $SRC_DIR --command bash xce-build.sh scheduler <asan|debug> <dedicated build dir>` for both profiles, then `xce_scheduler --version`, failing loudly if the parsed commit id is empty/`unknown`/mismatched vs `git rev-parse --short HEAD` (+`-dirty`). Also runs a detection-capability demonstration (deliberately-wrong hash / synthetic-empty / synthetic-`unknown` commit id must all be rejected; genuine match must pass). Tolerates xce-build.sh's own non-zero exit from its bundled scheduler-suite `meson test` (bug-1560, unrelated pre-existing flake) via `cmd || rc=$?` so that doesn't mask the version check. Dedicated build dirs cleaned up on exit unless `--keep-build-dirs` passed. Live-verified passing both profiles (~3373 tok)
- `test-dirty-fingerprint-distinguishability.sh` — dirty-content-fingerprint task 6.1 (2026-08-21): standalone regression script (follows test-build-version-regression.sh's convention) proving the 4 required --version states hold via a real `xce-build.sh scheduler debug` build cycle. ISOLATION TECHNIQUE (the key design decision): since this shared repo is under continuous concurrent editing, `git status` on the ambient tree can't reliably represent "clean" -- creates its own throwaway `git worktree add --detach <tmp> HEAD` first (genuinely clean by construction), then invokes THAT worktree's own copy of xce-build.sh -- which works because xce-build.sh resolves SRC_DIR from `$0`'s location and `cd`s there itself, so every git command inside it auto-scopes to the isolated worktree with zero extra `-C`/`cd` bookkeeping. Edits `README.md` inside the isolated worktree only (`git checkout --` between edits for byte-exact reverts); shared tree's own README.md never touched (asserted via `git status --porcelain` at the end). 4 states: clean (`meson setup` fresh) -> edit-A -> edit-B (`--incremental` reconfigure for speed, safe since same single component/dir reused throughout) -> revert-to-A. `check_capture()` is the single function both the real per-state checks AND `demonstrate_detection_capability()` exercise (mirrors check_result/check_consistency precedent). Found+fixed bug-1615 live (a same-statement `local a=... b="$a/..."` cross-reference silently unbound under `set -u` -- split into two `local` statements). Live-verified: 2 full passing runs reproduce IDENTICAL fingerprints across independent runs (determinism proof); a 3rd run with edit-B deliberately forced to reproduce edit-A's content correctly FAILs (exit 1, differs-check catches the unexpected match) (~5200 tok)
- `test-dirty-fingerprint-distinguishability.sh` — test-dirty-fingerprint-distinguishability.sh — dirty-content-fingerprint (~6112 tok)
- `test-dirty-fingerprint-nix-production-path.sh` — test-dirty-fingerprint-nix-production-path.sh — dirty-content-fingerprint (~7683 tok)
- `test-dirty-fingerprint-nix-production-path.sh` — dirty-content-fingerprint task 6.3 (2026-08-21, LAST task in spec): standalone regression script proving the NIX production path (`nix build ./src#xcecore_debug`, no `--impure`) carries task 2.2's `myDirtyFingerprint` into a real build attempt, not just `nix eval`. Reuses the family's isolated `git worktree add --detach` technique, but edits `flake.nix` itself (inside `src/`, the flake's own source) rather than README.md -- the exact edit target task 2.2's own research.md already validated for `self.narHash` sensitivity. SANDBOX FINDING (new, beyond task 2.2): `nix build` here dispatches to a REMOTE builder (`ssh://.../172.31.109.18`); `--keep-failed`'s leftover build dir (containing a real, linked `scheduler/xce_scheduler`) sits on that unreachable remote host (SSH connection times out), so unlike the dev-loop scripts this one can't extract-and-run a compiled binary -- mirrors task 2.2's own accepted technique instead: `nix eval --json <flake>#packages.x86_64-linux.xcecore_debug.mesonFlags` (fast, eval-time) cross-checked against the REAL build log's `mesonConfigurePhase flags:` line (via `-L --keep-going --keep-failed`, ~1-2 min per attempt thanks to ccache reuse across edits since only flake.nix's comment changes, not C/Go source). Treats the known bcctool/goproxy.cn failure as the expected PASSING outcome (`check_reached_known_limitation()` asserts every `FAILED: [code=` line -- nix's error epilogue reprints the same one 3x for xcecore_debug's 2 outputs -- references bcctool, not a new regression) and asserts `scheduler/xce_scheduler` was actually linked before that failure. States: clean (nix eval only, empty fingerprint) -> edit-A (eval+real build) -> edit-B different content (eval+real build, differs from A in BOTH eval and real build log) -> revert-to-A (eval only, matches A exactly). Found+fixed 3 live bugs: the same bug-1615 same-statement `local` cross-reference gotcha (in `extract_flag_from_json`), BusyBox `mktemp` rejecting a `.log` suffix after `XXXXXX` (GNU-only feature -- dropped the suffix), and a `git checkout -- flake.nix` pathspec bug (`-C "$ISO_DIR"` doesn't see `src/flake.nix` as `flake.nix` -- fixed to `-C "$ISO_SRC"`). Also caught and fixed a self-check false-positive: grepping the whole script for the literal string `--impure` matched its own header prose explaining the Observable -- narrowed to only lines beginning a real `nix eval/build/develop/log` invocation. Live-verified passing end-to-end (~1m54s total, well under the 10-min-per-build budget); zero leftover worktrees/tmp dirs/logs; shared repo's `src/flake.nix` confirmed untouched (~14000 tok)
- `test-dirty-fingerprint-startup-log-unchanged.sh` — dirty-content-fingerprint task 6.2 (2026-08-21): standalone regression script proving the fingerprint (task 3.1-4.4) never leaks into either xce_scheduler's or xce_apiserver's startup log, even on a dirty tree where `--version`/`-version` clearly does show one. Reuses task 6.1's isolated `git worktree add --detach` technique (one controlled dirty edit to README.md inside the isolated worktree only) to build scheduler for real via `xce-build.sh scheduler debug`; builds apiserver via a direct `go build -ldflags` invocation (mirrors test-version-startup-consistency.sh's bug-1597 workaround) injecting the REAL fingerprint extracted from the scheduler's own `--version` output (not a second independent hash computation -- simpler and more faithful to a real single-session `xce-build.sh` run). `assert_version_shows_fingerprint()` confirms `--version`/`-version` shows `<commit>-<fingerprint>` (never the old `-dirty` format); `assert_startup_log_unchanged()` confirms the startup log's commit field is byte-identical to the original build-time-versioning format (`<commit>-dirty`) AND that the fingerprint string is absent anywhere in the line (not just the commit field). `demonstrate_detection_capability()` proves both functions reject: fingerprint leaking straight into the commit field, fingerprint leaking via an unrelated field while the commit field looks fine, and a commit-field format drift with no fingerprint involved at all -- plus a sanity pass on genuinely unchanged lines. Cleanup kills daemons by PID first, then scans `/proc/*/exe` (not cmdline text, to avoid bug-1576's self-match hazard) for any leftover process pointing at the built binaries before removing the isolated worktree. Live-verified passing twice end-to-end (real scheduler + apiserver builds and daemon starts each run); zero leftover processes/worktrees; shared repo's README.md confirmed untouched both times (~9800 tok)
- `test-version-startup-consistency.sh` — test-version-startup-consistency.sh — build-time-versioning task 6.2 (~6131 tok)
- `test-xceadmin-build-install-version.sh` — build-time-versioning task 6.3 (LAST task in spec): real `nix develop $SRC_DIR --command bash xce-build.sh xceadmin release <dir>` (meson-driven: schema sync, pinned venv install, pytest, wheel build), then installs the wheel into one fresh scratch venv and does `pip install -e src/xceadmin` into a second fresh scratch venv (both venv creation/pip install/`xceadmin --version` runs happen inside `nix develop` -- confirmed live that pycapnp's prebuilt PyPI wheel needs the nix devshell's libstdc++.so.6 resolution, absent on the bare host). Extracts the `(<commit>, <build_time>)` suffix from `xceadmin --version`'s "xceadmin, version <pkgver> (...)" output (isolating that line first via `VERSION_LINE_ANCHOR` grep before parsing parens, since captures are `2>&1` and include `nix develop`'s own "Git tree is dirty" stderr noise) and asserts: wheel install = real (non-`unknown`) fields; editable install = `unknown`/`unknown` (task 5.2 stub); the two DIFFER. `demonstrate_detection_capability()` proves synthetic unknown-in-wheel / real-in-editable / identical-outputs are all rejected. Cleanup always sweeps `.egg-info`/`__pycache__`/`.pytest_cache` left in the real `src/xceadmin` tree by the editable install (even with `--keep-artifacts`), plus the scratch venvs and meson build dir. Live-verified passing twice, `git status --porcelain` on `src/xceadmin` clean after each run (~4900 tok)
- `test-xceadmin-build-install-version.sh` — test-xceadmin-build-install-version.sh — build-time-versioning task 6.3 (~5819 tok)
- `xce-build.sh` — build-time-versioning task 2.1 computes commit_id (git rev-parse --short HEAD [+ -dirty]) + build_time (date -u) once per invocation, appended to MESON_OPTS for every profile. dirty-content-fingerprint task 2.1 (2026-08-21) adds a NEW, independent `dirty_fingerprint` computation right after that block (commit_id/build_time untouched): empty on a clean tree; sha256 (8 hex chars) over `git diff HEAD` + sorted raw content of `git ls-files --others --exclude-standard` when dirty; empty (never fabricated) if the hash computation itself fails (e.g. sha256sum missing) -- every intermediate command is guarded via explicit `if`/`elif` so a failure degrades gracefully instead of tripping the script's own `set -euo pipefail`. Uses two `mktemp` scratch files (cleaned up unconditionally), zero working-tree/index mutation. Appended as `-Ddirty_fingerprint="$dirty_fingerprint"` on the same MESON_OPTS line as commit_id/build_time, so it reaches every profile (asan/debug/release) identically. Live-verified via real `nix develop ... xce-build.sh scheduler debug`+`lib asan`+`lib release` builds against `compile_commands.json`'s `-DVERSION_DIRTY_FINGERPRINT=`: edit-A -> hash X, edit-B -> different hash Y, revert-to-A -> hash X again exactly, `.bak`-gitignored file added -> hash unchanged; `commit_id`'s `-dirty` suffix confirmed unaffected throughout. `set -euo pipefail` means its bundled scheduler-suite `meson test` failing (bug-1560) makes the WHOLE invocation exit non-zero even when compile succeeded (~4400 tok)
## src/worker/src/
- `controller_connector.c` — include "client.h"; jobid-readability (2026-08-21): 21 job-id `%lu` log sites across 10 functions (`dump_startjob_request`, `job_start_remote_task`, `job_start_local_task`, `handle_startjob`, `handle_runtasks`, `handle_fetchfile`, `handle_jobcontrol`, `xcecd_job_remote_start`, `xcecd_jobrusage_update`) now render via `fmt_jobid()` into a local `jobidStr[64]` instead of raw uint64; `handle_fetchfile`'s `offset=%lu` byte-offset field is NOT a jobid and was left raw (~18100 tok)
- `main.c` — include "sqlite3.h"; jobid-readability (2026-08-21): 4 job-id `%lu` log sites (`master_disconnect_callback`, `master_job_status_callback`, `master_ckpt_result_callback`, `master_rusages_callback`) now render via `fmt_jobid()` into a local `jobidStr[64]` instead of raw uint64 (~6282 tok)
- `resource_sync.c` — include "resource_sync.h" (~3926 tok)
- `uv_ipc.c` — include "uv_ipc.h" (~12231 tok)
- `xcecd_cgroups.c` — include "xcecd_cgroups.h"; jobid-readability (2026-08-21): `collect_job_rusages()`'s rusage TRACE log job-id `%lu` -> `fmt_jobid()`/`jobidStr[64]`; the `xcecd-worker-%lu.service` unit-name snprintf (line ~1406) deliberately left untouched (behavioral, not log formatting) (~13889 tok)
- `xcecd_dbus_manager.c` — include "xcecd_dbus_manager.h"; jobid-readability (2026-08-21): `dbus_stop_all_workers()`'s "Job %lu killed" log -> `fmt_jobid()`/per-iteration `jobidStr[64]` (~3777 tok)
- `xcecd_worker_utils.c` — include "xcecd_worker_utils.h"; jobid-readability (2026-08-21): 9 job-id `%lu` log sites across `update_worker_status()` (6, shared one `jobidStr[64]` populated once after `job->job_id` is set), `find_worker_by_jobid()`, `resend_job_status()` (per-iteration buffer), `check_worker_sleep_time_elapsed()` -> all now `fmt_jobid()` (~4658 tok)
- `xcecd_worker.c` — include "inter_job_utils.h"; jobid-readability (2026-08-21): 30 job-id `%lu` log sites (31 conversions, `worker_signal_callback`'s "Signal for job X but current job is Y" line has two) across `on_rusage_timer`, `xjob_start_vnc`/`xjob_stop_vnc`, `worker_job_callback` (11, shared one `jobidStr[64]` populated once after `jobid = info->job_id`), `worker_signal_callback` (`jobidStr` for param `job_id` + separate `curJobidStr` for global `jobid`), `do_criu_ckpt`, `worker_ckpt_callback` -> all now `fmt_jobid()`; `snprintf(ckpt_dir, ..., "%s/%lu", CKPT_BASE, job_id)` (on-disk path, not a log) intentionally left raw (~12812 tok)
- `xcecd.c` — fake pids used in virtual cluster; jobid-readability (2026-08-21): `xcecd_process_command()`'s "No startinfo provided, job %lu" log -> `fmt_jobid()`/`jobidStr[64]` (~5154 tok)
## src/worker/testsuite/
- `meson.build` — Worker unit test suite (component-failover-adoption, task 2.1). White-box (~1147 tok)
- `test_dbus_workers_update.c` — Declares started (~3398 tok)
- `test_resource_sync.c` (~1374 tok)
## src/xceadmin/
- `meson-build.sh` — Meson-driven xceadmin build: install + test out-of-tree, in the meson; dirty-content-fingerprint task 5.1 (2026-08-21): reads new $8 positional `dirty_fingerprint` (independent empty-string fallback, NOT "unknown"), writes `DIRTY_FINGERPRINT` as a third field into generated `_build_info.py`. Live-verified: dirty tree -> real hash matching compile_commands.json's `-DVERSION_DIRTY_FINGERPRINT=`; `-Ddirty_fingerprint=` explicit empty -> `DIRTY_FINGERPRINT = ""` while GIT_COMMIT/BUILD_TIME still fall back to "unknown" independently; 261 tests pass in all scenarios (~2100 tok)
- `meson.build` — xceadmin (admin-config-tool): Python package, no C compilation; dirty-content-fingerprint task 5.1: custom_target gains a third positional arg `get_option('dirty_fingerprint')` after commit_id/build_time (~1140 tok)
- `pyproject.toml` — XCE cluster configuration admin CLI (config build / config push) (~662 tok)
## src/xceadmin/src/xceadmin/
- `_build_info.py` — Committed fallback build-info stub (build-time-versioning task 5.2; (~360 tok)
- `cli.py` — xceadmin command-line entry point (design.md, ``xceadmin.cli``; (~4225 tok)
## src/xceadmin/tests/
- `test_cli.py` — Tests for the xceadmin CLI (design.md, ``xceadmin.cli``; task 1.1's (~8975 tok)
- `deploy-ha.sh` (~8298 tok)