mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-17 02:15:31 +02:00
v1.87.0.0 feat: add verified CSO audits and replayable repair bundles (#2852)
* feat(cso): add verified audits and replayable repair bundles * fix(cso): harden qualification and setup boundaries * fix(cso): assemble security canaries at runtime * fix(cso): bound release proof and maintenance work Co-Authored-By: OpenAI Codex <noreply@openai.com> * fix(cso): require complete evaluation reports Co-Authored-By: OpenAI Codex <noreply@openai.com> * fix(cso): replay expired snapshots from supplied source Co-Authored-By: OpenAI Codex <noreply@openai.com> * test(cso): synchronize DNS cancellation assertion Co-Authored-By: OpenAI Codex <noreply@openai.com> * chore(ship): exempt repository owner from liveness proof Co-Authored-By: OpenAI Codex <noreply@openai.com> * test(cso): make recheck retention overlap deterministic Co-Authored-By: OpenAI Codex <noreply@openai.com> * chore: bump version and changelog (v1.85.0.0) Co-Authored-By: OpenAI Codex <noreply@openai.com> * fix(cso): pass native release gates Co-Authored-By: OpenAI Codex <noreply@openai.com> * chore: move release to v1.86.0.0 Co-Authored-By: OpenAI Codex <noreply@openai.com> * fix(cso): resolve rechecks by finding Co-Authored-By: OpenAI Codex <noreply@openai.com> * chore: move release to v1.87.0.0 Co-Authored-By: OpenAI Codex <noreply@openai.com> * fix(cso): pass macOS and Windows release gates Normalize BSD wc output, compare Windows paths by filesystem identity, preserve portable snapshot race coverage, and narrow POSIX-only Windows fixtures. Co-Authored-By: OpenAI Codex <noreply@openai.com> * fix(cso): harden native verification gates * fix(cso): refine Windows native diagnostics * test(cso): isolate Windows Git startup failure * test(cso): stabilize Windows native diagnostics * fix(cso): support hardened Git on Windows * fix(cso): close final verification gaps * test(cso): bound cold Docker fixture setup * fix(cso): restore cross-platform free-suite gates --------- Co-authored-by: OpenAI Codex <noreply@openai.com>
This commit is contained in:
co-authored by
OpenAI Codex
parent
9f81911136
commit
4a3c6a8a3c
+8
-1
@@ -28,6 +28,8 @@ import * as crypto from 'crypto';
|
||||
export interface AtomicWriteOpts {
|
||||
/** File mode for the tmp file at creation (e.g. 0o600). Default: umask. */
|
||||
mode?: number;
|
||||
/** Publish only when the target does not already exist. */
|
||||
noReplace?: boolean;
|
||||
}
|
||||
|
||||
function tmpPathFor(target: string): string {
|
||||
@@ -47,7 +49,12 @@ export function atomicWriteSync(
|
||||
} else {
|
||||
fs.writeFileSync(tmp, data);
|
||||
}
|
||||
fs.renameSync(tmp, target);
|
||||
if (opts.noReplace) {
|
||||
// Publishing the complete temp inode with link(2) gives atomic
|
||||
// no-replace semantics; unlink only removes the temporary name.
|
||||
fs.linkSync(tmp,target);
|
||||
fs.unlinkSync(tmp);
|
||||
} else fs.renameSync(tmp, target);
|
||||
} catch (err) {
|
||||
try {
|
||||
fs.unlinkSync(tmp);
|
||||
|
||||
Reference in New Issue
Block a user