Commit Graph
333 Commits
Author SHA1 Message Date
thePR0M3TH3AN a4ffa537f6 Merge pull request #354 from PR0M3TH3AN/add-exiterror-tests-11501687712657376665
🧪 [testing improvement] Add tests for ExitError class and improve its implementation
2026-02-19 22:50:17 -05:00
google-labs-jules[bot]andPR0M3TH3AN 8d4ae0d616 feat(testing): add unit tests for ExitError and improve class definition
- Added `test/errors.test.mjs` with comprehensive tests for the `ExitError` class.
- Updated `src/errors.mjs` to set `this.name = 'ExitError'` in the constructor for better error reporting.
- Verified that all new tests pass and no regressions were introduced to the existing test suite.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-20 03:49:34 +00:00
google-labs-jules[bot]andPR0M3TH3AN 1e4d9720e8 fix(security): prevent command injection in governance service
Replaced `execSync` with `execFileSync` in `src/services/governance/index.js` to avoid shell interpretation of variable-derived inputs (such as agent IDs and file targets). This mitigates command injection risks in `createProposal`, `applyProposal`, and `rollbackPrompt`.

- Used `execFileSync` for all git operations.
- Updated logic to correctly handle `git diff` exit code 1.
- Removed unused `execSync` import.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-20 03:46:36 +00:00
thePR0M3TH3AN 5783f995d7 update 2026-02-19 22:22:45 -05:00
thePR0M3TH3AN 1a534fc746 Merge pull request #351 from PR0M3TH3AN/add-qwen-coder-landing-4500751862979356017
Add Qwen Coder to landing page and platform detection
2026-02-19 22:13:20 -05:00
google-labs-jules[bot]andPR0M3TH3AN a61079b505 Add Qwen Coder to landing page and platform detection
- Added Qwen Coder CLI to `landing/index.html` agent selector.
- Updated `src/utils.mjs` to detect `QWEN_API_KEY` or `QWEN_SESSION_ID` as 'qwen' platform.
- Updated `dashboard/app.js` to render Qwen tasks with appropriate badge styling.
- Added tests for Qwen platform detection in `test/utils.test.mjs`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-20 02:42:08 +00:00
thePR0M3TH3AN 38100ea9ae Merge pull request #350 from PR0M3TH3AN/claude/prompt-versioning-backup-tYH8t
Add prompt versioning, governance workflow, and state backup
2026-02-19 21:38:14 -05:00
google-labs-jules[bot]andPR0M3TH3AN 0b9dfa60ce docs: align README and TORCH.md with package.json scripts
- Added `npm run scheduler:daily` to docs
- Added `npm run scheduler:weekly` to docs
- Added `npm run lock:complete` to docs
- Generated task log and artifacts for docs-alignment-agent run

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-20 02:35:34 +00:00
Claude be5ec21d5c feat(governance): add prompt versioning, rollback --list, and state backup
- governance/index.js: archive filenames now include ISO timestamp for
  deterministic sorting (<base>_<ts>_<hash>.md); write .meta.json sidecar
  on every archive with proposalId, author, reason, and archivedAt
- governance/index.js: add listPromptVersions(target) — returns archived
  versions for a prompt sorted newest-first with sidecar metadata surfaced
- cmd-rollback.mjs: add --list flag to list available versions without
  restoring (delegates to listPromptVersions)
- cli-parser.mjs: add --list and --output flags
- lib.mjs: pass list flag to cmdRollback; add backup command dispatch
- cmd-backup.mjs: new torch-lock backup command — snapshots
  .scheduler-memory/memory-store.json and scheduler run state to
  .torch/backups/<timestamp>/; supports --output override and --list
- docs/prompt-versioning.md: comprehensive guide to the full
  proposal → apply → list-versions → rollback workflow, state backup
  and restore procedure, and storage location reference
- test/governance.test.mjs: 7 scenario-based tests (SCN-proposal-create,
  SCN-proposal-list, SCN-proposal-reject, SCN-archive-naming,
  SCN-version-list, SCN-rollback-latest, SCN-rollback-hash)

https://claude.ai/code/session_01Ndq2D72Kp77BYo4owD63uY
2026-02-20 02:27:57 +00:00
thePR0M3TH3AN 91ed0c765f Merge pull request #347 from PR0M3TH3AN/agents/daily/docs-agent-3116770565114843973
docs(scheduler): run docs-agent cycle
2026-02-19 21:15:45 -05:00
google-labs-jules[bot]andPR0M3TH3AN 925ead1523 docs(scheduler): run docs-agent cycle
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-20 02:15:11 +00:00
thePR0M3TH3AN 158026bdb4 Merge pull request #346 from PR0M3TH3AN/claude/add-torch-removal-command-keFx5
Add cmdRemove command to completely uninstall TORCH from projects
2026-02-19 21:09:54 -05:00
thePR0M3TH3AN 0cfb40a410 Merge branch 'main' of https://github.com/PR0M3TH3AN/TORCH 2026-02-19 21:09:43 -05:00
thePR0M3TH3AN cab73c3344 update 2026-02-19 21:09:10 -05:00
thePR0M3TH3AN fa5ef77ed8 chore(ui): design system audit autofixes (agent) 2026-02-19 21:05:49 -05:00
Claude 7984c7de66 feat: add torch-lock remove command for complete TORCH uninstallation
Users who installed TORCH via `npm install <tarball> && npx torch-lock init`
had no built-in way to cleanly remove it. This adds a `remove` command that
detects and removes all TORCH artifacts: the torch/ directory, config files,
runtime directories (.torch/, .scheduler-memory/, task-logs/), governance
proposals, host package.json scripts, and the npm package itself.

- Add cmdRemove() in src/ops.mjs with detection, preview, confirmation, and cleanup
- Wire up `remove` command in CLI dispatcher (src/lib.mjs)
- Add TORCH_HOST_SCRIPTS constant in constants.mjs for shared script key list
- Add docs/removal.md with full manual removal instructions
- Add removal section to README.md
- Add 7 scenario tests in test/ops-remove.test.mjs

https://claude.ai/code/session_011Snrxu3iZGLtJ9pnFSajpM
2026-02-20 01:59:30 +00:00
thePR0M3TH3AN e7b8049f8b Merge pull request #345 from PR0M3TH3AN/agents/daily/deps-security-agent-2026-02-20-693252216422401941
Daily Scheduler Run: deps-security-agent
2026-02-19 20:54:32 -05:00
thePR0M3TH3AN 2df8b85682 Merge branch 'main' into agents/daily/decompose-agent-refactor-14956609596778737678 2026-02-19 20:54:11 -05:00
google-labs-jules[bot]andPR0M3TH3AN 2cba102998 Run deps-security-agent (daily cadence)
- Audited dependencies (npm audit, npm outdated)
- Generated security report
- Created scheduler run artifacts
- Created completion log

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-20 01:19:41 +00:00
google-labs-jules[bot]andPR0M3TH3AN b8598d1d92 feat: Decompose src/lock-ops.mjs into relay-health-manager.mjs and lock-publisher.mjs
- Extracted `RelayHealthManager` to `src/relay-health-manager.mjs`
- Extracted `LockPublisher` to `src/lock-publisher.mjs`
- Refactored `src/lock-ops.mjs` to import new modules
- Reduced `src/lock-ops.mjs` size significantly (> 500 lines)
- Preserved API compatibility (re-exported `defaultHealthManager`)
- Verified with lint and tests
- Updated `scripts/check-file-size.mjs` report (implicit)

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-20 00:36:49 +00:00
google-labs-jules[bot]andPR0M3TH3AN 8653521593 [decompose] extract RelayHealthManager and LockPublisher from src/lock-ops.mjs
- Extracted `RelayHealthManager` to `src/relay-health-manager.mjs`
- Extracted `LockPublisher` to `src/lock-publisher.mjs`
- Moved shared utilities to `src/lock-utils.mjs`
- Updated `src/lock-ops.mjs` to import dependencies and re-export public API
- Reduced `src/lock-ops.mjs` from 880 to 152 lines
- Verified with tests (295 passed) and linting

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-19 23:41:10 +00:00
google-labs-jules[bot]andPR0M3TH3AN 916a91b470 chore: run content-audit-agent
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-19 22:35:48 +00:00
thePR0M3TH3AN e74c33a78d Merge pull request #326 from PR0M3TH3AN/agents/daily/torch-garbage-collection-agent-2026-02-19-15853237273456100337
Run torch-garbage-collection-agent daily cycle
2026-02-19 17:19:25 -05:00
thePR0M3TH3AN 6bce64be3b Merge pull request #339 from PR0M3TH3AN/feature/init-dashboard-file-config-hashtag-4189892407545080483
Generate TORCH_DASHBOARD.md and expose hashtag in config during init
2026-02-19 16:45:39 -05:00
google-labs-jules[bot]andPR0M3TH3AN 016f3e34e2 feat: generate dashboard file and config hashtag during init
This change updates the `torch init` command to:
1.  Prompt the user for a Nostr hashtag (defaulting to `${namespace}-agent-lock`).
2.  Explicitly save the `hashtag` to `torch-config.json` under `dashboard.hashtag` for easier editing.
3.  Generate a `TORCH_DASHBOARD.md` file in the installation directory containing a link to the TORCH dashboard with the correct `hashtag`, `namespace`, and `relays` pre-filled.

This improves the onboarding experience by making it easier to find and monitor the agent locks immediately after initialization.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-19 21:45:19 +00:00
thePR0M3TH3AN f1d4e0534c Merge pull request #338 from PR0M3TH3AN/jules-detect-active-agent-platforms-2907459520034809113
Add dashboard support for Goose, Gemini, and Antigravity platforms
2026-02-19 16:40:27 -05:00
google-labs-jules[bot]andPR0M3TH3AN abb4cc4361 feat(dashboard): add support for Goose, Gemini, and Antigravity platforms
- Update `src/utils.mjs` to detect `gemini` and `antigravity` platforms via environment variables.
- Update `dashboard/styles.css` with new color utilities for purple and pink themes.
- Update `dashboard/app.js` to map Goose, Gemini, and Antigravity platforms to distinct badge colors.
- Update `test/utils.test.mjs` to include unit tests for the new platform detection logic.

This ensures all active agent platforms are correctly identified and labeled in the TORCH dashboard.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-19 21:39:32 +00:00
google-labs-jules[bot]andPR0M3TH3AN 2174e8bc4d [constants] Refactor 1000 to MS_PER_SECOND
- Extracted MS_PER_SECOND to src/constants.mjs
- Replaced literal 1000 in src/relay-health.mjs, src/utils.mjs, src/lib.mjs, src/lock-ops.mjs
- Updated test/scheduler-lock-failure-schema.contract.test.mjs to copy constants.mjs
- Added task log and artifacts

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-19 21:34:50 +00:00
thePR0M3TH3AN 510e05ab54 update 2026-02-19 16:10:00 -05:00
Claude 639ad6877d chore: code quality, CI/CD, and DX improvements
Phase 3 — Code Quality:
- Deduplicate nowUnix() in lock-ops.mjs (import from utils.mjs)
- Promote ESLint no-unused-vars to error, fix all 46 violations
- Remove dead code: unused imports, variables, and catch bindings
- Add /* global marked */ for CDN-loaded library in dashboard

Phase 4 — CI/CD:
- Add Node.js version matrix (22, 23) to CI workflow
- Add npm audit security scan step to CI
- Add innerHTML usage check to CI pipeline
- Enable Dependabot for npm and GitHub Actions dependencies
- Create PR template

Phase 5 — Developer Experience:
- Create .env.example documenting all environment variables
- Expand CONTRIBUTING.md with commit conventions, agent/prompt
  creation guide, architecture overview, and test integrity
- Add system architecture diagram with Mermaid (docs/architecture/)

https://claude.ai/code/session_01GfwUNbgeMgXreFDbsNQMsS
2026-02-19 21:03:30 +00:00
Claude e842ec069a Merge remote-tracking branch 'origin/main' into claude/review-project-improvements-nTZRz 2026-02-19 20:55:32 +00:00
Claude e7ecd2617e fix(security): harden dashboard auth timing, XSS, and CSP
- Fix timingSafeCompare to pad buffers to equal length before comparing,
  closing the content timing side-channel on length mismatch
- Replace innerHTML with textContent for error messages to prevent XSS
- Extract inline script from dashboard/index.html into dashboard/app.js
- Remove 'unsafe-inline' from script-src CSP directive
- Update security test to match new CSP policy

https://claude.ai/code/session_01GfwUNbgeMgXreFDbsNQMsS
2026-02-19 20:53:15 +00:00
thePR0M3TH3AN 8b6cf31f7d update 2026-02-19 15:39:09 -05:00
thePR0M3TH3AN ce5242fbf2 update 2026-02-19 15:22:10 -05:00
google-labs-jules[bot]andPR0M3TH3AN d1e69ba48c chore(scheduler): run torch-garbage-collection-agent daily cycle
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-19 19:18:16 +00:00
thePR0M3TH3AN e64cdf9012 Merge pull request #324 from PR0M3TH3AN/agents/daily/todo-triage-agent-run-5169383257514229850
Execute Daily Scheduler: todo-triage-agent
2026-02-19 14:08:26 -05:00
google-labs-jules[bot]andPR0M3TH3AN fdfd0b9348 feat(scheduler): execute daily todo-triage-agent run
- Install dependencies via `npm ci`
- Run preflight lock check
- Select `todo-triage-agent` (skipping locked agents)
- Execute `todo-triage-agent` prompt:
  - Scan codebase for TODOs (none found)
  - Generate required artifacts in `src/context`, `src/todo`, `src/decisions`, `src/test_logs`
- Verify run artifacts
- Publish lock completion
- Create final task log

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-19 18:15:59 +00:00
google-labs-jules[bot]andPR0M3TH3AN c6b73959fc chore(scheduler): Execute daily test-audit-agent
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-19 17:00:24 +00:00
google-labs-jules[bot]andPR0M3TH3AN 58000b69ad Run protocol-research-agent (Daily)
- Executed protocol-research-agent prompt
- Verified PROTOCOL_INVENTORY.md
- Created src/context/CONTEXT_2026-02-19.md
- Created reports/protocol/protocol-report-2026-02-19.md
- Created task-logs/daily/2026-02-19T00-42-38Z__protocol-research-agent__completed.md

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-19 00:45:34 +00:00
thePR0M3TH3AN f795bd5ae6 Merge pull request #315 from PR0M3TH3AN/agents/daily/onboarding-audit-agent-11360221078717616389
chore(scheduler): Execute onboarding-audit-agent
2026-02-18 19:13:03 -05:00
thePR0M3TH3AN d6ae271af2 Merge pull request #314 from PR0M3TH3AN/agents/daily/log-fixer-agent-run-2026-02-18-18400288346421849588
Daily Run: log-fixer-agent
2026-02-18 19:12:27 -05:00
google-labs-jules[bot]andPR0M3TH3AN d6a1e22f56 chore(scheduler): Execute onboarding-audit-agent
- Executed onboarding-audit-agent daily task.
- Validated onboarding from a clean checkout (npm install, build, test, lint).
- Updated package-lock.json with missing metadata (license, engines).
- Created audit report in reports/audit/.
- Created required context/todo/decision artifacts in src/.
- Completed scheduler lock cycle.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-18 23:23:51 +00:00
google-labs-jules[bot]andPR0M3TH3AN ac87628317 chore(scheduler): execute daily log-fixer-agent run
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-18 22:31:57 +00:00
google-labs-jules[bot]andPR0M3TH3AN ae2e382bfd Fix: Correctly detect agent platform for locks
- Updated `src/utils.mjs` to detect 'claude' platform via `CLAUDE_API_KEY`, `ANTHROPIC_API_KEY`, or `CLAUDE_SESSION_ID`.
- Updated `scripts/agent/scheduler-utils.mjs` `getSafeEnv` to preserve `JULES_`, `CODEX_`, `CLAUDE_`, `ANTHROPIC_`, and `GOOSE_` environment variables when spawning child processes.
- Updated `scripts/agent/run-scheduler-cycle.mjs` to use `detectPlatform()` as a fallback for `AGENT_PLATFORM` instead of hardcoding `'codex'`, ensuring the correct platform is used for lock creation.
- Added unit tests for `detectPlatform` in `test/utils.test.mjs`.

This resolves the issue where lock cards displayed "Unknown" or incorrect platforms.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-18 21:42:56 +00:00
google-labs-jules[bot]andPR0M3TH3AN dd9e5b7921 feat: add standard CI workflow and fix lint/test failures
- Added `.github/workflows/ci.yml` to run build, lint, and test on PRs/push to main.
- Updated `.github/workflows/ci-resilience-nightly.yml` to use Node.js 22.
- Fixed lint errors in `src/services/governance/index.js` (no-empty, preserve-caught-error).
- Added `governance-agent` to daily roster and scheduler prompt to fix `npm test` scheduler validation failure.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-18 21:24:43 +00:00
google-labs-jules[bot]andPR0M3TH3AN 64b6f43df1 feat: add governance system for prompt evolution
Implement a comprehensive governance system to manage agent prompt changes safely.

Key features:
- **Proposal Workflow:** Prompt changes are now "proposals" stored in `src/proposals/` with metadata and diffs.
- **Governance Agent:** A new `governance-agent` reviews and applies proposals using `scripts/governance/process-proposals.mjs`.
- **Validation:** Strict validation ensures changes are limited to allowed directories (`src/prompts/daily|weekly`) and preserve required headers.
- **Lock Enhancements:** Lock events now include `promptHash`, `promptPath`, and `gitCommit` for full auditability.
- **Rollback:** New `torch-lock rollback` command restores prompts from local history (`.torch/prompt-history/`) or git.
- **CLI:** Added `proposal` (create, list, show, apply, reject) and `rollback` commands.

This establishes a "Stage -> Evaluate -> Apply" gate for prompt evolution, preventing silent drift and ensuring constitutional stability.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-18 21:09:39 +00:00
google-labs-jules[bot]andPR0M3TH3AN 12625bc41b Cleanup repo structure and consolidate tests
- Consolidated `tests/` into `test/`
- Moved `test-audit/` scripts to `scripts/test-audit/`
- Updated audit scripts to support configurable output directory
- Removed root clutter (`test_output.txt`)
- Updated documentation and agent prompts

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-18 20:49:19 +00:00
thePR0M3TH3AN 24d614d2de Merge pull request #305 from PR0M3TH3AN/agents/daily/known-issues-agent-2026-02-18-13101749504477936442
Run known-issues-agent: Fix content-audit path and update known issues
2026-02-18 15:07:57 -05:00
google-labs-jules[bot]andPR0M3TH3AN 6614535361 perf: optimize rankRelays for subset queries
- Optimized `RelayHealthManager.rankRelays` to use O(M log M) lookup for small subsets instead of O(N) filter.
- Added `byRelay` Map to `_sortedCache` for O(1) access.
- Fixed `NaN` bug in `buildRelayHealthConfig` when `minActiveRelayPool` is undefined.
- Updated `perf/benchmark-lock-ops.mjs` to measure subset performance.
- Added performance report `reports/performance/weekly-perf-report-2026-02-18.md`.
- Achieved ~6.8x speedup in benchmark.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-18 19:54:47 +00:00
google-labs-jules[bot]andPR0M3TH3AN 3cf6f2e3b2 feat(known-issues-agent): resolve content-audit-agent target directory and update triage report
- Fixed `content-audit-agent` target directory by updating `src/prompts/daily/content-audit-agent.md` to reference `docs/` instead of `/content`.
- Verified `npm test` prompt contract violations are resolved.
- Updated `KNOWN_ISSUES.md` with resolved status and verification dates.
- Generated `reports/known-issues/known-issues-report-2026-02-18.md` with triage summary.
- Ensured memory retrieval and storage workflows were executed.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-18 19:52:48 +00:00