Commit Graph
2929 Commits
Author SHA1 Message Date
Tianyi Cui e9aac53fde test(acp-snapshot): cover pre-fallback Windows exit state
Model the requested signal setting a child termination marker before the launcher begins fallback handling. The regression proves close drains inherited stdio and propagates the original process error without sending a redundant SIGKILL.

This complements the post-check fallback-refusal race and restores the launcher's required 100% per-file statement and branch coverage.
2026-07-19 12:53:41 +08:00
Tianyi Cui c660048759 test(subagent): cover late forced-wait exit markers
Exercise both exitCode and signalCode arriving after the SIGTERM grace begins but before the bounded SIGKILL confirmation helper starts. This pins the fast path that avoids signaling an already-terminated child and restores the package's per-file 100% branch and statement coverage.

Keep the marker transition deterministic by withholding the synthetic exit event, matching the OS state race the defensive pre-check exists to absorb.
2026-07-19 12:52:42 +08:00
Tianyi Cui 6cc9c8e1fb Merge remote-tracking branch 'origin/master' into codex/pr335-merge-master-20260719 2026-07-19 12:45:35 +08:00
Tianyi Cui 4bf2ef89c4 fix(jsonl): bind MoveFileExW with the Win32 BOOL ABI
Declare MoveFileExW's return value as Koffi int and model it as a numeric 32-bit Win32 BOOL. The previous Koffi bool declaration represented a one-byte C boolean and could read the native return register with the wrong ABI.

Test zero and nonzero results explicitly and assert the binding result type while preserving the existing write-through flags, error translation, and durable directory race behavior.
2026-07-19 12:44:47 +08:00
Tianyi Cui 3dc82b1e87 test(snapshot): refresh Windows workspace permission prose
Update the workspace-edit Windows sidecar to the current permission preset description emitted by the ACP session configuration. The shared golden already carried this contract; only the native-Windows transcript retained the superseded wording.

Leave the platform-specific backslash path rendering unchanged so the sidecar continues to pin the one intentional Windows transcript difference.
2026-07-19 12:43:58 +08:00
Tianyi Cui 0f4bc645da test(acp-snapshot): inherit descendant stdio portably
Pass the fake descendant the parent process's stdout and stderr stream handles instead of Unix-style numeric file descriptors. This lets Windows duplicate the live ACP and diagnostic pipes so launcher shutdown can prove that inherited handles, buffered frames, and stderr all drain after the parent exits.

Observe the pending update promise before initiating shutdown as well, preventing a missing late frame from becoming a transient unhandled rejection before the assertion reports the fixture failure.
2026-07-19 12:42:59 +08:00
Tianyi Cui f110c5e083 fix(acp-snapshot): accept Windows termination exit races
Treat a fallback kill refusal as successful termination when the child already carries an OS exit marker. Windows maps Node's supported signal names to forced termination, so the requested signal can end the process between the launcher error race and its fallback SIGKILL.

Drain inherited stdio, the ACP parser, and in-flight callbacks before propagating the original child error in either exit-race path. Preserve AggregateError reporting only for a refused fallback while the process is still live, and add a deterministic cross-platform regression for that ordering.
2026-07-19 12:41:46 +08:00
Tianyi Cui 2b673bd68d fix(fs): preserve Windows DACLs across atomic replacement
Copy an existing target's DACL onto the empty staging file before any content is written, then publish with ReplaceFileW so Windows replacement keeps the target security descriptor instead of inheriting the broader parent policy.

Keep new-file inheritance and POSIX mode behavior unchanged, retain the already-protected temp when a concurrently removed target requires rename fallback, and translate native errors into Node-style codes for the filesystem error boundary.

Add host-independent Win32 binding coverage, native Windows descriptor assertions, package documentation, and a bilingual implemented RFC that supersedes the earlier inheritance-only replacement claim.
2026-07-19 12:38:18 +08:00
Tianyi Cui 114ceee293 Merge pull request #378 from deepseek-harness/codex/type-equiv-jsdoc-docs
docs: include JSDoc in type-equiv blocks
2026-07-19 12:38:00 +08:00
Tianyi Cui d6de23d674 Merge remote-tracking branch 'origin/master' into codex/type-equiv-jsdoc-docs 2026-07-19 12:25:54 +08:00
Tianyi Cui 5dcf6095cb docs: include JSDoc in type-equiv blocks 2026-07-19 12:25:40 +08:00
Tianyi Cui 46580e4083 test(subagent): pin POSIX disposal scenarios
Pass an explicit Linux platform to the two remaining SIGTERM-specific ladder tests instead of inheriting the host platform.

This keeps their synchronous-exit assertions focused on the POSIX middle and final rungs while the dedicated Windows case continues to verify the direct SIGKILL path.

Without the pin, native Windows coverage deterministically expected SIGTERM but observed the intended SIGKILL-only behavior.
2026-07-19 12:20:11 +08:00
Tianyi Cui 4625195968 fix(subagent): bound forced child termination
Observe signal errors and bound the final forced-exit edge with disposeGraceMs so a refused or ineffective SIGKILL cannot leave disposal pending forever.

Apply the confirmation bound on POSIX and Windows, remove listeners and timers on every outcome, and update the ACP consumer contract plus the generated config catalog.

Cover emitted signal errors, synchronous kill exceptions, refused termination, and accepted termination that never reports exit.
2026-07-19 12:19:33 +08:00
Tianyi Cui 7bf0250604 Merge pull request #377 from deepseek-harness/codex/retire-subagent-mock
refactor(subagent): retire the standalone mock package
2026-07-19 12:18:38 +08:00
Tianyi Cui 1b496854c2 Merge remote-tracking branch 'origin/master' into codex/pr335-merge-master-20260719 2026-07-19 12:14:10 +08:00
Tianyi Cui 0488ec3d3d Merge remote-tracking branch 'origin/master' into codex/retire-subagent-mock
# Conflicts:
#	docs/rfc/INDEX.md
2026-07-19 12:13:13 +08:00
Tianyi Cui dde62f454e Merge pull request #376 from deepseek-harness/codex/one-session-surface-manager
refactor(session): use one surface manager per session
2026-07-19 12:09:42 +08:00
Tianyi Cui 4dda5b953b refactor(subagent): retire standalone mock package 2026-07-19 11:54:37 +08:00
Tianyi Cui 39c1c3df4f Merge remote-tracking branch 'origin/master' into codex/pr335-merge-master-20260719
# Conflicts:
#	packages/support/acp-snapshot/README.md
#	packages/support/acp-snapshot/src/harness.ts
#	packages/support/acp-snapshot/src/suite.ts
#	packages/support/acp-snapshot/tests/harness.spec.ts
#	packages/support/acp-snapshot/tests/suite.spec.ts
2026-07-19 11:41:10 +08:00
Tianyi Cui 765dfb2174 refactor(session): use one surface manager 2026-07-19 11:36:07 +08:00
Tianyi Cui 383a305bd4 Merge pull request #375 from deepseek-harness/codex/simplification-rfc-followups
docs: propose follow-up simplification RFCs
2026-07-19 11:22:22 +08:00
Tianyi Cui bca7401513 docs: retain rejected compaction RFC 2026-07-19 11:12:26 +08:00
Tianyi Cui 8941600273 docs: expand simplification RFC implementation plans 2026-07-19 10:59:23 +08:00
Tianyi Cui 76db4efe49 Merge remote-tracking branch 'origin/master' into codex/simplification-rfc-followups 2026-07-19 10:53:23 +08:00
Tianyi Cui 9c6eb2b6b2 Merge pull request #301 from deepseek-harness/codex/simp-name-front-door-defaults
refactor: name front-door defaults
2026-07-19 10:51:54 +08:00
Tianyi Cui 0c911172e9 docs: drop rejected compaction RFC 2026-07-19 10:45:04 +08:00
Tianyi Cui 706dbe5a11 Merge remote-tracking branch 'origin/codex/simp-name-front-door-defaults' into codex/simplification-rfc-followups 2026-07-19 10:43:34 +08:00
Tianyi Cui 202da55bf2 Merge remote-tracking branch 'origin/master' into codex/simp-name-front-door-defaults 2026-07-19 10:41:41 +08:00
Tianyi Cui 7720ab27a7 Merge pull request #288 from deepseek-harness/codex/simp-hide-subagent-internals
refactor: hide subagent implementation helpers
2026-07-19 10:41:07 +08:00
Tianyi Cui 29f7668e18 Merge remote-tracking branch 'origin/master' into codex/simp-hide-subagent-internals 2026-07-19 10:36:48 +08:00
Tianyi Cui 2a0a82580c Merge pull request #287 from deepseek-harness/codex/simp-hide-concrete-agent-loop
refactor: hide the concrete agent loop
2026-07-19 10:36:23 +08:00
Tianyi Cui 6c5b276b95 Merge remote-tracking branch 'origin/master' into codex/simp-hide-concrete-agent-loop 2026-07-19 10:30:49 +08:00
Tianyi Cui 826da2d0aa Merge pull request #286 from deepseek-harness/codex/simp-ui-identity-residue
refactor: simplify UI identity routing with explicit subagent provenance
2026-07-19 10:29:35 +08:00
Tianyi Cui 4851d95704 docs: propose follow-up simplification RFCs 2026-07-19 03:49:18 +08:00
Tianyi Cui 83d041568d Merge branch 'codex/simp-ui-identity-residue' into codex/simp-name-front-door-defaults 2026-07-19 03:18:04 +08:00
Tianyi Cui 8afe11e1ff Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-19 03:18:04 +08:00
Tianyi Cui c306f4e25d Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-19 03:18:04 +08:00
Tianyi Cui 57b81e52f9 Merge remote-tracking branch 'origin/master' into codex/simp-ui-identity-residue 2026-07-19 03:17:45 +08:00
Tianyi Cui 67053d1cf6 Merge pull request #285 from deepseek-harness/codex/simp-unify-agent-session-id
refactor: unify agent and session identity
2026-07-19 03:17:13 +08:00
Tianyi Cui f72c8f7b50 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-name-front-door-defaults 2026-07-19 03:13:35 +08:00
Tianyi Cui b40c30501e Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-19 03:13:35 +08:00
Tianyi Cui 363e46ca6a Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-19 03:13:35 +08:00
Tianyi Cui 78f5d181ab Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-19 03:13:35 +08:00
Tianyi Cui b1f453afa8 Merge remote-tracking branch 'origin/master' into codex/simp-unify-agent-session-id 2026-07-19 03:11:49 +08:00
Tianyi Cui 01ec1a5e5f Merge pull request #284 from deepseek-harness/codex/simp-agent-entry-state
refactor: remove agent entry mirror
2026-07-19 03:11:25 +08:00
Tianyi Cui 969f58ee5d Merge branch 'codex/simp-ui-identity-residue' into codex/simp-name-front-door-defaults 2026-07-19 03:04:20 +08:00
Tianyi Cui 438e67225f Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-19 03:04:20 +08:00
Tianyi Cui c1f7b8bd0f Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-19 03:04:20 +08:00
Tianyi Cui 896ac6219b Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-19 03:04:19 +08:00
Tianyi Cui 5767a8d467 Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id 2026-07-19 03:04:19 +08:00