chore(build): make xce-build.sh self-wrap into nix develop
meson/ninja/capnp/Go only exist inside the hermetic nix dev shell, but xce-build.sh never entered it itself -- the /xce-build skill documented wrapping every invocation in `nix develop ./src --command ...` by hand, so a bare `bash src/tools/xce-build.sh ...` (run directly instead of through the skill) failed opaquely with "meson: command not found". This was a recurring, previously-logged gap that resurfaced again today mid bug-1789 verification. The script now checks IN_NIX_SHELL at the top and re-execs itself under `nix develop` if unset, so every caller -- the skill, a bare invocation, CI, a human at a terminal -- gets it automatically. A nested call (already inside the shell) is a no-op past that check. README.md's daily-develop section updated to match; the old "or use nix develop --command" example is now redundant and removed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GLfB5uWRdmx2WiZSFC7Fm7
This commit is contained in:
parent
924ac32c1d
commit
028d8f6ac7
8 changed files with 6063 additions and 6025 deletions
103
.wolf/memory.md
103
.wolf/memory.md
|
|
@ -4307,3 +4307,106 @@
|
|||
| 00:27 | Edited src/scheduler/testsuite/test_sim_verify.c | modified Correction() | ~824 |
|
||||
| 00:29 | Edited .kiro/specs/scheduler-sim-eager-reconciliation/design.md | modified Correction() | ~527 |
|
||||
| 00:29 | Edited .kiro/specs/scheduler-sim-decision-parity/design.md | modified Correction() | ~624 |
|
||||
| 00:47 | Session end: 43 writes across 17 files (test_hardware_monitor.c, hardware_monitor.h, hardware_monitor.c, xcecd.c, test_xcecd_startup_order.c) | 21 reads | ~23717 tok |
|
||||
|
||||
## Session: 2026-09-07 00:47
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 00:59 | Edited src/frontend/apiserver/backend/convert_pure.go | modified WorkerDefaultOutputPath() | ~217 |
|
||||
| 00:59 | Edited src/frontend/apiserver/backend/convert.go | 5→8 lines | ~80 |
|
||||
| 00:59 | Edited src/frontend/apiserver/backend/convert.go | 3→4 lines | ~35 |
|
||||
| 00:59 | Edited src/frontend/apiserver/backend/convert_test.go | modified TestResolveExecUser_DefaultsToSubmitUserWhenEmpty() | ~259 |
|
||||
| 01:14 | Edited src/frontend/apiserver/backend/convert_pure.go | modified jobCtrlUnionDiscriminant() | ~255 |
|
||||
| 01:15 | Edited src/frontend/apiserver/backend/clib.go | 5→8 lines | ~99 |
|
||||
| 01:16 | Edited src/frontend/apiserver/backend/convert_test.go | modified TestJobCtrlUnionDiscriminant_StopResumeKillUseSiginfo() | ~279 |
|
||||
| 01:20 | Edited src/frontend/apiserver/backend/convert_pure.go | 6→8 lines | ~23 |
|
||||
| 01:21 | Edited src/frontend/apiserver/backend/convert_pure.go | modified ParseHumanJobID() | ~423 |
|
||||
| 01:21 | Edited src/frontend/apiserver/controllers/jobs.go | modified IsNumeric() | ~217 |
|
||||
| 01:21 | Edited src/frontend/apiserver/backend/convert_test.go | modified TestParseHumanJobID_NonArrayRoundTripsWithFormatJobID() | ~554 |
|
||||
| 01:22 | Edited src/frontend/apiserver/backend/convert_test.go | 5→6 lines | ~18 |
|
||||
| 01:31 | Edited src/frontend/apiserver/backend/clib.go | 1783 → 1781 | ~20 |
|
||||
| 01:58 | Edited src/lib/testsuite/test_group.c | modified test_load_configs_registers_each_group_by_name() | ~1125 |
|
||||
| 01:58 | Edited src/lib/testsuite/test_group.c | 3→6 lines | ~71 |
|
||||
| 01:59 | Edited src/include/group.h | 1→2 lines | ~34 |
|
||||
| 02:00 | Edited src/lib/group.c | added 3 condition(s) | ~391 |
|
||||
| 02:00 | Edited src/scheduler/src/scheduler.c | modified sched_init_config() | ~213 |
|
||||
| 02:00 | Edited src/scheduler/src/scheduler.c | 2→3 lines | ~16 |
|
||||
| 02:22 | Edited src/scheduler/src/scheduler.c | 2→4 lines | ~73 |
|
||||
| 02:31 | Edited src/scheduler/src/scheduler.c | modified for() | ~219 |
|
||||
| 02:39 | Edited src/lib/group.c | modified if() | ~80 |
|
||||
| 02:47 | Edited src/lib/group.c | modified if() | ~14 |
|
||||
| 02:47 | Edited src/lib/xcelimit.c | modified if() | ~155 |
|
||||
| 02:50 | Edited src/lib/xcelimit.c | modified if() | ~327 |
|
||||
| 02:57 | Edited src/lib/xcelimit.c | added 1 condition(s) | ~344 |
|
||||
| 02:57 | Edited src/lib/xcelimit.c | modified if() | ~117 |
|
||||
| 02:58 | Edited src/scheduler/src/scheduler.c | removed 17 lines | ~44 |
|
||||
| 02:59 | Edited src/lib/testsuite/test_limit.c | modified test_build_consumer_empty_config_defaults_to_all() | ~360 |
|
||||
| 02:59 | Edited src/lib/testsuite/test_limit.c | 3→4 lines | ~46 |
|
||||
| 03:09 | Edited src/scheduler/src/plugins/limit.c | modified if() | ~60 |
|
||||
| 03:12 | Edited src/scheduler/src/plugins/limit.c | expanded (+12 lines) | ~360 |
|
||||
| 03:12 | Edited src/scheduler/src/plugins/limit.c | modified if() | ~31 |
|
||||
| 03:17 | Edited src/scheduler/src/plugins/limit.c | modified if() | ~260 |
|
||||
| 03:21 | Edited src/lib/xcelimit.c | expanded (+6 lines) | ~156 |
|
||||
| 03:26 | Edited src/scheduler/src/plugins/limit.c | modified if() | ~155 |
|
||||
| 03:26 | Edited src/lib/xcelimit.c | removed 7 lines | ~22 |
|
||||
| 03:26 | Edited src/scheduler/src/plugins/limit.c | expanded (+14 lines) | ~288 |
|
||||
| 03:30 | Edited src/scheduler/src/plugins/limit.c | modified if() | ~60 |
|
||||
| 03:40 | Edited src/lib/xcelimit.c | modified if() | ~103 |
|
||||
| 03:41 | Edited src/scheduler/src/scheduler.c | modified for() | ~180 |
|
||||
| 03:46 | Edited src/lib/xcelimit.c | modified if() | ~201 |
|
||||
| 03:50 | Edited src/lib/xcelimit.c | modified if() | ~406 |
|
||||
| 03:50 | Edited src/lib/xcelimit.c | modified if() | ~56 |
|
||||
| 03:50 | Edited src/lib/xcelimit.c | 3→7 lines | ~99 |
|
||||
| 03:51 | Edited src/scheduler/src/plugins/limit.c | modified if() | ~30 |
|
||||
| 03:51 | Edited src/scheduler/src/scheduler.c | modified for() | ~72 |
|
||||
| 05:39 | Edited src/lib/group.c | 2→2 lines | ~22 |
|
||||
| 05:39 | Edited src/scheduler/src/plugins/limit.c | 3→3 lines | ~60 |
|
||||
| 05:47 | Session end: 49 writes across 12 files (convert_pure.go, convert.go, convert_test.go, clib.go, jobs.go) | 30 reads | ~9421 tok |
|
||||
|
||||
## Session: 2026-09-07 05:47
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 06:04 | Edited src/scheduler/src/plugins/seqjob_allocator.c | modified if() | ~275 |
|
||||
| 06:04 | Edited src/scheduler/src/plugins/parjob_allocator.c | modified if() | ~250 |
|
||||
| 06:05 | Edited src/scheduler/testsuite/test_seqjob_allocator.c | modified test_seqjob_prepare_allocation_global_phase_stores_slots_into_shared() | ~694 |
|
||||
| 06:06 | Edited src/scheduler/testsuite/test_parjob_combinatorial.c | modified test_parjob_prepare_allocation_global_phase_stores_slots_into_shared() | ~684 |
|
||||
| 06:07 | Edited src/scheduler/testsuite/test_parjob_combinatorial.c | 3→5 lines | ~52 |
|
||||
| 06:10 | Edited src/scheduler/src/plugins/seqjob_allocator.c | removed 21 lines | ~54 |
|
||||
| 06:11 | Edited src/scheduler/src/plugins/parjob_allocator.c | modified if() | ~58 |
|
||||
| 06:11 | Edited src/scheduler/testsuite/test_seqjob_allocator.c | removed 68 lines | ~64 |
|
||||
| 06:11 | Edited src/scheduler/testsuite/test_parjob_combinatorial.c | removed 63 lines | ~8 |
|
||||
| 06:12 | Edited src/scheduler/testsuite/test_parjob_combinatorial.c | 4→2 lines | ~26 |
|
||||
| 06:12 | Edited src/scheduler/src/resource.c | added 1 condition(s) | ~429 |
|
||||
| 06:13 | Edited src/scheduler/include/scheduler.h | 1→2 lines | ~36 |
|
||||
| 06:13 | Edited src/scheduler/src/plugin.c | 2→2 lines | ~33 |
|
||||
| 06:13 | Edited src/scheduler/src/plugin.c | modified if() | ~44 |
|
||||
| 06:17 | Edited src/scheduler/testsuite/test_resource_accounting.c | modified test_fill_limit_requests_global_slots_limit_uses_ctx_nslots() | ~1271 |
|
||||
| 06:35 | Session wrap: bug-1789 FIXED — global limits on "slots" (ug1_slots/ug1_normal_slots/limit1) always recorded 0 wanted slots per job, so their numeric caps never bound. Root cause: seqjob/parjob's prepare_allocation hooks always stage the job's wanted slot count into ctx->alloc_req.host (never .shared, since "slots" is deliberately excluded from calc_wanted_global_resvals), so sched_fill_limit_requests()'s vec-lookup always missed for a global limit. First attempt (branch the seqjob/parjob store by ctx->worker to mirror the sibling calc_wanted_*_resvals branch) broke 6 other tests — ctx->alloc_req.shared is dual-purpose, also read by sched_check_shared_satisfy() against the real global capacity pool, which has no "slots" entry at all — reverted. Real fix: sched_fill_limit_requests() takes an added xce_sched_ctx_t* ctx param and uses ctx->nslots directly (already correctly computed earlier in the same call) for a "slots"-resname'd limit only, leaving every other resource's existing vec-lookup untouched. 23 test-suite link-satisfying stubs mechanically updated to the new 4-arg signature. 2 new focused unit tests added (test_resource_accounting.c). Full scheduler suite 76/77 (only pre-existing unrelated bug-1762 remains). Live-verified via fresh single-node deploy: limit1 (cap 3) now correctly binds and PENDs the 4th of 10 submitted jobs, scheduler trace showing a real nonzero "wanted" value for the first time ever | src/scheduler/src/{resource.c,plugin.c,plugins/seqjob_allocator.c (reverted),plugins/parjob_allocator.c (reverted)}, src/scheduler/include/scheduler.h, src/scheduler/testsuite/{test_resource_accounting.c,+23 stub files}, .wolf/buglog.json (bug-1789), .wolf/cerebrum.md | FIXED, live-verified, buglog updated | ~950k |
|
||||
| 06:17 | Edited src/scheduler/testsuite/test_resource_accounting.c | 2→4 lines | ~64 |
|
||||
| 07:24 | Edited src/scheduler/src/resource.c | modified sched_fill_limit_requests() | ~511 |
|
||||
| 07:24 | Edited src/scheduler/include/scheduler.h | 2→2 lines | ~38 |
|
||||
| 07:25 | Edited src/scheduler/src/plugin.c | 2→2 lines | ~37 |
|
||||
| 07:25 | Edited src/scheduler/src/plugin.c | modified if() | ~47 |
|
||||
| 07:27 | Edited src/scheduler/testsuite/test_resource_accounting.c | modified combination() | ~2153 |
|
||||
| 07:27 | Edited src/scheduler/testsuite/test_resource_accounting.c | 2→3 lines | ~65 |
|
||||
| 07:33 | bug-1789 refined per user feedback: replaced the name-based `strcmp(res->name,"slots")` special-case with a flag-based one (`XCE_RESF_GLOBAL`, the same flag calc_wanted_global_resvals()/calc_wanted_host_resvals() already dispatch on) — sched_fill_limit_requests() now takes xce_sched_alloc_req_t* alloc_req instead of ctx (nothing else from ctx was used) and picks alloc_req->shared vs .host per-resource by that flag. 2 unit tests replaced with 3 (added a symmetric case: host-scoped limit on a genuinely-global resource reads from .shared). Full suite re-run 76/77 (same pre-existing bug-1762), fresh live redeploy re-verified byte-identical trace to the first verification. Flagged one explicit residual gap to the user: a hypothetical new global limit on a non-"slots" per-host resource (e.g. absolute mem) would still be broken, since only "slots" has a dedicated always-computed staging step — not present in current config, deliberately not attempted | src/scheduler/src/{resource.c,plugin.c}, src/scheduler/include/scheduler.h, src/scheduler/testsuite/{test_resource_accounting.c,+23 stub files}, .wolf/{buglog.json,cerebrum.md} | refined, live re-verified, buglog+cerebrum updated | ~600k |
|
||||
| 07:54 | Edited src/scheduler/src/resource.c | modified sched_fill_limit_requests() | ~657 |
|
||||
| 07:55 | Edited src/scheduler/include/scheduler.h | 2→2 lines | ~34 |
|
||||
| 07:55 | Edited src/scheduler/src/plugin.c | 2→1 lines | ~21 |
|
||||
| 07:55 | Edited src/scheduler/src/plugin.c | modified if() | ~31 |
|
||||
| 07:57 | Edited src/scheduler/testsuite/test_resource_accounting.c | modified test_fill_limit_requests_global_limit_on_host_resource_reads_host() | ~2380 |
|
||||
| 07:57 | Edited src/scheduler/testsuite/test_resource_accounting.c | 2→4 lines | ~70 |
|
||||
|
||||
## Session: 2026-09-07 08:11
|
||||
|
||||
| Time | Action | File(s) | Outcome | ~Tokens |
|
||||
|------|--------|---------|---------|--------|
|
||||
| 08:20 | Edited src/tools/xce-build.sh | modified incremental() | ~231 |
|
||||
| 08:20 | Edited src/tools/xce-build.sh | removed 4 lines | ~4 |
|
||||
| 08:22 | Edited README.md | 23→19 lines | ~199 |
|
||||
| 08:27 | Edited src/scheduler/src/resource.c | modified sched_fill_limit_requests() | ~30 |
|
||||
| 08:28 | Edited src/scheduler/include/scheduler.h | 2→1 lines | ~19 |
|
||||
| 08:28 | Edited src/scheduler/src/plugin.c | inline fix | ~19 |
|
||||
| 08:28 | Edited src/scheduler/src/plugin.c | inline fix | ~18 |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue