@@ -156,8 +156,8 @@ st2 catalog apply --catalog "$CATALOG" --prepared ./prepared \
156156 --input-sha256 < afterRootSha256> --expect-sha256 < rootSha256> --json
157157```
158158
159- If the incumbent Agent Specs cannot be parsed, bind a one-time repair to their
160- exact structural declaration bytes instead:
159+ If the incumbent declarations cannot be parsed or must remain opaque to the
160+ current parser, bind a one-time repair to their exact structural bytes instead:
161161
162162``` sh
163163st2 catalog snapshot --catalog " $CATALOG " --output ./invalid-preimage \
@@ -169,11 +169,12 @@ st2 catalog apply --catalog "$CATALOG" --prepared ./prepared \
169169 --raw-preimage --json
170170```
171171
172- Raw-preimage mode has its own hash and receipt schemas. It refuses a
173- strictly-valid incumbent, still fully validates the prepared and applied
174- catalogs, and requires a readable external PTY-root declaration that remains
175- unchanged. It is a generic invalid-preimage transaction, not a validation
176- bypass or migration-policy engine.
172+ Raw-preimage mode has its own hash and receipt schemas. It makes no semantic
173+ assertion about the live bytes—including validity, profiles, the catalog
174+ envelope, or effective PTY root—while still fully validating the prepared and
175+ applied catalogs. The caller-supplied raw-domain digest is the exact live
176+ precondition. This is a byte-oriented transaction, not a validation bypass or
177+ migration-policy engine.
177178
178179To publish that exact snapshot as a new, absent catalog:
179180
@@ -182,18 +183,19 @@ st2 catalog bootstrap --catalog "$NEW_CATALOG" --prepared ./prepared \
182183 --input-sha256 < rootSha256> --json
183184```
184185
185- ` catalog apply ` is policy-free. It rejects state/control content, symlinks,
186- unprojected workspace facts, catalog-local/default PTY roots, and effective
187- PTY-root changes. Bootstrap is a separate create-only declaration transaction,
188- not an apply mode. It atomically publishes absence or the complete catalog,
189- initializes its persistent lock and generation before visibility, and never
190- reads or writes the external PTY registry. Process adoption and PTY-root
191- migration remain separate because that registry has independent producers. A
192- crash during apply leaves a durable marker and content-addressed stage;
193- ` st2 catalog apply --catalog "$CATALOG" --resume --json ` resumes without the
194- original prepared source. Snapshots own the complete bounded ` _templates `
195- library and empty canonical per-agent ` .workspace ` directory facts, but never
196- traverse, hash, copy, or delete workspace content.
186+ Ordinary ` catalog apply ` is policy-free. It rejects state/control content,
187+ symlinks, unprojected workspace facts, catalog-local/default PTY roots, and
188+ effective PTY-root changes. Raw-preimage apply replaces those live semantic
189+ checks with its exact byte-domain CAS. Bootstrap is a separate create-only
190+ declaration transaction, not an apply mode. It atomically publishes absence or
191+ the complete catalog, initializes its persistent lock and generation before
192+ visibility, and never reads or writes the external PTY registry. Process
193+ adoption and PTY-root migration remain separate because that registry has
194+ independent producers. A crash during apply leaves a durable marker and
195+ content-addressed stage. ` st2 catalog apply --catalog "$CATALOG" --resume --json `
196+ resumes without the original prepared source. Snapshots own the complete
197+ bounded ` _templates ` library and empty canonical per-agent ` .workspace `
198+ directory facts, but never traverse, hash, copy, or delete workspace content.
197199
198200The compact declaration shape is:
199201
@@ -687,9 +689,10 @@ evals retain their flat bus and completion semantics.
687689declaration-plane writer. Each admits the complete prospective catalog under a
688690compare-and-swap lock before making one atomic change.
689691` st2 catalog digest --catalog ROOT --prepared DIR ` computes the exact desired
690- projection digest consumed by apply, including for raw-preimage repair where the
691- invalid incumbent cannot support semantic diff. Ordinary valid-catalog workflows
692- reuse ` afterRootSha256 ` from the required policy-inspection diff instead.
692+ projection digest consumed by apply. Raw-preimage repair uses it for the fully
693+ validated successor while binding the opaque incumbent through the separate
694+ raw-domain digest. Ordinary valid-catalog workflows reuse ` afterRootSha256 `
695+ from the required policy-inspection diff instead.
693696` st2 catalog bootstrap --catalog ROOT --prepared DIR --input-sha256 ROOT_HEX `
694697is the create-only writer for an absent catalog. An exact completed replay is
695698` unchanged ` ; any different or incomplete existing target fails closed.
0 commit comments