Refactor test/install_dir_validation.test.mjs to use unique temporary directories for each subtest, eliminating shared state and race conditions that caused flakiness.
Update KNOWN_ISSUES.md to mark the issue as resolved.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Executed test-audit-agent prompt
- Ran static analysis and flakiness check
- Identified and reported consistent failures in load-test.mjs and smoke-test.mjs
- Updated KNOWN_ISSUES.md
- Created run artifacts (Context, Todo, Decisions, Test Logs)
- Completed lock cycle
Co-authored-by: PR0M3TH3AN <[email protected]>
- Extracted `RelayHealthManager` to `src/relay-health-manager.mjs`.
- Extracted `LockPublisher` to `src/lock-publisher.mjs`.
- Consolidated `withTimeout`, `mergeRelayList`, `relayListLabel` into `src/lock-utils.mjs`.
- Refactored `src/lock-ops.mjs` to import from these new modules, acting as a facade.
- Updated `src/relay-health.mjs` to import `withTimeout` from `src/lock-utils.mjs`.
- Updated tests to import from correct locations.
- Removed duplicate implementations and significantly reduced `src/lock-ops.mjs` size.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Centralized `withTimeout` and `mergeRelayList` in `src/utils.mjs`.
- Updated `src/lock-utils.mjs` to re-export them.
- Removed local redefinitions in `src/lock-ops.mjs` and `src/lock-publisher.mjs`.
- Fixed `test/utils.test.mjs` imports.
- Verified all tests pass.
This resolves the N/A documentation task by ensuring the codebase is in a valid state.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Removed duplicate `relayListLabel` import in `src/lock-ops.mjs`.
- Removed duplicate `mergeRelayList` declaration in `src/lock-publisher.mjs`.
- Moved `withTimeout` implementation to `src/lock-utils.mjs` and ensured it is exported.
- Updated `test/utils.test.mjs` and `test/utils-async.test.mjs` to import from `src/lock-utils.mjs` where appropriate.
- Added `randomInt` import in `src/lock-publisher.mjs` to fix `no-undef`.
- Verified with `npm run lint` and `npm test`.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Fix lint error in `test/verify-example-config-security.test.mjs` (unused var).
- Fix duplicate definitions of `mergeRelayList` and `relayListLabel` in `src/lock-ops.mjs` and `src/lock-publisher.mjs`.
- Fix missing export of `withTimeout` in `src/lock-utils.mjs`.
- Fix broken imports in `test/utils.test.mjs` and `test/utils-async.test.mjs`.
- Centralize `secureRandom` in `src/lock-utils.mjs`.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Add regression test `test/governance-security.test.mjs` to verify `applyProposal` is secure against command injection.
- Fix broken imports and duplicates in `src/lock-utils.mjs`, `src/lock-ops.mjs`, `src/lock-publisher.mjs`, and `src/relay-health.mjs` to resolve test failures.
- Verify all tests pass.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Moved `withTimeout` and `mergeRelayList` to `src/lock-utils.mjs` as the single source of truth.
- Updated `src/lock-ops.mjs` and `src/lock-publisher.mjs` to import from `src/lock-utils.mjs`.
- Fixed lint errors for duplicate declarations.
- Updated tests (`test/utils.test.mjs`, `test/utils-async.test.mjs`) to import from correct modules.
- Added `randomInt` import in `src/lock-publisher.mjs` to fix `no-undef`.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Moved `withTimeout` to `src/utils.mjs` and exported it.
- Updated `src/lock-utils.mjs` to re-export `withTimeout` and `mergeRelayList` from `src/utils.mjs`.
- Removed duplicate local definitions of `withTimeout` and `mergeRelayList` in `src/lock-ops.mjs` and `src/lock-publisher.mjs`.
- Fixed `test/utils.test.mjs` to import `mergeRelayList`.
- Verified all tests pass with `npm test`.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Validate `hashOrStrategy` to ensure it does not start with `-`.
- This prevents argument injection when falling back to `git checkout` via `execFileSync`.
- Although `execFileSync` prevents shell command injection, argument injection was still possible (e.g., `--help`).
- Verified with reproduction script.
Co-authored-by: PR0M3TH3AN <[email protected]>
Removes the hardcoded `auth: "admin:password"` from `torch-config.example.json` to prevent users from accidentally deploying with insecure defaults.
Adds a regression test `test/verify-example-config-security.test.mjs` to ensure the example config does not contain default credentials in the future.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Moved `withTimeout` implementation to `src/lock-utils.mjs` and exported it correctly.
- Removed duplicate local definitions of `withTimeout`, `mergeRelayList`, and `secureRandom` in `src/lock-ops.mjs` and `src/lock-publisher.mjs`.
- Fixed imports in `src/lock-ops.mjs`, `src/lock-publisher.mjs`, and `src/relay-health.mjs` to use `src/lock-utils.mjs` consistently.
- Updated `test/utils.test.mjs` and `test/utils-async.test.mjs` to fix broken imports and test definitions.
- Verified `npm run lock:complete` and `npm run scheduler:daily` execute correctly.
- Updated `src/todo/TODO_2026-02-20T03-00-00Z.md` to mark verification task as completed.
Co-authored-by: PR0M3TH3AN <[email protected]>