Record approved recovery remediation decisions
This commit is contained in:
@@ -244,10 +244,17 @@ machine/cache should not require reconstructing another invocation manually.
|
|||||||
The existing fallback guidance for a subsequently unavailable executable does
|
The existing fallback guidance for a subsequently unavailable executable does
|
||||||
not supply a working handoff for this ordinary cold-build case.
|
not supply a working handoff for this ordinary cold-build case.
|
||||||
|
|
||||||
|
**Decision:** Prefer a module-selected Go invocation for recovery where the
|
||||||
|
consumer setup supports it. Provide an explicit, durable recovery path for
|
||||||
|
API-only consumers using temporary tool declarations. ReleaseKit owns the
|
||||||
|
handoff mechanics and supports both adoption styles. This follows the existing
|
||||||
|
tool-selection workflow and keeps routine binary lifecycle management out of
|
||||||
|
consumer code.
|
||||||
|
|
||||||
**Remediation:** Make the recovery invocation independent of an ephemeral
|
**Remediation:** Make the recovery invocation independent of an ephemeral
|
||||||
Go-tool executable. Use a supported module-selected entry point when available,
|
Go-tool executable using the selected module-based approach and an explicit
|
||||||
or otherwise provide a surviving supported entry point. Account for the
|
API-only recovery path. Account for the maintained launcher's temporary
|
||||||
maintained launcher's temporary `-modfile` cleanup and its support for ordinary
|
`-modfile` cleanup and its support for ordinary
|
||||||
package dependencies as well as registered tools; a bare `go tool` command
|
package dependencies as well as registered tools; a bare `go tool` command
|
||||||
cannot assume every consumer has a permanent tool declaration. Keep explicit
|
cannot assume every consumer has a permanent tool declaration. Keep explicit
|
||||||
record selection and distinct exit statuses. Add an assembled cold-build test
|
record selection and distinct exit statuses. Add an assembled cold-build test
|
||||||
@@ -357,10 +364,13 @@ that the handoff could not be saved faithfully. Diagnostic JSON is a display
|
|||||||
format and can use safe displays; the private record supplies actual operation
|
format and can use safe displays; the private record supplies actual operation
|
||||||
inputs and must preserve their identity.
|
inputs and must preserve their identity.
|
||||||
|
|
||||||
|
**Decision:** Use a lossless private-record representation for supported
|
||||||
|
pathname and endpoint bytes. This preserves existing publication inputs and
|
||||||
|
keeps record-loaded recovery consistent with direct typed evidence. Recording
|
||||||
|
failures remain separate from the publication outcome.
|
||||||
|
|
||||||
**Remediation:** Make private serialization lossless for supported evidence,
|
**Remediation:** Make private serialization lossless for supported evidence,
|
||||||
using an explicit byte representation where needed. At minimum, detect values
|
using an explicit byte representation where needed. Keep the original typed
|
||||||
that the selected record format cannot round-trip and return a separate
|
|
||||||
recording failure with no misleading saved handoff. Keep the original typed
|
|
||||||
evidence and publication behavior intact; avoid adding a general UTF-8
|
evidence and publication behavior intact; avoid adding a general UTF-8
|
||||||
restriction to previously valid Git publication inputs. Cover endpoint/path
|
restriction to previously valid Git publication inputs. Cover endpoint/path
|
||||||
round trips and equivalent direct-versus-loaded observations, including a
|
round trips and equivalent direct-versus-loaded observations, including a
|
||||||
|
|||||||
Reference in New Issue
Block a user