Use external temporary storage for release builds

This commit is contained in:
2026-10-06 01:00:11 +00:00
parent 4dee2841e0
commit 8b417760c6
8 changed files with 109 additions and 11 deletions

View File

@@ -39,6 +39,7 @@ these implemented packages:
| `internal/delivery` | Tagged-checkout verification, artifact inventory/hash validation, manifest assembly, and coordination of hosted delivery results. |
| `internal/git` | Git command boundary, push-destination resolution, exact ref inspection, and tag operations. |
| `internal/gitea` | Gitea API transport, hosted release pages, asset inspection, manifests, and uploads. |
| `internal/tempdir` | Disposable system temporary storage outside source worktrees. |
| `internal/process` | Cancellable child-process execution with per-command environment overlays. |
| `internal/publish` | Publication guards, one validation run, annotated tag creation, push, and recovery state. |
| `internal/runtimeinfo` | Private version lookup used by the runtime facade. |

View File

@@ -230,6 +230,8 @@ offline suite, and compiled-export/import checks pass.
### R6 — Medium: Builds require a writable parent of the repository
Status: Resolved.
Category: Inadvertently strengthened filesystem prerequisite.
**Evidence:** [Candidate builds](../../internal/build/candidate.go), around line 21,
@@ -250,6 +252,11 @@ adding broad output-directory restrictions.
read-only repository parent and a usable system temporary directory. Generated
candidate output still leaves the worktree clean.
**Resolution:** Candidate and CLI delivery builds use shared system temporary
storage allocated by `internal/tempdir`, with worktree containment checks and
caller-owned cleanup. Regressions execute both operations with read-only
repository parents and confirm clean worktrees. Affected suites pass.
### R7 — Medium: Attachment origin restrictions exceed credential isolation
Category: Inadvertently strengthened prohibition.