oh-my-codex 0.21.0 → 0.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.toml +1 -1
- package/README.md +4 -2
- package/dist/cli/__tests__/detached-launch-diagnostics-3578.test.d.ts +2 -0
- package/dist/cli/__tests__/detached-launch-diagnostics-3578.test.d.ts.map +1 -0
- package/dist/cli/__tests__/detached-launch-diagnostics-3578.test.js +592 -0
- package/dist/cli/__tests__/detached-launch-diagnostics-3578.test.js.map +1 -0
- package/dist/cli/__tests__/detached-leader-teardown.test.js +270 -33
- package/dist/cli/__tests__/detached-leader-teardown.test.js.map +1 -1
- package/dist/cli/__tests__/doctor-warning-copy.test.js +133 -5
- package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +543 -2
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/issue-windows-cancel-identity.test.d.ts +2 -0
- package/dist/cli/__tests__/issue-windows-cancel-identity.test.d.ts.map +1 -0
- package/dist/cli/__tests__/issue-windows-cancel-identity.test.js +17 -0
- package/dist/cli/__tests__/issue-windows-cancel-identity.test.js.map +1 -0
- package/dist/cli/__tests__/launch-fallback.test.js +15 -3
- package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
- package/dist/cli/__tests__/package-bin-contract.test.js +20 -0
- package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
- package/dist/cli/__tests__/plugin-cache-stale-lock.test.d.ts +2 -0
- package/dist/cli/__tests__/plugin-cache-stale-lock.test.d.ts.map +1 -0
- package/dist/cli/__tests__/plugin-cache-stale-lock.test.js +76 -0
- package/dist/cli/__tests__/plugin-cache-stale-lock.test.js.map +1 -0
- package/dist/cli/__tests__/plugin-cache-symlink-provenance-3552.test.d.ts +2 -0
- package/dist/cli/__tests__/plugin-cache-symlink-provenance-3552.test.d.ts.map +1 -0
- package/dist/cli/__tests__/plugin-cache-symlink-provenance-3552.test.js +1662 -0
- package/dist/cli/__tests__/plugin-cache-symlink-provenance-3552.test.js.map +1 -0
- package/dist/cli/__tests__/plugin-launcher-provenance-3558.test.d.ts +2 -0
- package/dist/cli/__tests__/plugin-launcher-provenance-3558.test.d.ts.map +1 -0
- package/dist/cli/__tests__/plugin-launcher-provenance-3558.test.js +522 -0
- package/dist/cli/__tests__/plugin-launcher-provenance-3558.test.js.map +1 -0
- package/dist/cli/__tests__/ralplan-advisory.test.d.ts +2 -0
- package/dist/cli/__tests__/ralplan-advisory.test.d.ts.map +1 -0
- package/dist/cli/__tests__/ralplan-advisory.test.js +301 -0
- package/dist/cli/__tests__/ralplan-advisory.test.js.map +1 -0
- package/dist/cli/__tests__/ralplan.test.js +39 -0
- package/dist/cli/__tests__/ralplan.test.js.map +1 -1
- package/dist/cli/__tests__/resume.test.js +81 -6
- package/dist/cli/__tests__/resume.test.js.map +1 -1
- package/dist/cli/__tests__/session-scoped-runtime.test.js +423 -4
- package/dist/cli/__tests__/session-scoped-runtime.test.js.map +1 -1
- package/dist/cli/__tests__/setup-install-mode.test.js +60 -3
- package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
- package/dist/cli/__tests__/setup-refresh.test.js +9 -0
- package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
- package/dist/cli/__tests__/sparkshell-cli.test.js +4 -0
- package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -1
- package/dist/cli/__tests__/ultragoal.test.js +71 -0
- package/dist/cli/__tests__/ultragoal.test.js.map +1 -1
- package/dist/cli/__tests__/windows-popup-loop-contract.test.js +30 -4
- package/dist/cli/__tests__/windows-popup-loop-contract.test.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +57 -8
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +113 -7
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1850 -185
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/native-assets.d.ts +2 -1
- package/dist/cli/native-assets.d.ts.map +1 -1
- package/dist/cli/native-assets.js +7 -7
- package/dist/cli/native-assets.js.map +1 -1
- package/dist/cli/plugin-marketplace.d.ts +89 -4
- package/dist/cli/plugin-marketplace.d.ts.map +1 -1
- package/dist/cli/plugin-marketplace.js +2135 -118
- package/dist/cli/plugin-marketplace.js.map +1 -1
- package/dist/cli/ralplan.d.ts +2 -1
- package/dist/cli/ralplan.d.ts.map +1 -1
- package/dist/cli/ralplan.js +149 -9
- package/dist/cli/ralplan.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +7 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/sparkshell.d.ts.map +1 -1
- package/dist/cli/sparkshell.js +9 -10
- package/dist/cli/sparkshell.js.map +1 -1
- package/dist/cli/update-worker.js +9 -0
- package/dist/cli/update-worker.js.map +1 -1
- package/dist/cli/update.d.ts +1 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +9 -0
- package/dist/cli/update.js.map +1 -1
- package/dist/config/__tests__/generator-idempotent.test.js +118 -0
- package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
- package/dist/config/generator.d.ts.map +1 -1
- package/dist/config/generator.js +74 -4
- package/dist/config/generator.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +74 -0
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/ralplan-advisory-keyword.test.d.ts +2 -0
- package/dist/hooks/__tests__/ralplan-advisory-keyword.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/ralplan-advisory-keyword.test.js +250 -0
- package/dist/hooks/__tests__/ralplan-advisory-keyword.test.js.map +1 -0
- package/dist/hooks/__tests__/session.test.js +10 -1
- package/dist/hooks/__tests__/session.test.js.map +1 -1
- package/dist/hooks/keyword-detector.d.ts +8 -1
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +130 -9
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hooks/session.d.ts +5 -0
- package/dist/hooks/session.d.ts.map +1 -1
- package/dist/hooks/session.js +17 -3
- package/dist/hooks/session.js.map +1 -1
- package/dist/hud/__tests__/index.test.js +16 -1
- package/dist/hud/__tests__/index.test.js.map +1 -1
- package/dist/hud/__tests__/reconcile.test.js +134 -7
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/__tests__/render.test.js +57 -0
- package/dist/hud/__tests__/render.test.js.map +1 -1
- package/dist/hud/__tests__/session-attached.test.d.ts +2 -0
- package/dist/hud/__tests__/session-attached.test.d.ts.map +1 -0
- package/dist/hud/__tests__/session-attached.test.js +82 -0
- package/dist/hud/__tests__/session-attached.test.js.map +1 -0
- package/dist/hud/__tests__/state.test.js +94 -2
- package/dist/hud/__tests__/state.test.js.map +1 -1
- package/dist/hud/__tests__/tmux-split-realtmux.test.js +169 -2
- package/dist/hud/__tests__/tmux-split-realtmux.test.js.map +1 -1
- package/dist/hud/__tests__/tmux.test.js +104 -22
- package/dist/hud/__tests__/tmux.test.js.map +1 -1
- package/dist/hud/__tests__/types.test.js +9 -0
- package/dist/hud/__tests__/types.test.js.map +1 -1
- package/dist/hud/__tests__/watch-detached.test.d.ts +2 -0
- package/dist/hud/__tests__/watch-detached.test.d.ts.map +1 -0
- package/dist/hud/__tests__/watch-detached.test.js +383 -0
- package/dist/hud/__tests__/watch-detached.test.js.map +1 -0
- package/dist/hud/__tests__/watch-realtmux.test.d.ts +2 -0
- package/dist/hud/__tests__/watch-realtmux.test.d.ts.map +1 -0
- package/dist/hud/__tests__/watch-realtmux.test.js +322 -0
- package/dist/hud/__tests__/watch-realtmux.test.js.map +1 -0
- package/dist/hud/index.d.ts +3 -0
- package/dist/hud/index.d.ts.map +1 -1
- package/dist/hud/index.js +98 -20
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/reconcile.d.ts.map +1 -1
- package/dist/hud/reconcile.js +68 -24
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +20 -0
- package/dist/hud/render.js.map +1 -1
- package/dist/hud/session-attached.d.ts +15 -0
- package/dist/hud/session-attached.d.ts.map +1 -0
- package/dist/hud/session-attached.js +47 -0
- package/dist/hud/session-attached.js.map +1 -0
- package/dist/hud/state.d.ts +9 -1
- package/dist/hud/state.d.ts.map +1 -1
- package/dist/hud/state.js +140 -3
- package/dist/hud/state.js.map +1 -1
- package/dist/hud/tmux.d.ts +4 -0
- package/dist/hud/tmux.d.ts.map +1 -1
- package/dist/hud/tmux.js +86 -23
- package/dist/hud/tmux.js.map +1 -1
- package/dist/hud/types.d.ts +20 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js +3 -0
- package/dist/hud/types.js.map +1 -1
- package/dist/modes/base.d.ts +15 -2
- package/dist/modes/base.d.ts.map +1 -1
- package/dist/modes/base.js +105 -16
- package/dist/modes/base.js.map +1 -1
- package/dist/question/autopilot-wait.js +2 -2
- package/dist/question/autopilot-wait.js.map +1 -1
- package/dist/question/deep-interview.js +2 -2
- package/dist/question/deep-interview.js.map +1 -1
- package/dist/ralplan/__tests__/advisory-activation.test.d.ts +2 -0
- package/dist/ralplan/__tests__/advisory-activation.test.d.ts.map +1 -0
- package/dist/ralplan/__tests__/advisory-activation.test.js +700 -0
- package/dist/ralplan/__tests__/advisory-activation.test.js.map +1 -0
- package/dist/ralplan/__tests__/advisory-detached-transition.test.d.ts +2 -0
- package/dist/ralplan/__tests__/advisory-detached-transition.test.d.ts.map +1 -0
- package/dist/ralplan/__tests__/advisory-detached-transition.test.js +88 -0
- package/dist/ralplan/__tests__/advisory-detached-transition.test.js.map +1 -0
- package/dist/ralplan/__tests__/advisory.test.d.ts +2 -0
- package/dist/ralplan/__tests__/advisory.test.d.ts.map +1 -0
- package/dist/ralplan/__tests__/advisory.test.js +1087 -0
- package/dist/ralplan/__tests__/advisory.test.js.map +1 -0
- package/dist/ralplan/__tests__/runtime.test.js +416 -7
- package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
- package/dist/ralplan/advisory-activation-verifier.d.ts +19 -0
- package/dist/ralplan/advisory-activation-verifier.d.ts.map +1 -0
- package/dist/ralplan/advisory-activation-verifier.js +77 -0
- package/dist/ralplan/advisory-activation-verifier.js.map +1 -0
- package/dist/ralplan/advisory-activation.d.ts +34 -0
- package/dist/ralplan/advisory-activation.d.ts.map +1 -0
- package/dist/ralplan/advisory-activation.js +205 -0
- package/dist/ralplan/advisory-activation.js.map +1 -0
- package/dist/ralplan/advisory-contract.d.ts +103 -0
- package/dist/ralplan/advisory-contract.d.ts.map +1 -0
- package/dist/ralplan/advisory-contract.js +83 -0
- package/dist/ralplan/advisory-contract.js.map +1 -0
- package/dist/ralplan/advisory-detached-transition.d.ts +11 -0
- package/dist/ralplan/advisory-detached-transition.d.ts.map +1 -0
- package/dist/ralplan/advisory-detached-transition.js +21 -0
- package/dist/ralplan/advisory-detached-transition.js.map +1 -0
- package/dist/ralplan/advisory-evidence.d.ts +91 -0
- package/dist/ralplan/advisory-evidence.d.ts.map +1 -0
- package/dist/ralplan/advisory-evidence.js +393 -0
- package/dist/ralplan/advisory-evidence.js.map +1 -0
- package/dist/ralplan/advisory-lifecycle-validation.d.ts +11 -0
- package/dist/ralplan/advisory-lifecycle-validation.d.ts.map +1 -0
- package/dist/ralplan/advisory-lifecycle-validation.js +72 -0
- package/dist/ralplan/advisory-lifecycle-validation.js.map +1 -0
- package/dist/ralplan/advisory-postconditions.d.ts +3 -0
- package/dist/ralplan/advisory-postconditions.d.ts.map +1 -0
- package/dist/ralplan/advisory-postconditions.js +33 -0
- package/dist/ralplan/advisory-postconditions.js.map +1 -0
- package/dist/ralplan/advisory-recovery-journal.d.ts +56 -0
- package/dist/ralplan/advisory-recovery-journal.d.ts.map +1 -0
- package/dist/ralplan/advisory-recovery-journal.js +136 -0
- package/dist/ralplan/advisory-recovery-journal.js.map +1 -0
- package/dist/ralplan/advisory-storage.d.ts +24 -0
- package/dist/ralplan/advisory-storage.d.ts.map +1 -0
- package/dist/ralplan/advisory-storage.js +106 -0
- package/dist/ralplan/advisory-storage.js.map +1 -0
- package/dist/ralplan/advisory.d.ts +99 -0
- package/dist/ralplan/advisory.d.ts.map +1 -0
- package/dist/ralplan/advisory.js +914 -0
- package/dist/ralplan/advisory.js.map +1 -0
- package/dist/ralplan/documented-leader-preflight.d.ts +8 -0
- package/dist/ralplan/documented-leader-preflight.d.ts.map +1 -1
- package/dist/ralplan/documented-leader-preflight.js +60 -2
- package/dist/ralplan/documented-leader-preflight.js.map +1 -1
- package/dist/ralplan/runtime-advisory-lifecycle.d.ts +74 -0
- package/dist/ralplan/runtime-advisory-lifecycle.d.ts.map +1 -0
- package/dist/ralplan/runtime-advisory-lifecycle.js +352 -0
- package/dist/ralplan/runtime-advisory-lifecycle.js.map +1 -0
- package/dist/ralplan/runtime-contract.d.ts +126 -0
- package/dist/ralplan/runtime-contract.d.ts.map +1 -0
- package/dist/ralplan/runtime-contract.js +2 -0
- package/dist/ralplan/runtime-contract.js.map +1 -0
- package/dist/ralplan/runtime.d.ts +6 -109
- package/dist/ralplan/runtime.d.ts.map +1 -1
- package/dist/ralplan/runtime.js +174 -56
- package/dist/ralplan/runtime.js.map +1 -1
- package/dist/scripts/__tests__/postinstall.test.js +26 -0
- package/dist/scripts/__tests__/postinstall.test.js.map +1 -1
- package/dist/scripts/__tests__/ralplan-advisory-hook.test.d.ts +2 -0
- package/dist/scripts/__tests__/ralplan-advisory-hook.test.d.ts.map +1 -0
- package/dist/scripts/__tests__/ralplan-advisory-hook.test.js +299 -0
- package/dist/scripts/__tests__/ralplan-advisory-hook.test.js.map +1 -0
- package/dist/scripts/__tests__/smoke-packed-install.test.js +102 -8
- package/dist/scripts/__tests__/smoke-packed-install.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts +20 -0
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +226 -15
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/postinstall.d.ts +7 -0
- package/dist/scripts/postinstall.d.ts.map +1 -1
- package/dist/scripts/postinstall.js +40 -0
- package/dist/scripts/postinstall.js.map +1 -1
- package/dist/scripts/smoke-packed-install.d.ts +21 -5
- package/dist/scripts/smoke-packed-install.d.ts.map +1 -1
- package/dist/scripts/smoke-packed-install.js +157 -57
- package/dist/scripts/smoke-packed-install.js.map +1 -1
- package/dist/state/__tests__/mode-binding-lease.test.d.ts +2 -0
- package/dist/state/__tests__/mode-binding-lease.test.d.ts.map +1 -0
- package/dist/state/__tests__/mode-binding-lease.test.js +498 -0
- package/dist/state/__tests__/mode-binding-lease.test.js.map +1 -0
- package/dist/state/__tests__/operations.test.js +1 -0
- package/dist/state/__tests__/operations.test.js.map +1 -1
- package/dist/state/__tests__/pinned-atomic-file.test.d.ts +2 -0
- package/dist/state/__tests__/pinned-atomic-file.test.d.ts.map +1 -0
- package/dist/state/__tests__/pinned-atomic-file.test.js +438 -0
- package/dist/state/__tests__/pinned-atomic-file.test.js.map +1 -0
- package/dist/state/__tests__/skill-active-exact-session-transaction.test.d.ts +2 -0
- package/dist/state/__tests__/skill-active-exact-session-transaction.test.d.ts.map +1 -0
- package/dist/state/__tests__/skill-active-exact-session-transaction.test.js +179 -0
- package/dist/state/__tests__/skill-active-exact-session-transaction.test.js.map +1 -0
- package/dist/state/__tests__/skill-active.test.js +29 -1
- package/dist/state/__tests__/skill-active.test.js.map +1 -1
- package/dist/state/mode-binding-lease-helper.d.ts +2 -0
- package/dist/state/mode-binding-lease-helper.d.ts.map +1 -0
- package/dist/state/mode-binding-lease-helper.js +623 -0
- package/dist/state/mode-binding-lease-helper.js.map +1 -0
- package/dist/state/mode-binding-lease.d.ts +25 -0
- package/dist/state/mode-binding-lease.d.ts.map +1 -0
- package/dist/state/mode-binding-lease.js +380 -0
- package/dist/state/mode-binding-lease.js.map +1 -0
- package/dist/state/operations.d.ts +29 -1
- package/dist/state/operations.d.ts.map +1 -1
- package/dist/state/operations.js +203 -122
- package/dist/state/operations.js.map +1 -1
- package/dist/state/pinned-atomic-file-darwin-client.d.ts +34 -0
- package/dist/state/pinned-atomic-file-darwin-client.d.ts.map +1 -0
- package/dist/state/pinned-atomic-file-darwin-client.js +174 -0
- package/dist/state/pinned-atomic-file-darwin-client.js.map +1 -0
- package/dist/state/pinned-atomic-file-darwin-helper.d.ts +2 -0
- package/dist/state/pinned-atomic-file-darwin-helper.d.ts.map +1 -0
- package/dist/state/pinned-atomic-file-darwin-helper.js +275 -0
- package/dist/state/pinned-atomic-file-darwin-helper.js.map +1 -0
- package/dist/state/pinned-atomic-file-darwin-janitor.d.ts +2 -0
- package/dist/state/pinned-atomic-file-darwin-janitor.d.ts.map +1 -0
- package/dist/state/pinned-atomic-file-darwin-janitor.js +272 -0
- package/dist/state/pinned-atomic-file-darwin-janitor.js.map +1 -0
- package/dist/state/pinned-atomic-file.d.ts +29 -0
- package/dist/state/pinned-atomic-file.d.ts.map +1 -0
- package/dist/state/pinned-atomic-file.js +536 -0
- package/dist/state/pinned-atomic-file.js.map +1 -0
- package/dist/state/process-identity.d.ts +30 -0
- package/dist/state/process-identity.d.ts.map +1 -0
- package/dist/state/process-identity.js +99 -0
- package/dist/state/process-identity.js.map +1 -0
- package/dist/state/skill-active.d.ts +18 -1
- package/dist/state/skill-active.d.ts.map +1 -1
- package/dist/state/skill-active.js +82 -5
- package/dist/state/skill-active.js.map +1 -1
- package/dist/state/workflow-transition-reconcile.js +1 -1
- package/dist/state/workflow-transition-reconcile.js.map +1 -1
- package/dist/team/__tests__/tmux-session.test.js +109 -0
- package/dist/team/__tests__/tmux-session.test.js.map +1 -1
- package/dist/team/tmux-session.d.ts.map +1 -1
- package/dist/team/tmux-session.js +10 -1
- package/dist/team/tmux-session.js.map +1 -1
- package/dist/utils/__tests__/file-durability.test.js +20 -0
- package/dist/utils/__tests__/file-durability.test.js.map +1 -1
- package/dist/utils/file-durability.d.ts +1 -1
- package/dist/utils/file-durability.d.ts.map +1 -1
- package/dist/utils/file-durability.js.map +1 -1
- package/dist/verification/__tests__/ci-rust-gates.test.js +12 -4
- package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
- package/dist/verification/__tests__/ci-trusted-publish.test.d.ts +2 -0
- package/dist/verification/__tests__/ci-trusted-publish.test.d.ts.map +1 -0
- package/dist/verification/__tests__/ci-trusted-publish.test.js +205 -0
- package/dist/verification/__tests__/ci-trusted-publish.test.js.map +1 -0
- package/dist/verification/__tests__/explore-harness-release-workflow.test.js +10 -5
- package/dist/verification/__tests__/explore-harness-release-workflow.test.js.map +1 -1
- package/dist/verification/__tests__/publish-npm-manual-retired.test.d.ts +2 -0
- package/dist/verification/__tests__/publish-npm-manual-retired.test.d.ts.map +1 -0
- package/dist/verification/__tests__/publish-npm-manual-retired.test.js +22 -0
- package/dist/verification/__tests__/publish-npm-manual-retired.test.js.map +1 -0
- package/package.json +1 -1
- package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/oh-my-codex/skills/doctor/SKILL.md +1 -1
- package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +1 -1
- package/plugins/oh-my-codex/skills/ralplan/SKILL.md +10 -1
- package/plugins/oh-my-codex/skills/team/SKILL.md +2 -0
- package/skills/doctor/SKILL.md +1 -1
- package/skills/omx-setup/SKILL.md +1 -1
- package/skills/ralplan/SKILL.md +10 -1
- package/skills/team/SKILL.md +2 -0
- package/src/scripts/__tests__/postinstall.test.ts +28 -0
- package/src/scripts/__tests__/ralplan-advisory-hook.test.ts +320 -0
- package/src/scripts/__tests__/smoke-packed-install.test.ts +120 -7
- package/src/scripts/codex-native-hook.ts +220 -10
- package/src/scripts/postinstall.ts +46 -0
- package/src/scripts/smoke-packed-install.ts +175 -70
|
@@ -99,6 +99,26 @@ test("durability warning names combined regular-file and directory degradation",
|
|
|
99
99
|
"[omx] warning: Windows EPERM regular-file and directory fsync unsupported in native-hook setup; operation succeeded with degraded durability.\n",
|
|
100
100
|
]);
|
|
101
101
|
});
|
|
102
|
+
test("plugin cache publication treats Windows EPERM fsync as degraded success", () => {
|
|
103
|
+
const tracker = { degraded: false };
|
|
104
|
+
recordRegularFileSyncOutcome(tracker, "unsupported-windows-eperm");
|
|
105
|
+
recordDirectorySyncOutcome(tracker, "unsupported-windows-eperm");
|
|
106
|
+
const originalWrite = process.stderr.write;
|
|
107
|
+
const warnings = [];
|
|
108
|
+
process.stderr.write = ((value) => {
|
|
109
|
+
warnings.push(value);
|
|
110
|
+
return true;
|
|
111
|
+
});
|
|
112
|
+
try {
|
|
113
|
+
emitDegradedDurabilityWarning("plugin cache publication", tracker);
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
process.stderr.write = originalWrite;
|
|
117
|
+
}
|
|
118
|
+
assert.deepEqual(warnings, [
|
|
119
|
+
"[omx] warning: Windows EPERM regular-file and directory fsync unsupported in plugin cache publication; operation succeeded with degraded durability.\n",
|
|
120
|
+
]);
|
|
121
|
+
});
|
|
102
122
|
test("a throwing stderr sink cannot fail an already successful transaction", () => {
|
|
103
123
|
const originalWrite = process.stderr.write;
|
|
104
124
|
const tracker = { degraded: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-durability.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/file-durability.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-durability.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/file-durability.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FileHandle } from "fs/promises";
|
|
2
2
|
export type RegularFileSyncOutcome = "synced" | "unsupported-windows-eperm";
|
|
3
3
|
export type DirectorySyncOutcome = "synced" | "unsupported-windows-eperm";
|
|
4
|
-
export type DurabilityWarningSubsystem = "session pointer start/reconcile" | "session pointer end" | "native-hook setup" | "native-hook uninstall" | "native-hook claim-journal recovery";
|
|
4
|
+
export type DurabilityWarningSubsystem = "session pointer start/reconcile" | "session pointer end" | "native-hook setup" | "native-hook uninstall" | "native-hook claim-journal recovery" | "plugin cache publication";
|
|
5
5
|
export interface RegularFileDurabilityTracker {
|
|
6
6
|
degraded: boolean;
|
|
7
7
|
regularFileDegraded?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-durability.d.ts","sourceRoot":"","sources":["../../src/utils/file-durability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,2BAA2B,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,2BAA2B,CAAC;AAE1E,MAAM,MAAM,0BAA0B,GACnC,iCAAiC,GACjC,qBAAqB,GACrB,mBAAmB,GACnB,uBAAuB,GACvB,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"file-durability.d.ts","sourceRoot":"","sources":["../../src/utils/file-durability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,2BAA2B,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,2BAA2B,CAAC;AAE1E,MAAM,MAAM,0BAA0B,GACnC,iCAAiC,GACjC,qBAAqB,GACrB,mBAAmB,GACnB,uBAAuB,GACvB,oCAAoC,GACpC,0BAA0B,CAAC;AAE9B,MAAM,WAAW,4BAA4B;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAaD;;;;GAIG;AAEH,wBAAsB,eAAe,CACpC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAChC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC1C,OAAO,CAAC,sBAAsB,CAAC,CAQjC;AAED;;;;GAIG;AAEH,wBAAsB,aAAa,CAClC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAChC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC1C,OAAO,CAAC,oBAAoB,CAAC,CAQ/B;AAED,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,sBAAsB,GAC7B,IAAI,CAIN;AAED,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,oBAAoB,GAC3B,IAAI,CAIN;AAED,wBAAgB,6BAA6B,CAC5C,SAAS,EAAE,0BAA0B,EACrC,OAAO,EAAE,4BAA4B,GACnC,IAAI,CAcN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-durability.js","sourceRoot":"","sources":["../../src/utils/file-durability.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-durability.js","sourceRoot":"","sources":["../../src/utils/file-durability.ts"],"names":[],"mappings":"AAmBA,SAAS,wBAAwB,CAChC,KAAc,EACd,QAAyB;IAEzB,OAAO,QAAQ,KAAK,OAAO;WACvB,OAAO,KAAK,KAAK,QAAQ;WACzB,KAAK,KAAK,IAAI;WACd,MAAM,IAAI,KAAK;WACd,KAA4B,CAAC,IAAI,KAAK,OAAO,CAAC;AACpD,CAAC;AAED;;;;GAIG;AAEH,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,MAAgC,EAChC,QAAQ,GAAoB,OAAO,CAAC,QAAQ;IAE5C,IAAI,CAAC;QACJ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAC;QAC5D,OAAO,2BAA2B,CAAC;IACpC,CAAC;AACF,CAAC;AAED;;;;GAIG;AAEH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,MAAgC,EAChC,QAAQ,GAAoB,OAAO,CAAC,QAAQ;IAE5C,IAAI,CAAC;QACJ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAC;QAC5D,OAAO,2BAA2B,CAAC;IACpC,CAAC;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC3C,OAAqC,EACrC,OAA+B;IAE/B,IAAI,OAAO,KAAK,2BAA2B;QAAE,OAAO;IACpD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,OAAqC,EACrC,OAA6B;IAE7B,IAAI,OAAO,KAAK,2BAA2B;QAAE,OAAO;IACpD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC5C,SAAqC,EACrC,OAAqC;IAErC,IAAI,CAAC,OAAO,CAAC,QAAQ;QAAE,OAAO;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB;QACvC,CAAC,CAAC,OAAO,CAAC,mBAAmB;YAC5B,CAAC,CAAC,kCAAkC;YACpC,CAAC,CAAC,iBAAiB;QACpB,CAAC,CAAC,oBAAoB,CAAC;IACxB,IAAI,CAAC;QACJ,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,gCAAgC,MAAM,mBAAmB,SAAS,mDAAmD,CACrH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,8DAA8D;IAC/D,CAAC;AACF,CAAC"}
|
|
@@ -225,7 +225,7 @@ describe('CI Rust gates', () => {
|
|
|
225
225
|
assert.match(nativeCacheJob, /name:\s*Download prebuilt dist artifact\s*\n\s+uses:\s*actions\/download-artifact@v8\s*\n\s+with:\s*\n\s+name:\s*ci-dist-node20\s*\n\s+path:\s*dist/);
|
|
226
226
|
assert.match(nativeCacheJob, /node --test\s*\\\n\s+dist\/cli\/__tests__\/native-assets\.test\.js\s*\\\n\s+dist\/cli\/__tests__\/sparkshell-cli\.test\.js\s*\\\n\s+dist\/cli\/__tests__\/api\.test\.js\s*\\\n\s+dist\/scripts\/__tests__\/verify-native-release-assets\.test\.js\s*\\\n\s+dist\/verification\/__tests__\/native-release-manifest\.test\.js\s*\\\n\s+dist\/verification\/__tests__\/explore-harness-release-workflow\.test\.js\s*\\\n\s+dist\/verification\/__tests__\/ci-rust-gates\.test\.js/);
|
|
227
227
|
assert.match(ciStatusJob, /^ if: always\(\)$/m);
|
|
228
|
-
assert.match(ciStatusJob, /^ needs:\s*\[changes, docs-check, rustfmt, clippy, rust-tests, native-rust-darwin, native-rust-windows, lint, typecheck, build-dist, ralplan-preflight-macos, test, coverage-team-critical, ralph-persistence-gate, native-cache-integrity, build\]$/m);
|
|
228
|
+
assert.match(ciStatusJob, /^ needs:\s*\[changes, docs-check, rustfmt, clippy, rust-tests, native-rust-darwin, native-rust-windows, lint, typecheck, build-dist, ralplan-preflight-macos, test, test-windows-js, coverage-team-critical, ralph-persistence-gate, native-cache-integrity, build\]$/m);
|
|
229
229
|
assert.match(ciStatusJob, /NATIVE_CACHE_INTEGRITY_RESULT: \$\{\{ needs\.native-cache-integrity\.result \}\}/);
|
|
230
230
|
assert.match(ciStatusJob, /if \[\[ "\$FULL_SUITE" == "true" \]\] \|\| bool_any "\$TS_CHANGED" "\$NATIVE_CHANGED" "\$SHARED_CONFIG_CHANGED"; then native_cache_integrity_active=true; fi/);
|
|
231
231
|
assert.match(ciStatusJob, /check_job native-cache-integrity "\$NATIVE_CACHE_INTEGRITY_RESULT" "\$native_cache_integrity_active"/);
|
|
@@ -247,7 +247,7 @@ describe('CI Rust gates', () => {
|
|
|
247
247
|
});
|
|
248
248
|
it('uses npm package caching without skipping clean dependency installs', () => {
|
|
249
249
|
const workflow = readCiWorkflow();
|
|
250
|
-
for (const jobName of ['lint', 'typecheck', 'build-dist', 'test', 'coverage-team-critical', 'ralph-persistence-gate', 'native-cache-integrity', 'build']) {
|
|
250
|
+
for (const jobName of ['lint', 'typecheck', 'build-dist', 'test', 'test-windows-js', 'coverage-team-critical', 'ralph-persistence-gate', 'native-cache-integrity', 'build']) {
|
|
251
251
|
const job = jobBlock(workflow, jobName);
|
|
252
252
|
assert.match(job, /uses:\s*actions\/setup-node@v7/);
|
|
253
253
|
assert.match(job, /cache:\s*npm/);
|
|
@@ -259,7 +259,14 @@ describe('CI Rust gates', () => {
|
|
|
259
259
|
for (const jobName of ['clippy', 'rust-tests', 'build']) {
|
|
260
260
|
assert.match(jobBlock(workflow, jobName), /uses:\s*Swatinem\/rust-cache@v2/);
|
|
261
261
|
}
|
|
262
|
-
|
|
262
|
+
const windowsHistoryJob = jobBlock(workflow, 'test-windows-js');
|
|
263
|
+
assert.match(windowsHistoryJob, /runs-on:\s*windows-latest/);
|
|
264
|
+
assert.match(windowsHistoryJob, /timeout-minutes:\s*30/);
|
|
265
|
+
assert.match(windowsHistoryJob, /run:\s*npm ci --ignore-scripts/);
|
|
266
|
+
assert.match(windowsHistoryJob, /node --test/);
|
|
267
|
+
assert.match(windowsHistoryJob, /serializes concurrent JSONL cleanup appends/);
|
|
268
|
+
assert.match(windowsHistoryJob, /runs project resume integration on Windows/);
|
|
269
|
+
assert.match(workflow, /needs:\s*\[changes, docs-check, rustfmt, clippy, rust-tests, native-rust-darwin, native-rust-windows, lint, typecheck, build-dist, ralplan-preflight-macos, test, test-windows-js, coverage-team-critical, ralph-persistence-gate, native-cache-integrity, build\]/);
|
|
263
270
|
});
|
|
264
271
|
it('avoids path-filtered CI triggers so required checks cannot be skipped into a pending state', () => {
|
|
265
272
|
const workflow = readCiWorkflow();
|
|
@@ -283,12 +290,13 @@ describe('CI Rust gates', () => {
|
|
|
283
290
|
'build-dist',
|
|
284
291
|
'ralplan-preflight-macos',
|
|
285
292
|
'test',
|
|
293
|
+
'test-windows-js',
|
|
286
294
|
'coverage-team-critical',
|
|
287
295
|
'ralph-persistence-gate',
|
|
288
296
|
'native-cache-integrity',
|
|
289
297
|
'build',
|
|
290
298
|
];
|
|
291
|
-
assert.match(ciStatusJob, /needs:\s*\[changes, docs-check, rustfmt, clippy, rust-tests, native-rust-darwin, native-rust-windows, lint, typecheck, build-dist, ralplan-preflight-macos, test, coverage-team-critical, ralph-persistence-gate, native-cache-integrity, build\]/);
|
|
299
|
+
assert.match(ciStatusJob, /needs:\s*\[changes, docs-check, rustfmt, clippy, rust-tests, native-rust-darwin, native-rust-windows, lint, typecheck, build-dist, ralplan-preflight-macos, test, test-windows-js, coverage-team-critical, ralph-persistence-gate, native-cache-integrity, build\]/);
|
|
292
300
|
for (const jobName of requiredJobs) {
|
|
293
301
|
const envName = jobName.toUpperCase().replaceAll('-', '_');
|
|
294
302
|
assert.equal(ciStatusJob.includes(`${envName}_RESULT: $` + `{{ needs.${jobName}.result }}`), true, `${jobName} result should be captured`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci-rust-gates.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/ci-rust-gates.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ci-rust-gates.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/ci-rust-gates.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-trusted-publish.test.d.ts","sourceRoot":"","sources":["../../../src/verification/__tests__/ci-trusted-publish.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { execFileSync } from 'node:child_process';
|
|
7
|
+
function readCiWorkflow() {
|
|
8
|
+
const workflowPath = join(process.cwd(), '.github', 'workflows', 'ci.yml');
|
|
9
|
+
assert.equal(existsSync(workflowPath), true, `missing workflow: ${workflowPath}`);
|
|
10
|
+
return readFileSync(workflowPath, 'utf-8').replace(/\r\n/g, '\n');
|
|
11
|
+
}
|
|
12
|
+
function jobBlock(workflow, jobName) {
|
|
13
|
+
const startMatch = workflow.match(new RegExp(`(^|\n) ${jobName}:\n`));
|
|
14
|
+
assert.ok(startMatch?.index !== undefined, `missing CI job block for ${jobName}`);
|
|
15
|
+
const start = startMatch.index + startMatch[1].length;
|
|
16
|
+
const afterJobHeader = start + ` ${jobName}:\n`.length;
|
|
17
|
+
const nextJobOffset = workflow.slice(afterJobHeader).search(/\n [a-z0-9-]+:\n/);
|
|
18
|
+
const end = nextJobOffset === -1 ? workflow.length : afterJobHeader + nextJobOffset;
|
|
19
|
+
return workflow.slice(start, end);
|
|
20
|
+
}
|
|
21
|
+
function extractNamedFunction(source, name) {
|
|
22
|
+
const start = source.indexOf(`function ${name}(`);
|
|
23
|
+
assert.ok(start >= 0, `missing function ${name}`);
|
|
24
|
+
const brace = source.indexOf('{', start);
|
|
25
|
+
assert.ok(brace >= 0, `missing body for ${name}`);
|
|
26
|
+
let depth = 0;
|
|
27
|
+
for (let i = brace; i < source.length; i += 1) {
|
|
28
|
+
const ch = source[i];
|
|
29
|
+
if (ch === '{')
|
|
30
|
+
depth += 1;
|
|
31
|
+
else if (ch === '}') {
|
|
32
|
+
depth -= 1;
|
|
33
|
+
if (depth === 0)
|
|
34
|
+
return source.slice(start, i + 1);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
assert.fail(`unclosed function ${name}`);
|
|
38
|
+
}
|
|
39
|
+
function loadFunction(source, name) {
|
|
40
|
+
const fnSource = extractNamedFunction(source, name);
|
|
41
|
+
return new Function(`${fnSource}\nreturn ${name};`)();
|
|
42
|
+
}
|
|
43
|
+
function git(cwd, args) {
|
|
44
|
+
return execFileSync('git', args, { cwd, encoding: 'utf8' }).trim();
|
|
45
|
+
}
|
|
46
|
+
const PUBLISH_JOB = 'publish-npm-trusted';
|
|
47
|
+
describe('CI npm trusted publishing contract', () => {
|
|
48
|
+
it('exposes dispatch inputs for an immutable release tag and bound commit SHA', () => {
|
|
49
|
+
const workflow = readCiWorkflow();
|
|
50
|
+
assert.match(workflow, /workflow_dispatch:\n\s+inputs:\n\s+release_tag:/);
|
|
51
|
+
assert.match(workflow, /release_tag:\n\s+description: 'Immutable release tag to publish via npm trusted publishing, e\.g\. v0\.21\.0'\n\s+required: false\n\s+type: string/);
|
|
52
|
+
assert.match(workflow, /release_sha:\n\s+description: 'Exact peeled commit SHA the immutable release_tag must resolve to'\n\s+required: false\n\s+type: string/);
|
|
53
|
+
});
|
|
54
|
+
it('does not cancel a trusted-publish dispatch when ordinary CI shares main', () => {
|
|
55
|
+
const workflow = readCiWorkflow();
|
|
56
|
+
assert.match(workflow, /group: \$\{\{ github\.event_name == 'workflow_dispatch' && format\('ci-dispatch-\{0\}', github\.event\.inputs\.release_tag \|\| github\.run_id\) \|\| format\('ci-\{0\}', github\.ref\) \}\}/);
|
|
57
|
+
assert.match(workflow, /cancel-in-progress: \$\{\{ github\.event_name != 'workflow_dispatch' \}\}/);
|
|
58
|
+
assert.doesNotMatch(workflow, /^\s+cancel-in-progress:\s*true$/m);
|
|
59
|
+
});
|
|
60
|
+
it('runs the publish job only on an explicit dispatch from main with a tag input', () => {
|
|
61
|
+
const publishJob = jobBlock(readCiWorkflow(), PUBLISH_JOB);
|
|
62
|
+
// Ordinary push and pull_request CI must never run the publish job.
|
|
63
|
+
assert.match(publishJob, /if: github\.event_name == 'workflow_dispatch' && github\.ref == 'refs\/heads\/main' && inputs\.release_tag != '' && inputs\.release_sha != ''/);
|
|
64
|
+
// The publish job must not be reachable through the shared lane outputs.
|
|
65
|
+
assert.doesNotMatch(publishJob, /needs\.changes/);
|
|
66
|
+
assert.doesNotMatch(publishJob, /needs:/);
|
|
67
|
+
});
|
|
68
|
+
it('grants only the OIDC and read permissions trusted publishing needs', () => {
|
|
69
|
+
const publishJob = jobBlock(readCiWorkflow(), PUBLISH_JOB);
|
|
70
|
+
assert.match(publishJob, /permissions:\n\s+contents: read\n\s+id-token: write/);
|
|
71
|
+
// No write surface beyond the OIDC token: contents stays read-only.
|
|
72
|
+
assert.doesNotMatch(publishJob, /contents:\s*write/);
|
|
73
|
+
assert.doesNotMatch(publishJob, /packages:\s*write/);
|
|
74
|
+
});
|
|
75
|
+
it('publishes tokenlessly with provenance and no secret or OTP fallback', () => {
|
|
76
|
+
const publishJob = jobBlock(readCiWorkflow(), PUBLISH_JOB);
|
|
77
|
+
assert.match(publishJob, /run: npm publish --access public --provenance\n/);
|
|
78
|
+
// No npm token, no OTP, no non-provenance retry path.
|
|
79
|
+
assert.doesNotMatch(publishJob, /NODE_AUTH_TOKEN/);
|
|
80
|
+
assert.doesNotMatch(publishJob, /NPM_TOKEN/);
|
|
81
|
+
assert.doesNotMatch(publishJob, /secrets\./);
|
|
82
|
+
assert.doesNotMatch(publishJob, /_authToken/);
|
|
83
|
+
assert.doesNotMatch(publishJob, /npm whoami/);
|
|
84
|
+
assert.doesNotMatch(publishJob, /--otp/i);
|
|
85
|
+
// The publish step must be the single tokenless attempt: no conditional retry.
|
|
86
|
+
const publishSteps = publishJob.match(/npm publish[^\n]*/g) ?? [];
|
|
87
|
+
assert.deepEqual(publishSteps, ['npm publish --access public --provenance']);
|
|
88
|
+
});
|
|
89
|
+
it('binds publication to the exact release tag and refuses mismatches', () => {
|
|
90
|
+
const publishJob = jobBlock(readCiWorkflow(), PUBLISH_JOB);
|
|
91
|
+
// Tag shape gate before any checkout.
|
|
92
|
+
assert.match(publishJob, /\^v\[0-9\]\+\\\.\[0-9\]\+\\\.\[0-9\]\+\$/);
|
|
93
|
+
// Checkout is pinned to the input tag with full history so origin/main can be fetched.
|
|
94
|
+
assert.match(publishJob, /uses: actions\/checkout@v7\n\s+with:\n\s+ref: \$\{\{ inputs\.release_tag \}\}\n\s+fetch-depth: 0\n/);
|
|
95
|
+
assert.match(publishJob, /git fetch --no-tags origin \+refs\/heads\/main:refs\/remotes\/origin\/main/);
|
|
96
|
+
assert.match(publishJob, /git rev-parse --verify refs\/remotes\/origin\/main/);
|
|
97
|
+
assert.match(publishJob, /git rev-parse "\$RELEASE_TAG\^\{\}"/);
|
|
98
|
+
assert.match(publishJob, /RELEASE_SHA: \$\{\{ inputs\.release_sha \}\}/);
|
|
99
|
+
assert.match(publishJob, /EXPECTED_SHA=\$\(printf '%s' "\$RELEASE_SHA" \| tr 'A-F' 'a-f'\)/);
|
|
100
|
+
assert.match(publishJob, /TAG_COMMIT" != "\$EXPECTED_SHA"/);
|
|
101
|
+
assert.match(publishJob, /git merge-base --is-ancestor "\$TAG_COMMIT" "\$MAIN_COMMIT"/);
|
|
102
|
+
// Historical annotated tags on main must be publishable after main advances.
|
|
103
|
+
assert.doesNotMatch(publishJob, /does not resolve to the main branch head/);
|
|
104
|
+
assert.doesNotMatch(publishJob, /git rev-parse "\$RELEASE_TAG\^\{\}"\)" != "\$\(git rev-parse refs\/remotes\/origin\/main\)"/);
|
|
105
|
+
// Package version must equal the tag.
|
|
106
|
+
assert.match(publishJob, /test "\$RELEASE_TAG" = "v\$VERSION"/);
|
|
107
|
+
});
|
|
108
|
+
it('treats an immutable tag on historical main as an ancestor, not current-head equality', () => {
|
|
109
|
+
const cwd = mkdtempSync(join(tmpdir(), 'omx-trusted-publish-ancestry-'));
|
|
110
|
+
try {
|
|
111
|
+
git(cwd, ['init', '-b', 'main']);
|
|
112
|
+
git(cwd, ['config', 'user.email', 'trusted-publish@example.test']);
|
|
113
|
+
git(cwd, ['config', 'user.name', 'trusted-publish']);
|
|
114
|
+
writeFileSync(join(cwd, 'README'), 'first\n');
|
|
115
|
+
git(cwd, ['add', 'README']);
|
|
116
|
+
git(cwd, ['commit', '-m', 'first']);
|
|
117
|
+
const tagged = git(cwd, ['rev-parse', 'HEAD']);
|
|
118
|
+
git(cwd, ['tag', '-a', 'v0.21.0', '-m', 'v0.21.0']);
|
|
119
|
+
writeFileSync(join(cwd, 'README'), 'first\nsecond\n');
|
|
120
|
+
git(cwd, ['add', 'README']);
|
|
121
|
+
git(cwd, ['commit', '-m', 'second']);
|
|
122
|
+
const mainHead = git(cwd, ['rev-parse', 'HEAD']);
|
|
123
|
+
const peeledTag = git(cwd, ['rev-parse', 'v0.21.0^{}']);
|
|
124
|
+
assert.equal(peeledTag, tagged);
|
|
125
|
+
assert.notEqual(peeledTag, mainHead);
|
|
126
|
+
git(cwd, ['merge-base', '--is-ancestor', peeledTag, mainHead]);
|
|
127
|
+
git(cwd, ['checkout', '-q', '-b', 'unmerged']);
|
|
128
|
+
writeFileSync(join(cwd, 'README'), 'first\nsecond\nside\n');
|
|
129
|
+
git(cwd, ['add', 'README']);
|
|
130
|
+
git(cwd, ['commit', '-m', 'side']);
|
|
131
|
+
const side = git(cwd, ['rev-parse', 'HEAD']);
|
|
132
|
+
assert.throws(() => git(cwd, ['merge-base', '--is-ancestor', side, mainHead]));
|
|
133
|
+
}
|
|
134
|
+
finally {
|
|
135
|
+
rmSync(cwd, { recursive: true, force: true });
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
it('enforces npm >= 11.5.1 and Node >= 22.14.0, rejecting 11.5.0', () => {
|
|
139
|
+
const publishJob = jobBlock(readCiWorkflow(), PUBLISH_JOB);
|
|
140
|
+
assert.match(publishJob, /node-version: 24/);
|
|
141
|
+
assert.match(publishJob, /npm install -g npm@\^11\.5\.1/);
|
|
142
|
+
assert.match(publishJob, /npm >= 11\.5\.1 is required for tokenless trusted publishing/);
|
|
143
|
+
assert.match(publishJob, /Node >= 22\.14\.0 is required for tokenless trusted publishing/);
|
|
144
|
+
assert.doesNotMatch(publishJob, /npm >= 11\.5\.0 is required/);
|
|
145
|
+
const nodeMeetsTrustedPublish = loadFunction(publishJob, 'nodeMeetsTrustedPublish');
|
|
146
|
+
const npmMeetsTrustedPublish = loadFunction(publishJob, 'npmMeetsTrustedPublish');
|
|
147
|
+
assert.equal(npmMeetsTrustedPublish('11.5.0'), false);
|
|
148
|
+
assert.equal(npmMeetsTrustedPublish('11.4.2'), false);
|
|
149
|
+
assert.equal(npmMeetsTrustedPublish('11.5.1'), true);
|
|
150
|
+
assert.equal(npmMeetsTrustedPublish('11.6.0'), true);
|
|
151
|
+
assert.equal(npmMeetsTrustedPublish('12.0.0'), true);
|
|
152
|
+
assert.equal(nodeMeetsTrustedPublish('20.19.0'), false);
|
|
153
|
+
assert.equal(nodeMeetsTrustedPublish('22.13.1'), false);
|
|
154
|
+
assert.equal(nodeMeetsTrustedPublish('22.14.0'), true);
|
|
155
|
+
assert.equal(nodeMeetsTrustedPublish('24.4.0'), true);
|
|
156
|
+
});
|
|
157
|
+
it('verifies the version is absent from the registry before publishing and refuses blind retries', () => {
|
|
158
|
+
const publishJob = jobBlock(readCiWorkflow(), PUBLISH_JOB);
|
|
159
|
+
assert.match(publishJob, /npm view "oh-my-codex@\$VERSION" version --json/);
|
|
160
|
+
assert.match(publishJob, /already exists on npm; refusing blind retry/);
|
|
161
|
+
assert.match(publishJob, /npm view failed with a non-404 registry error; refusing to publish \(fail closed\)/);
|
|
162
|
+
assert.match(publishJob, /if \(code\) \{\n\s+return code === 'E404' \? 'absent' : 'error';/);
|
|
163
|
+
assert.doesNotMatch(publishJob, /if npm view "oh-my-codex@\$VERSION" version >\/dev\/null 2>&1; then/);
|
|
164
|
+
assert.doesNotMatch(publishJob, /code === 'E404' \|\|/);
|
|
165
|
+
// Pack is a dry run only: no artifact publication outside npm publish.
|
|
166
|
+
assert.match(publishJob, /run: npm pack --dry-run\n/);
|
|
167
|
+
const classifyNpmViewResult = loadFunction(publishJob, 'classifyNpmViewResult');
|
|
168
|
+
assert.equal(classifyNpmViewResult(0, '"0.21.0"'), 'exists');
|
|
169
|
+
assert.equal(classifyNpmViewResult(1, JSON.stringify({ error: { code: 'E404', summary: 'Not Found' } })), 'absent');
|
|
170
|
+
assert.equal(classifyNpmViewResult(1, "npm error code E404\nnpm error 404 Not Found - GET https://registry.npmjs.org/oh-my-codex/0.21.0\nnpm error 404 'oh-my-codex@0.21.0' is not in this registry.\n"), 'absent');
|
|
171
|
+
assert.equal(classifyNpmViewResult(1, "npm error 404 Not Found - GET https://registry.npmjs.org/oh-my-codex/0.21.0\nnpm error 404 'oh-my-codex@0.21.0' is not in this registry.\n"), 'absent');
|
|
172
|
+
assert.equal(classifyNpmViewResult(1, JSON.stringify({ error: { code: 'E401', summary: '404 Not Found' } })), 'error');
|
|
173
|
+
assert.equal(classifyNpmViewResult(1, 'npm error code E401\nnpm error 404 Not Found - GET https://registry.npmjs.org/oh-my-codex/0.21.0'), 'error');
|
|
174
|
+
assert.equal(classifyNpmViewResult(1, 'npm error code E403\nnpm error 404 \'oh-my-codex@0.21.0\' is not in this registry.\n'), 'error');
|
|
175
|
+
assert.equal(classifyNpmViewResult(1, 'npm error code EAI_AGAIN\nnpm error request to https://registry.npmjs.org failed'), 'error');
|
|
176
|
+
assert.equal(classifyNpmViewResult(1, 'npm error code E401\nnpm error Unable to authenticate'), 'error');
|
|
177
|
+
assert.equal(classifyNpmViewResult(1, 'npm error code ETIMEDOUT'), 'error');
|
|
178
|
+
assert.equal(classifyNpmViewResult(2, 'ENOTFOUND registry.npmjs.org'), 'error');
|
|
179
|
+
assert.equal(classifyNpmViewResult(1, 'HTTP 404 Not Found from a proxy during E401'), 'error');
|
|
180
|
+
});
|
|
181
|
+
it('verifies registry publication with bounded retries after publishing', () => {
|
|
182
|
+
const publishJob = jobBlock(readCiWorkflow(), PUBLISH_JOB);
|
|
183
|
+
assert.match(publishJob, /for i in \$\(seq 1 20\); do/);
|
|
184
|
+
assert.match(publishJob, /npm view "oh-my-codex@\$VERSION" version 2>\/dev\/null \|\| true/);
|
|
185
|
+
assert.match(publishJob, /npm view oh-my-codex version dist-tags --json/);
|
|
186
|
+
assert.match(publishJob, /sleep 15/);
|
|
187
|
+
assert.match(publishJob, /npm did not expose oh-my-codex@\$VERSION in time/);
|
|
188
|
+
});
|
|
189
|
+
it('keeps ordinary push and pull_request CI free of any publish surface', () => {
|
|
190
|
+
const workflow = readCiWorkflow();
|
|
191
|
+
// The workflow still triggers on the same ordinary CI events.
|
|
192
|
+
assert.match(workflow, /push:\n\s+branches: \[main, dev, experimental\/dev\]/);
|
|
193
|
+
assert.match(workflow, /pull_request:\n\s+branches: \[main, dev, experimental\/dev\]/);
|
|
194
|
+
// Only the dedicated publish job may run npm publish, and only via dispatch.
|
|
195
|
+
const publishMentions = workflow.match(/npm publish[^\n]*/g) ?? [];
|
|
196
|
+
assert.deepEqual(publishMentions, ['npm publish --access public --provenance']);
|
|
197
|
+
// No job outside the publish block may reference dispatch inputs.
|
|
198
|
+
const withoutPublishJob = workflow.replace(jobBlock(workflow, PUBLISH_JOB), '');
|
|
199
|
+
const jobsOnly = withoutPublishJob.slice(withoutPublishJob.indexOf('\njobs:'));
|
|
200
|
+
assert.doesNotMatch(jobsOnly, /inputs\.release_tag/);
|
|
201
|
+
assert.doesNotMatch(jobsOnly, /inputs\.release_sha/);
|
|
202
|
+
assert.doesNotMatch(withoutPublishJob, /npm publish/);
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
//# sourceMappingURL=ci-trusted-publish.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-trusted-publish.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/ci-trusted-publish.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ function flattenReleaseArtifacts(sourcePaths) {
|
|
|
21
21
|
return [...destinations];
|
|
22
22
|
}
|
|
23
23
|
describe('native release workflow', () => {
|
|
24
|
-
it('defines a unified tag workflow that publishes
|
|
24
|
+
it('defines a unified tag workflow that publishes native binaries without a token npm publisher', async () => {
|
|
25
25
|
const workflowPath = join(process.cwd(), '.github', 'workflows', 'release.yml');
|
|
26
26
|
assert.equal(existsSync(workflowPath), true, `missing workflow: ${workflowPath}`);
|
|
27
27
|
const workflow = readFileSync(workflowPath, 'utf-8');
|
|
@@ -55,9 +55,11 @@ describe('native release workflow', () => {
|
|
|
55
55
|
assert.match(workflow, /Publish Native Assets/);
|
|
56
56
|
assert.match(workflow, /Smoke Verify Native Assets/);
|
|
57
57
|
assert.match(workflow, /Smoke Test Packed Global Install/);
|
|
58
|
-
assert.
|
|
59
|
-
assert.
|
|
60
|
-
assert.
|
|
58
|
+
assert.doesNotMatch(workflow, /Publish npm Package/);
|
|
59
|
+
assert.doesNotMatch(workflow, /publish-npm:/);
|
|
60
|
+
assert.doesNotMatch(workflow, /NODE_AUTH_TOKEN/);
|
|
61
|
+
assert.doesNotMatch(workflow, /NPM_TOKEN/);
|
|
62
|
+
assert.doesNotMatch(workflow, /npm publish/);
|
|
61
63
|
assert.doesNotMatch(workflow, /Older Linux Runtime Proof/);
|
|
62
64
|
assert.doesNotMatch(workflow, /node:20-bullseye/);
|
|
63
65
|
assert.doesNotMatch(workflow, /docker run --rm/);
|
|
@@ -68,12 +70,15 @@ describe('native release workflow', () => {
|
|
|
68
70
|
assert.doesNotMatch(workflow, /--release-assets-dir/);
|
|
69
71
|
assert.doesNotMatch(workflow, /--require-no-fallback/);
|
|
70
72
|
assert.match(workflow, /verify-version-sync:[\s\S]*Verify version sync against workspace crates[\s\S]*node --input-type=module/);
|
|
73
|
+
assert.match(workflow, /Verify tag is an ancestor of origin\/main/);
|
|
74
|
+
assert.match(workflow, /git merge-base --is-ancestor "\$TAG_COMMIT" "\$MAIN_COMMIT"/);
|
|
75
|
+
assert.match(workflow, /git fetch --no-tags origin \+refs\/heads\/main:refs\/remotes\/origin\/main/);
|
|
71
76
|
assert.match(workflow, /publish-native-assets:[\s\S]*npm run build[\s\S]*node dist\/scripts\/generate-native-release-manifest\.js/);
|
|
72
77
|
assert.match(workflow, /publish-native-assets:[\s\S]*Generate release body[\s\S]*node dist\/scripts\/generate-release-body\.js --template RELEASE_BODY\.md --out RELEASE_BODY\.generated\.md/);
|
|
73
78
|
assert.match(workflow, /body_path:\s*RELEASE_BODY\.generated\.md/);
|
|
74
79
|
assert.match(workflow, /smoke-verify-native:[\s\S]*npm run build[\s\S]*node dist\/scripts\/verify-native-release-assets\.js/);
|
|
75
80
|
assert.match(workflow, /smoke-packed-install:[\s\S]*npm run build[\s\S]*Smoke test packed install boot \+ core commands[\s\S]*npm run smoke:packed-install/);
|
|
76
|
-
assert.
|
|
81
|
+
assert.doesNotMatch(workflow, /publish-npm:/);
|
|
77
82
|
const manifestGeneration = workflow.indexOf('Generate release manifest from cargo-dist plan');
|
|
78
83
|
const verification = workflow.indexOf('Verify release archives and manifest');
|
|
79
84
|
const bundleUpload = workflow.indexOf('Upload release asset bundle for follow-up jobs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explore-harness-release-workflow.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/explore-harness-release-workflow.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,SAAS,8BAA8B,CACrC,QAAgB,EAChB,UAAkB,EAClB,cAAqC;IAErC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzF,OAAO,YAAY,IAAI,CAAC,IAAI,MAAM,GAAG,YAAY,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACrH,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAqB;IACpD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,sBAAsB,QAAQ,EAAE,CAAC,CAAC;QAC/F,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;AAC3B,CAAC;AAKD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"explore-harness-release-workflow.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/explore-harness-release-workflow.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-npm-manual-retired.test.d.ts","sourceRoot":"","sources":["../../../src/verification/__tests__/publish-npm-manual-retired.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
describe('legacy manual npm publish workflow is retired', () => {
|
|
6
|
+
it('does not keep an independent token or non-provenance publish workflow', () => {
|
|
7
|
+
const workflowsDir = join(process.cwd(), '.github', 'workflows');
|
|
8
|
+
assert.equal(existsSync(join(workflowsDir, 'publish-npm-manual.yml')), false, 'publish-npm-manual.yml must not remain as a dispatchable publisher');
|
|
9
|
+
const workflowFiles = readdirSync(workflowsDir).filter((name) => /\.ya?ml$/i.test(name));
|
|
10
|
+
for (const name of workflowFiles) {
|
|
11
|
+
const body = readFileSync(join(workflowsDir, name), 'utf-8').replace(/\r\n/g, '\n');
|
|
12
|
+
assert.doesNotMatch(body, /name:\s*Manual npm publish/);
|
|
13
|
+
assert.doesNotMatch(body, /allow_without_provenance/);
|
|
14
|
+
if (name === 'ci.yml') {
|
|
15
|
+
assert.doesNotMatch(body, /NODE_AUTH_TOKEN/);
|
|
16
|
+
assert.doesNotMatch(body, /NPM_TOKEN/);
|
|
17
|
+
assert.match(body, /npm publish --access public --provenance/);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=publish-npm-manual-retired.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-npm-manual-retired.test.js","sourceRoot":"","sources":["../../../src/verification/__tests__/publish-npm-manual-retired.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;IAC7D,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACjE,MAAM,CAAC,KAAK,CACV,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC,EACxD,KAAK,EACL,oEAAoE,CACrE,CAAC;QAEF,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpF,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;YACxD,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;YACtD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACvC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,0CAA0C,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ omx doctor --force # repair eligible repo artifact ownership issues
|
|
|
17
17
|
omx doctor --dry-run --force # preview eligible ownership repairs
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
For a local source checkout, build first and invoke `node
|
|
20
|
+
For a local source checkout, build first and invoke `node dist/cli/omx.js doctor`. Keep command output and exact paths for the report.
|
|
21
21
|
|
|
22
22
|
### Plugin cache and version
|
|
23
23
|
|