Skip to content

feat(onboard): add dormant Docker bootstrap primitives - #8037

Merged
ericksoa merged 171 commits into
mainfrom
feat/docker-managed-bootstrap-adapter
Aug 3, 2026
Merged

feat(onboard): add dormant Docker bootstrap primitives#8037
ericksoa merged 171 commits into
mainfrom
feat/docker-managed-bootstrap-adapter

Conversation

@ericksoa

@ericksoa ericksoa commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds the first narrowed PR3.10B review unit: dormant Docker bootstrap transaction-journal and canonical launch-spec primitives. The preserved monolithic #8037 source remains in append-only history, while this exact head tree contains only the six-path primitive slice on current main.

No adapter, shared-state transaction, provider registration, production import, or runtime activation is included. Existing Docker behavior and all user-visible support claims remain unchanged.

Related Issue

Part of #7744

Changes

  • Define a private monotonic Docker cutover journal with bounded validation and legal transition rules.
  • Define detached, deeply frozen canonical Docker launch-spec normalization and validation so the retained object cannot diverge from its canonical JSON or hash.
  • Add focused adversarial tests for journal/spec validation, nested mutation rejection, and input-alias isolation.
  • Extend the managed-bootstrap source inventory and internal dormancy documentation.
  • Preserve the former 20-file source head at backup/podman-stack/pr8037-source-ad5397af.
  • Preserve this exact head at backup/podman-stack/pr8037b1-final-a352b710b and the next split base at hold/podman-stack/pr8037b2-base-a352b710b.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification:
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: Exact-tree review covers journal monotonicity, canonical detached/frozen launch state, bounded validation, and production dormancy.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Documentation Writer Review

  • Documentation writer reviewed the completed changes
  • Result: docs-updated
  • Evidence: Exact head a352b710bd3fe57d5d28eb849d02c5d75b5a4d32 has the same tree as clean current-main reconstruction 149b3a244fe6707619010cddbad2976e880d89b2. The internal managed-bootstrap README accurately describes the dormant primitives; the exact-head follow-up only hardens the canonical object/hash boundary and adds its regression test. Source-shape coverage proves no production import or registration, so no user-facing documentation surface changes.
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit:
  • Station profile/scenario:
  • Result:
  • Supporting evidence:

Verification

  • Exact base/head: d09b530ef1d3045b0c26b6d34462cb2175d9fb94 / a352b710bd3fe57d5d28eb849d02c5d75b5a4d32.
  • Review budget: six paths, +1,062/-0.
  • Stable patch ID: 6aaa2ba4fec89d0e205d59b4a983929dfa499b95.
  • Binary diff SHA-256: 18eedcc9bb68800c18e4100ef1edd8f224bb7f6a975c7b1803682239e691ccc1.
  • Clean current-main reconstruction: 149b3a244fe6707619010cddbad2976e880d89b2; final-tree equality is exact at tree 439e941967a030b2ee54e8c0a0c9dd6a0e6d7823.
  • Append-only ancestry: prior live head 345efce48244230c3293bfe5c47e7e469155f742 and current main are both ancestors of the signed+DCO graft; no remote history was rewritten.
  • Exact-tree focused journal/spec tests: 13/13 passed; runtime-provider source-shape tests: 8/8 passed.
  • Biome, diff-check, test-size, repository checks, typecheck, typecheck:cli, normal commit hooks, and pre-push typechecks passed.
  • Production source inventory proves no adapter, provider registration, selectable runtime, or activation imports these primitives.

Risk Plan

  • Primary risk: accepting an invalid journal transition or allowing retained launch state to diverge from its canonical hash before the later adapter owns destructive cutover.
  • Containment: bounded parsers, detached canonical serialization, recursive freezing, explicit legal transitions, adversarial tests, and source-shape dormancy enforcement.
  • Regression risk: none to the active Docker path; the primitives have no production consumer.
  • Rollback: revert this inert six-path slice without changing runtime behavior.

Stack

Signed-off-by: Aaron Erickson aerickson@nvidia.com

ericksoa added 30 commits July 30, 2026 14:50
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Preserve the exact reviewed tree while moving the stacked base to merged PR3.3.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Preserve the exact reviewed tree while moving the stacked base to restacked PR3.4a.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Preserve the exact reviewed tree while moving the stacked base to restacked PR3.4b.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Carry the reviewed PR3.4b slice unchanged onto the CodeRabbit feedback fix for PR3.4a.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Carry the reviewed PR3.5 slice unchanged onto the CodeRabbit feedback restack through PR3.4b.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Carry the reviewed PR3.4b slice unchanged onto the serialized PR3.4a transaction contract.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Carry the reviewed PR3.5 slice unchanged onto the serialized PR3.4a transaction contract.

The review patch remains unchanged through PR3.4b.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Restack PR3.4b without changing its review patch.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Restack PR3.5 without changing its review patch.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
github-actions Bot and others added 5 commits August 2, 2026 19:50
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
ericksoa added a commit that referenced this pull request Aug 2, 2026
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@ericksoa
ericksoa changed the base branch from feat/managed-bootstrap-protocol to hold/podman-stack/pr8037-base-84df14a34 August 3, 2026 02:42
@ericksoa
ericksoa changed the base branch from hold/podman-stack/pr8037-base-84df14a34 to hold/podman-stack/pr8037-base-dc8691a19 August 3, 2026 02:51
@ericksoa
ericksoa changed the base branch from hold/podman-stack/pr8037-base-dc8691a19 to hold/podman-stack/pr8037-base-7a9971fc2 August 3, 2026 03:10
ericksoa added a commit that referenced this pull request Aug 3, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Defines the dormant, provider-neutral transaction and image bootstrap
boundary
for managed-image workloads. Preparation remains non-destructive;
activation is
authorized only by immutable provider, sandbox, image, startup-profile,
supervisor, and transaction receipts.

This is internal groundwork only. No production onboarding path imports
it, no
runtime becomes selectable, and no partial buildless, Docker, Podman, or
MXC
support is advertised.

## Related Issue

Part of #7744

## Changes

- Define exact bootstrap plan, prepared bootstrap replacement,
activation, commit,
  rollback, cleanup, and completion-receipt contracts.
- Require a validated Ready receipt with the exact materialized sandbox
identity
before an incomplete `createHeldWorkload` call becomes cleanup-eligible.
- Bind envelope, completion, cleanup, and rollback authority to
immutable image,
  profile, shared-state, bootstrap, sandbox, and supervisor identities.
- Keep the coordinator driver-neutral and exercise OpenClaw, Hermes, and
  LangChain Deep Agents Code through an MXC-named fake provider.
- Add a freestanding Linux amd64/arm64 native entrypoint with no ELF
interpreter,
  dynamic section, undefined runtime symbol, or C-library startup.
- Carry the complete supervisor environment through a bounded, sealed
memfd
instead of argv; close that descriptor for application/verification
helpers
  and mark it close-on-exec before the long-lived supervisor starts.
- Preserve exact environment order, duplicate assignments, GPU and local
inference settings, loader/shell process controls, and supervisor argv
only at
  the final supervisor `execve`.
- Add hostile-control, all-agent, restart/tamper, exact-environment,
descriptor,
  and count/entry/aggregate-boundary tests.
- Keep every registered runtime provider bootstrap-unsupported and all
native
  assets out of production compilation, packaging, and selection.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: The internal protocol README
is
updated, but this dormant slice changes no user-facing behavior or
support
  claim.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
  onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded —
reviewer/approval link/justification: Independent review covered native
pre-loader isolation, environment secrecy in argv/helpers, memfd sealing
and
  bounds, exact environment restoration, helper descriptor containment,
close-on-exec, all-agent behavior, immutable identity binding, rollback,
and
  exact cleanup authority.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check
  name, approval link, and follow-up issue:

## Documentation Writer Review

- [x] Documentation writer subagent reviewed the completed changes
- Result: `docs-updated`
- Evidence: `src/lib/onboard/managed-bootstrap/README.md` documents the
dormant driver-neutral protocol, rollback and exact-cleanup ownership,
packaging dormancy, all-agent scope, and deferred activation tracked by
#7744; the final exact-head commits add only regression tests for
failed-preparation retry cleanup, independent
discovery-versus-inspection disagreement, and branchless exact-ownership
cleanup, plus a shared test authority-key helper; they do not change
user-visible behavior or support claims.
- Agent: Codex Desktop
<!-- docs-review-head-sha: 0c91e0b -->
<!-- docs-review-agents-blob-sha: 3dd7c24 -->

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

## Verification

- Exact locally validated head/base:
  `0c91e0b98871b4001ebf3d51aed7c2f4b47696f9` /
  `4cd4d64fe67143b57707f874afa0b9d269dfeff2`.
- Review budget: 11 files, `+4,307/-2`.
- Stable patch ID: `fd914f4150efb33d7d7afffabc1e91beb7dba60a`.
- Raw binary-diff SHA-256:
  `bcef7150982f7f66d9e0dcb6937bb8cfc8f14583366f585ac2fcfec90ba97cbe`.
- Current-main append-only restack: signed+DCO merge `1155c1f9a` has
protected
fix parent `e9bdd6d45` and exact-main parent `4cd4d64fe`; the
managed-bootstrap
  blobs were unchanged by the merge.
- [x] Protocol, envelope, trampoline, and source-boundary suites passed
45 tests
on the exact current-main head; the 9 native-Linux cases were expected
skips
  on macOS.
- [x] Native Linux arm64 managed-bootstrap qualification passed 9/9,
including
all agents, hostile loader/shell controls, exact environment
restoration,
  sealed-descriptor attacks, restart/tamper, and every configured bound.
- [x] Independent amd64 toolchain builds produced static x86-64
executables with
no interpreter, dynamic section, or undefined symbols. Local emulated
amd64
behavioral qualification was inconclusive because the emulator/compiler
signaled; native amd64 CI remains mandatory and the exactness test was
not
  weakened.
- [x] `npm run validate:pr`, CLI typecheck, source-shape and test-size
budgets,
repository/config checks, shellcheck, Markdown lint, secret scan, DCO,
and
  `git diff --check` passed on the exact head.
- [x] Every appended commit is SSH-signed, DCO-compliant, and GitHub
Verified.
- [x] Production import and packaging guards prove the protocol remains
dormant
  with no central Docker, Podman, or MXC switch.
- [ ] Applicable broad gate passed — exact-head native CI, both
advisors,
  CodeRabbit, and protected E2E remain the remote qualification gates.

## Maintainer Architectural Disposition

The dormant coordinator is an intentional sequencing boundary. Wiring it
now
would activate a partial runtime before provider, image, rollback,
recovery,
GPU/local-inference, multiarch, installer, and protected-E2E support are
complete. Removing it would make the first concrete provider define
central
transaction semantics and undermine MXC/runtime pluggability.

This sequencing is a binding acceptance criterion from epic #7744 and
the
maintainer-approved incremental stack. #8037 is the immediate
provider-specific
source consumer of this contract and also remains inert. The advisor
suggestion
to wire this slice directly into production or remove it is therefore
explicitly
dispositioned as non-applicable: either action would violate the
one-thesis slice
boundary or activate partial runtime support before qualification.

Production source-shape tests therefore require onboarding to remain
disconnected, registered providers to remain bootstrap-unsupported, and
native
assets to remain unpackaged. A later complete provider/image/rollback
slice must
replace those assertions with all-agent registered-provider and
protected-E2E
qualification.

## Risk Plan

- Primary risk: inherited root process controls execute before
validation, the
complete supervisor environment leaks through argv/helpers, destructive
activation occurs before durable identity, or cleanup targets a reused
name.
- Containment: freestanding startup precedes any dynamic loader; exact
state is
carried in a sealed bounded descriptor; helpers cannot inherit it;
activation
requires immutable authority; cleanup requires the exact Ready sandbox
ID.
- Regression risk: accidental production import or packaging could
enable an
  incomplete runtime path. Source-shape tests fail on either change.
- Rollback: revert this dormant contract slice; no production runtime
selects
  it.

## Stack

- Base: current `main` at `4cd4d64fe67143b57707f874afa0b9d269dfeff2`.
- This slice: #8036, branch `feat/managed-bootstrap-protocol`, exact
head
  `0c91e0b98871b4001ebf3d51aed7c2f4b47696f9`.
- Next: #8037 is protected by `hold/podman-stack/pr8037-base-7a9971fc2`
and must
  be reconstructed append-only from its source branch after #8036 lands.
- #8040 remains protected by `hold/podman-stack/pr8040-base-ad5397af`.
- #8041 is protected by `hold/podman-stack/pr8041-base-8c120019`, with
exact
  source backup `backup/podman-stack/pr8041-source-ad6680ed`.
- Current release target after exact-head green is `v0.0.101`.
- Buildless and Podman support remain disabled until the complete
all-agent,
amd64/arm64, GPU, Ollama/NIM/vLLM, recovery, installer, documentation,
and
  protected-E2E gates in #7744 pass.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>




<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added a secure, provider-neutral managed bootstrap workflow with
validated requests, identity tracking, activation, completion, rollback,
and cleanup.
- Preserved supervisor arguments and environment data during bootstrap
and restart operations.
- Added canonical request and completion message handling with schema,
size, and integrity validation.

- **Security**
- Added protections against tampered metadata, unsafe environment
variables, malformed inputs, unsupported agents, and unauthorized
activation.

- **Documentation**
- Documented the bootstrap protocol, lifecycle, validation rules, and
current platform limitations.

- **Tests**
- Added extensive coverage for transactions, serialization, failures,
rollback, environment handling, and Linux startup behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@ericksoa ericksoa changed the title feat(onboard): add transactional Docker bootstrap adapter feat(onboard): add dormant Docker bootstrap primitives Aug 3, 2026
@ericksoa
ericksoa changed the base branch from hold/podman-stack/pr8037-base-7a9971fc2 to main August 3, 2026 12:50
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Preserve the reviewed implementation while making current main an explicit
ancestor without rewriting the remote branch.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 3, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@ericksoa
ericksoa merged commit b30781c into main Aug 3, 2026
93 of 99 checks passed
@ericksoa
ericksoa deleted the feat/docker-managed-bootstrap-adapter branch August 3, 2026 13:48
ericksoa added a commit that referenced this pull request Aug 3, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Adds the second narrowed PR3.10B review unit: the dormant transactional
Docker managed-bootstrap adapter and shared-state cutover. It builds on
#8037's journal/spec primitives and remains unregistered and unsupported
by every production provider.

Preparation captures immutable original and replacement authority before
destructive activation. Cleanup requires an exact validated Ready
receipt; mutable-name reuse is retained and reported instead of deleted
unsafely. Every immutable Node helper receives a scrubbed environment,
and rollback is delegated to the immutable image's canonical receipt
parser with only the three capabilities required to restore ownership,
access owner-restricted state, and restore modes.

## Related Issue

Part of #7744

## Changes

- Prepare and inspect a stopped Docker replacement before cutover.
- Persist exact sandbox, container, image, launch-spec, bootstrap, and
shared-state authority.
- Separate prepare, activate, await, commit, rollback, and
incomplete-create cleanup phases.
- Preserve Docker GPU device/runtime/CDI evidence and snapshot
compatibility.
- Bind cleanup to a Ready receipt whose sandbox name, durable sandbox
ID, and driver match current inspection.
- Reject the complete root-process injection denylist before replacement
creation.
- Run immutable Node helpers through `/usr/bin/env -i`; clear loader
variables before the scrubber and clear `NODE_OPTIONS`/`NODE_PATH` at
the pre-entrypoint boundary as defense in depth.
- Keep rollback receipts opaque on the host and validate them
canonically inside the immutable image from a read-only mount.
- Drop all rollback-helper capabilities, then add only `CHOWN`,
`DAC_OVERRIDE`, and `FOWNER` for exact restoration.
- Add regressions for hostile launch environments, planted temp targets,
malformed rollback receipts, same-name identity reuse, and unsafe
cleanup refusal.
- Keep production Docker bootstrap explicitly unsupported and prove no
provider registration or activation import changes.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [x] Docs updated for internal architecture and dormancy claims
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed — two independent exact-diff
reviews found no privilege widening, parser divergence, or activation
leak
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Documentation Writer Review

- [x] Documentation writer reviewed the completed changes
- Result: `docs-updated`
- Evidence: Candidate `875eab3f25f97134ed3347c51f8d7cc3ccc231a8` and
graft `eb8ee81cc157ea7c12e311ab4b53e87930e3ae17` share exact tree
`7ef10c62ab2f10773f8f0372dd78d41329d9f1ac`. Final qualification child
`00154381829ea31e214bc41955384755a39fe280` changes only tests, so the
reviewed documentation blobs are unchanged. Review confirmed accurate
pre-/post-cutover rollback wording, npm-package versus runtime-image
scope, activation/provider import scope, and dormant user-visible
lifecycle claims. `markdownlint-cli2`, the 8/8 source-shape contract,
and `git diff --check` pass.
- Agent: Codex Desktop
<!-- docs-review-head-sha: 0015438 -->
<!-- docs-review-agents-blob-sha:
3dd7c24 -->

## DGX Station Hardware Evidence

- [ ] Tested on DGX Station
- Tested commit:
- Station profile/scenario:
- Result:
- Supporting evidence:

## Verification

- Exact base/head: `8c542b214f15561f71b262523d80a61ed4a5e9c7` /
`00154381829ea31e214bc41955384755a39fe280` (22 files, `+4,868/-36`).
- Review budget: 21 paths, `+4,867/-35`.
- Stable patch ID: `07b3d062e2a26a8c9993f70e87ef1f5c7c0ca9db`.
- Binary diff SHA-256:
`ac4098a115e0bb14824ee7c49e211da15d268babc305a72be21b2c869b416f1d`.
- Clean reconstruction: signed+DCO commit
`875eab3f25f97134ed3347c51f8d7cc3ccc231a8`, direct child of live main
`8c542b214f15561f71b262523d80a61ed4a5e9c7`.
- Append-only graft: signed+DCO commit
`eb8ee81cc157ea7c12e311ab4b53e87930e3ae17`, first parent prior live head
`206228343ae124563be7d13b4dd620e9628f9db0`, second parent the clean
reconstruction, exact tree `7ef10c62ab2f10773f8f0372dd78d41329d9f1ac`.
Signed+DCO qualification child
`00154381829ea31e214bc41955384755a39fe280` is a normal fast-forward with
exact tree `7c3d307d40156375bf26d8b977a93d6149013650`. No remote history
was rewritten.
- Durable refs: `backup/podman-stack/pr8128-advisor-b23404994`,
`backup/podman-stack/pr8128-final-eb8ee81cc`,
`backup/podman-stack/pr8128-final-001543818`, and
`hold/podman-stack/pr8040-base-001543818`.
- Exact current-main changed-file tests passed 134/134. The complete
managed-bootstrap source reconstruction passed 149/149; security-focused
follow-up passed 20/20; source-shape dormancy passed 8/8. Final
qualification follow-up passed package-contract 8/8, temp-file 6/6, both
builds, Biome, diff checks, and hooks.
- CLI build, root/CLI/plugin typechecks, Biome, markdownlint, diff
check, test-size budget, test-conditional scan, normal commit hooks, and
normal pre-push hooks passed.
- Two independent security reviews found no blocker in the exact
advisor-fix diff. The capability set is unchanged, `/usr/bin/env -i`
remains the trusted Node boundary, immutable receipt validation remains
image-owned, and the new tests fail closed before restoration or symlink
following.
- Prior exact head `206228343ae124563be7d13b4dd620e9628f9db0` passed
ordinary CI, both advisors, CodeRabbit with zero unresolved threads,
CodeQL, and protected E2E child `30829525494` for rebuild-openclaw,
onboard-repair, onboard-resume, and state-backup-restore. Final exact
head `00154381829ea31e214bc41955384755a39fe280` must independently pass
its automatically approved current-head gates, including cloud-onboard.
- Every new commit is SSH-signed and carries Aaron's DCO trailer.
- Production provider construction still returns unsupported
bootstrap/recovery surfaces; no selectable runtime or activation is
added.

## Risk Plan

- Primary risk: destructive cutover or cleanup against stale/reused
identity, unsafe inherited process state, or loss of
GPU/spec/shared-state authority across replacement.
- Containment: exact immutable handles, validated Ready receipts,
process-injection rejection, clean helper environments, immutable
image-owned receipt validation, validated clone overrides,
provider-owned journal receipts, and preparation-before-activation.
Ambiguous cleanup fails closed and retains the workload.
- Regression risk: dormant adapter dependencies could alter existing
snapshot or GPU clone behavior. Focused compatibility tests and explicit
unsupported-provider/source-shape assertions remain green.
- Rollback: the adapter remains unregistered and independently
revertible.

## Stack

- Base: merged PR3.10B1 #8037 at main commit
`b30781c399d3456e6e071bae098c28c6000d80f9`.
- This slice: PR3.10B2 #8128, exact head
`00154381829ea31e214bc41955384755a39fe280`.
- Next: PR3.11 #8040 integrates provider/create and GPU-create flows
without activating buildless support.
- #8040's next exact handoff is protected at
`hold/podman-stack/pr8040-base-001543818` before its append-only
recascade.
- Buildless and Podman support remain disabled until all-agent,
multiarch, GPU/local-inference, recovery, installer, and protected-E2E
gates in #7744 pass.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added Docker-based managed startup for workload creation, replacement,
activation, rollback, recovery, and cleanup.
- Added durable coordination for safe replacement commits and
interrupted operations.
- Added reliable sandbox identity detection from formatted command
output.
- Added support for preserving container names, entrypoints, and
commands during replacements.

- **Bug Fixes**
- Improved validation, cleanup, state recovery, and process-environment
safety during failed or interrupted replacements.

- **Documentation**
- Expanded managed startup documentation with Docker workflows, recovery
behavior, and operational limitations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
senthilr-nv added a commit that referenced this pull request Aug 4, 2026
<!-- markdownlint-disable MD041 -->
## Summary

Adds the canonical dated `v0.0.101` changelog entry that was missing
when the release tag was cut. This post-release recovery records the
shipped behavior on current `main` without changing or replacing the
existing tag.

## Changes

- Add `docs/changelog/2026-08-03.mdx` with the exact `## v0.0.101`
heading, release summary, detailed behavior changes, support boundaries,
and links to durable documentation.
- [#7317](#7317) ->
`docs/changelog/2026-08-03.mdx`: Records experimental OpenClaw Google
Chat support and its restricted credential and webhook boundary.
- [#7715](#7715) ->
`docs/changelog/2026-08-03.mdx`: Records strict onboarding recovery
state and authoritative resume identity.
- [#7749](#7749) ->
`docs/changelog/2026-08-03.mdx`: Records the provider-neutral policy
seam and unchanged runtime support boundary.
- [#7817](#7817) ->
`docs/changelog/2026-08-03.mdx`: Records preserved Hermes home-channel
assignments across rebuilds.
- [#7820](#7820) ->
`docs/changelog/2026-08-03.mdx`: Records the SSH-session status field
correction.
- [#7847](#7847) ->
`docs/changelog/2026-08-03.mdx`: Records fail-closed credential
filtering for migration and rebuild backups.
- [#7870](#7870) ->
`docs/changelog/2026-08-03.mdx`: Records sandbox-qualified in-sandbox
host command hints.
- [#7875](#7875) ->
`docs/changelog/2026-08-03.mdx`: Records Microsoft Teams stop and start
E2E coverage.
- [#7885](#7885) ->
`docs/changelog/2026-08-03.mdx`: Records Hermes managed gateway
detection in status.
- [#7889](#7889) ->
`docs/changelog/2026-08-03.mdx`: Records policy-authenticated HTTPS Pin
Runtime route revocation.
- [#7891](#7891) ->
`docs/changelog/2026-08-03.mdx`: Records default fallback for negative
timeout and polling overrides.
- [#7993](#7993) ->
`docs/changelog/2026-08-03.mdx`: Records correct sibling detection
during uninstall.
- [#7995](#7995) ->
`docs/changelog/2026-08-03.mdx`: Records absent configuration-hash
handling before shields lock.
- [#8001](#8001) ->
`docs/changelog/2026-08-03.mdx`: Records the dormant atomic managed
workload replacement foundation.
- [#8029](#8029) ->
`docs/changelog/2026-08-03.mdx`: Records repository terminology review
in PR Review Advisor.
- [#8031](#8031) ->
`docs/changelog/2026-08-03.mdx`: Records provider-neutral managed
snapshot authority.
- [#8032](#8032) ->
`docs/changelog/2026-08-03.mdx`: Records immutable managed clone handoff
contracts.
- [#8034](#8034) ->
`docs/changelog/2026-08-03.mdx`: Records the dormant provider-owned
clone transaction surface.
- [#8035](#8035) ->
`docs/changelog/2026-08-03.mdx`: Records the dormant Hermes managed
clone broker boundary.
- [#8036](#8036) ->
`docs/changelog/2026-08-03.mdx`: Records the dormant transactional
managed bootstrap boundary.
- [#8037](#8037) ->
`docs/changelog/2026-08-03.mdx`: Records dormant Docker bootstrap
primitives and the unchanged provider support boundary.
- [#8070](#8070) ->
`docs/changelog/2026-08-03.mdx`: Records consolidated sandbox
resource-limit E2E coverage.
- [#8071](#8071) ->
`docs/changelog/2026-08-03.mdx`: Records escaped and bounded CLI
validation diagnostics.
- [#8081](#8081) ->
`docs/changelog/2026-08-03.mdx`: Records bounded linear snapshot Base64
validation.
- [#8085](#8085) ->
`docs/changelog/2026-08-03.mdx`: Records commit-bound workflow approval
for eligible same-repository maintainers.
- [#8088](#8088) ->
`docs/changelog/2026-08-03.mdx`: Records Hermes managed-policy E2E
selection.
- [#8090](#8090) ->
`docs/changelog/2026-08-03.mdx`: Records pinned CI search-tool
provisioning.
- [#8106](#8106) ->
`docs/changelog/2026-08-03.mdx`: Records fallback from failed managed
OpenShell gateway startup.
- [#8107](#8107) ->
`docs/changelog/2026-08-03.mdx`: Records Hermes adapter lifecycle E2E
selection.
- [#8128](#8128) ->
`docs/changelog/2026-08-03.mdx`: Records the dormant transactional
Docker bootstrap adapter and rollback authority.
- [#8140](#8140) ->
`docs/changelog/2026-08-03.mdx`: Records Slack conflict scope across
independent OpenShell gateways.
- [#8147](#8147) ->
`docs/changelog/2026-08-03.mdx`: Records completion of durable v0.0.100
documentation audit follow-ups.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [x] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [ ] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [x] Tests not applicable — justification: This documentation-only
recovery does not change executable behavior.
- [x] Docs updated for user-facing behavior changes
- [ ] Docs not applicable — justification:
- [ ] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [ ] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification:
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Documentation Writer Review

- [x] Documentation writer subagent reviewed the completed changes
- Result: `docs-updated`
- Evidence: Independently reviewed `docs/changelog/2026-08-03.mdx` at
commit `0bebe1f568e3dc85cf410aac1dfb8f8830070b85`. Its blob is
`82887920f9720eafd75db6b2271c35f7477edb9b`. The entry follows the
writing guide, controlled terminology, changelog structure, MDX SPDX
format, literal CLI-name rule, and root-absolute route requirements. It
accurately records the `v0.0.100...v0.0.101` release range, Announcement
#8162, accepted scope boundaries, and shipped security behavior. There
are no code samples. Focused changelog tests and the documentation build
pass for this commit.
- Agent: Codex Desktop independent documentation writer
<!-- docs-review-head-sha: 0bebe1f -->
<!-- docs-review-agents-blob-sha:
3dd7c24 -->

## Security Review

- Result: `PASS`
- Reviewed commit: `0bebe1f568e3dc85cf410aac1dfb8f8830070b85`
- Base commit: `643a4ab8b5f583d8555192a37927268b26022c51`
- Findings: None.
- Secrets and credentials: `PASS`. No credential values or secret files
are present.
- Input validation and data sanitization: `PASS`. No executable input
path changes.
- Authentication and authorization: `PASS`. No identity or permission
logic changes.
- Dependencies and third-party libraries: `PASS`. No dependency changes.
- Error handling and logging: `PASS`. No runtime path changes;
diagnostic-security claims are precise.
- Cryptography and data protection: `PASS`. No implementation changes.
- Configuration and security controls: `PASS`. No configuration,
container, port, or HTTP changes.
- Security testing: `PASS`. No coverage is removed; the entry records
shipped test and security behavior.
- System security: `PASS`. No runtime control changes; dormant and
non-activation boundaries are explicit.
- Agent: Codex Desktop independent security reviewer

## Verification

- [ ] PR description includes a `Signed-off-by:` line and every commit
appears as `Verified` in GitHub — verification is pending after commit
`0bebe1f568e3dc85cf410aac1dfb8f8830070b85` is pushed.
- [ ] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run validate:pr` passed after refreshing `origin/main` when hooks
were skipped or unavailable — commit hooks passed; pre-push is pending.
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — tests are not applicable to this
documentation-only recovery.
- [x] Applicable broad gate passed — not applicable to this
documentation-only recovery.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, credentials, or private keys are added by
this diff.
- [ ] `npm run docs` builds without warnings (doc changes only) — GitHub
documentation checks are pending.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only) — independent documentation review passed.
- [x] New doc pages include SPDX header and frontmatter (new pages only)
— the native changelog entry uses the required parser-safe MDX SPDX
comment and intentionally has no frontmatter.

GitHub CI is authoritative.
Focused changelog tests and `npm run docs` passed after the merge
refresh.

---
Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Added experimental Google Chat support.
  * Improved runtime and session status visibility.
  * Added onboarding recovery and persistence safeguards.
  * Added snapshot validation and dormant managed-workload support.

* **Bug Fixes**
* Improved backup sanitization, route handling, and gateway reliability.

* **Documentation**
  * Added the v0.0.101 changelog and related updates.

* **Tests**
  * Expanded end-to-end coverage and strengthened trusted CI validation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Apurv Kumaria <akumaria@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Co-authored-by: Senthil Ravichandran <senthilr@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: security Security controls, permissions, secrets, or hardening feature PR adds or expands user-visible functionality platform: container Affects Docker, containerd, Podman, or images

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants