fix/jail-observation-trust #235

Merged
clawdie merged 5 commits from fix/jail-observation-trust into main 2026-10-29 20:54:03 +01:00
Owner
No description provided.
fix(memory): require trusted jail observation status and enforce exec_jail target existence
All checks were successful
CI / markdown (pull_request) Successful in 9s
CI / packaging (pull_request) Successful in 2s
CI / python-tests (pull_request) Successful in 20s
CI / mcp-cross-language (pull_request) Successful in 27s
CI / go (pull_request) Successful in 50s
leak-guard / guard (pull_request) Successful in 3s
813923f026
- Add JailObservation.StatusTrusted() (active or stopped) so per-jail unknown
  or empty status fails closed.
- Add existingTargetsFor() and Rule 3 in checkJailTargetEligibility() before the
  action switch: any existing target required by clone_jail (sources),
  destroy_jail (primary), or exec_jail (primary) with !StatusTrusted() fails
  closed with StatusMissingCapacity (jls/bastille conflict; re-probe).
- Add explicit exec_jail case in checkJailTargetEligibility() requiring an
  explicit jail:<name> target present in cap.JailObservations.
- Add 4x4 observation_trust_table_across_statuses_and_actions test matrix plus
  missing-target exec_jail check and refresh Go token badge.
refactor(memory): rename obs to jailObserv and harden jail observation tests
All checks were successful
CI / markdown (pull_request) Successful in 9s
CI / packaging (pull_request) Successful in 2s
CI / python-tests (pull_request) Successful in 20s
CI / mcp-cross-language (pull_request) Successful in 24s
CI / go (pull_request) Successful in 44s
leak-guard / guard (pull_request) Successful in 5s
756592164e
- Rename the Go local variable obs (and srcObs/obsList) to jailObserv across
  internal/memory production files; SPARQL ?obs variables, RDF predicates, JSON
  tags and the exported JailObservation type are unchanged.
- findJailObservation: reconcile duplicate observations for one jail
  fail-closed; any untrusted or status-disagreeing duplicate forces unknown.
- Tests: pin the production conflict shape (untrusted status while the jail
  stays in ActiveJails) for clone/destroy/exec/provision, and add a
  duplicate-observation conflict case.
refactor(memory): replace obs/buf abbreviations with descriptive names
Some checks failed
CI / markdown (pull_request) Successful in 9s
CI / packaging (pull_request) Successful in 2s
CI / python-tests (pull_request) Successful in 20s
CI / mcp-cross-language (pull_request) Successful in 25s
leak-guard / guard (pull_request) Has been cancelled
CI / go (pull_request) Has been cancelled
7a81fdb04a
- SPARQL variables: ?obs -> ?jailObserv, ?obsNodeID -> ?jailObservNodeID,
  ?obsAt -> ?nodeObservedAt, ?oldJailObs -> ?oldJailObserv (queries and the
  test assertions that match them).
- Go: obsURI -> jailObservURI, obsBuf -> jailObservationTurtle,
  insertBuf -> insertTriples, jailObs (slice) -> jailObservations, and the
  remaining test variables obs -> jailObservations / jailObserv.
- No behaviour change; RDF predicates, JSON tags and exported types unchanged.
refactor(memory): name the jail observation builder by role, not syntax
All checks were successful
CI / markdown (pull_request) Successful in 9s
CI / packaging (pull_request) Successful in 2s
CI / python-tests (pull_request) Successful in 19s
CI / mcp-cross-language (pull_request) Successful in 25s
CI / go (pull_request) Successful in 43s
leak-guard / guard (pull_request) Successful in 7s
16829f8c46
jailObservationTurtle -> jailObservationTriples. The variable holds the RDF
triples describing current jail observations; the Turtle syntax stays confined
to formatJailObservationTurtle. Matches insertTriples and projection.go wording.
refactor(memory): rename HostHeadroom to HostLiveState
All checks were successful
CI / markdown (pull_request) Successful in 9s
CI / packaging (pull_request) Successful in 2s
CI / python-tests (pull_request) Successful in 20s
CI / mcp-cross-language (pull_request) Successful in 25s
CI / go (pull_request) Successful in 43s
leak-guard / guard (pull_request) Successful in 9s
066afd0be0
HostHeadroom held everything volatile about a node (spare RAM/CPU/ZFS plus the
live jail and VM inventory), so jail fields under 'headroom' read wrongly. It
is now HostLiveState; Headroom() -> LiveState(), RefreshHeadroom ->
RefreshLiveState, HeadroomFn -> LiveStateFn, and local variables follow.

Stored and emitted names are unchanged: DynamicHeadroomObservedAt and its
JSON/RDF forms, the refresh-headroom daemon verb, SUFFICIENT_HEADROOM, and
user-facing messages. The Go token badge is refreshed.
clawdie deleted branch fix/jail-observation-trust 2026-10-29 20:54:03 +01:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
clawdie/colibri!235
No description provided.