glove/tests/supervisor
0xkite 6971f61f00
Merge current PR #23 head 4097a21 with validated Apple repairs
Merge PR #23 head 4097a21adb (Velinus's
"Make Apple resource sampling lifecycle safe") into the Layer-2
integration branch, preserving all contributor commits unchanged.

Retained proven fixes from 4097a21:
- Sampler creation moves into start_finalizer() so a sampler
  std::system_error is reported synchronously to the caller. In
  ca8600a the sampler was constructed inside finalize() after the
  caller had treated startup as successful; the failure path
  published an error without attach reaping, container deletion, or
  durable mark_managed_failed, and set finished_ so stop() became a
  no-op while attach/container survived.

Repairs retained beyond the contributor head, each bound to a
demonstrated failure:
- std::jthread + deterministic stop_token handles the partial-start
  case where sampler construction succeeds but finalizer launch
  fails (regression: tests/control/apple_container_unavailable_test
  and the start_sampler_then_finalizer seam used by production).
- Restored hard-disabled Apple boundary: lifecycle_operational()
  false, receipt schema 0, disk enforcement unavailable, empty
  managed runtime advertisement, and public method denial before
  any side effect. The current PR #23 head crossed the reviewed
  activation boundary (schema 0 -> 1, filesystem_quota advertised,
  lifecycle constructed-state true) without live-validation.
- glaze parsing hardened: strict_json_options now sets
  null_terminated=false; non-NUL-terminated string_views fed
  parse_apple_container_stats and duplicate_key_guard caused a
  heap-buffer-overflow read in glz::skip_ws (ASan crash input
  [{"id":"aanumProcesses" reproduced deterministically; seed corpus
  fuzz/corpus/apple_container_stats/truncated-object.json added).
- Sage bundle projection admission hardening (Layer-1 2bba117) and
  its test coverage carried through the merge.

Validation (umask 0022):
- Dev CTest 76/76; ASan/UBSan 76/76; TSan 76/76.
- libFuzzer 10,000 units each: library_bundle, session_plan,
  apple_container_stats (LLVM 22, ASan/UBSan), all fuzz_exit=0.
- clang-format clean on changed TUs; git diff --check clean.
2026-08-29 09:41:16 -06:00
..
change_apply_authorization_test.cpp Add bounded path exposure and retained apply controls 2026-07-20 08:59:38 -04:00
change_apply_exchange_test.cpp Add bounded path exposure and retained apply controls 2026-07-20 08:59:38 -04:00
change_apply_gate_test.cpp Add bounded path exposure and retained apply controls 2026-07-20 08:59:38 -04:00
change_apply_journal_test.cpp test(journal): inject append failures 2026-07-21 22:25:05 -04:00
change_apply_receipt_test.cpp Add bounded path exposure and retained apply controls 2026-07-20 08:59:38 -04:00
change_apply_recovery_test.cpp Add bounded path exposure and retained apply controls 2026-07-20 08:59:38 -04:00
change_apply_trust_policy_test.cpp Add bounded path exposure and retained apply controls 2026-07-20 08:59:38 -04:00
change_manifest_test.cpp test(fuzz): cover untrusted parser boundaries 2026-07-21 22:23:45 -04:00
cloudflare_os_policy_test.cpp feat(remote): add construction-only backend 2026-08-07 22:27:35 -04:00
harness_adoption_test.cpp fix(adoption): align snapshot digest ordering 2026-08-23 21:19:23 -06:00
library_bundle_test.cpp Merge current PR #23 head 4097a21 with validated Apple repairs 2026-08-29 09:41:16 -06:00
linux_ephemeral_copy_test.cpp feat(runtime): manage sandboxed agent sessions 2026-07-30 08:49:42 -04:00
linux_session_filesystem_test.cpp Initial Glove sandbox baseline 2026-07-19 21:06:11 -04:00
path_alias_test.cpp Initial Glove sandbox baseline 2026-07-19 21:06:11 -04:00
path_exposure_journal_test.cpp test(journal): inject append failures 2026-07-21 22:25:05 -04:00
path_exposure_test.cpp feat(runtime): manage sandboxed agent sessions 2026-07-30 08:49:42 -04:00
refinement_session_plan_test.cpp fix(ci): require complete designated initializers 2026-08-14 15:27:14 -06:00
session_plan_test.cpp fix(supervisor): harden bundle projection admission 2026-08-29 09:02:55 -06:00