35 Commits
Author SHA1 Message Date
thePR0M3TH3AN a46832314f Merge pull request #518 from PR0M3TH3AN/daily-agent-docs-investigator-14461936535840913913
docs: add JSDoc and flow documentation for dashboard/app.js
2026-03-03 07:23:55 -05:00
google-labs-jules[bot]andPR0M3TH3AN 1c876a7e8a chore(ai): document dashboard/app.js flows via daily scheduler agent
- Successfully completed docs-code-investigator agent run as scheduler.
- Identified dashboard/app.js (835 LOC) and applied JSDoc tags to public methods.
- Wrote module overview flow at docs/dashboard-app-overview.md.
- Created required context, todo, decision, and test artifacts.
- Ingested memory metrics.
- Validated tests and frontend build.
- Completed task publish.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-03-03 03:10:17 +00:00
google-labs-jules[bot]andPR0M3TH3AN 624f322383 [security] replace innerHTML usages in dashboard/app.js — convert to safe DOM APIs
- Replaced innerHTML assignment in dashboard/app.js with DOMParser.
- Updated baseline count in scripts/check-innerhtml.mjs.
- Generated context, todo, decisions, and test logs for innerhtml-migration-agent.
- Executed full scheduler daily flow and published lock/completion.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-03-02 20:17:40 +00:00
google-labs-jules[bot]andPR0M3TH3AN f98827c350 [security] replace innerHTML usages with DOMPurify and textContent
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-28 03:47:35 +00:00
google-labs-jules[bot]andPR0M3TH3AN fb58408b84 perf: debounce dashboard render on websocket events
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-24 01:18:28 +00:00
thePR0M3TH3AN 9bb95896e7 Merge pull request #361 from PR0M3TH3AN/opencode-active-4489682856002365014
Enable OpenCode agent and add agent website links
2026-02-19 23:19:18 -05:00
google-labs-jules[bot]andPR0M3TH3AN 6106fd3dea Enable OpenCode agent and add agent website links
- Activated OpenCode agent card in landing page.
- Added OpenCode to dashboard platform colors (using teal).
- Added 'Learn more' links to all agent cards in landing page.
- Updated OpenCode installation prompt in landing page script.
- Added teal color utilities to dashboard/styles.css.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-20 04:18:42 +00:00
google-labs-jules[bot]andPR0M3TH3AN babdd4af5d Add Home button to dashboard linking to landing page
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-20 04:04:28 +00: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 fa5ef77ed8 chore(ui): design system audit autofixes (agent) 2026-02-19 21:05:49 -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
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 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
google-labs-jules[bot]andPR0M3TH3AN 268248b4eb feat: add hosted dashboard configuration and distribution plan
Added a settings modal to the dashboard (index.html) to allow configuration of hashtag, namespace, and relays via URL query parameters and localStorage. This enables the dashboard to be hosted as a static site and used by any project.

Also added `docs/architecture/distribution-plan.md` outlining the strategy for NPM, Binary, and Hosted Dashboard distribution.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-17 03:26:33 +00:00
google-labs-jules[bot]andPR0M3TH3AN 19af4dcba5 perf: visibility-gate dashboard render loop
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-16 23:09:11 +00:00
google-labs-jules[bot]andPR0M3TH3AN 754a1c2ce1 feat: support platform and model info in nostr lock events
This change enables agents to report their execution platform (e.g., Jules, Codex, Goose) and model (e.g., DeepSeek 3.2) in the Nostr lock events.

Key changes:
- Updated `torch-lock` CLI to accept `--platform` and `--model` arguments.
- Implemented `detectPlatform` utility to infer platform from environment variables if not provided.
- Updated `src/lib.mjs` to include these fields in the event content.
- Updated `scripts/agent/run-scheduler-cycle.mjs` to propagate `--model` and `AGENT_MODEL`.
- Updated `dashboard/index.html` to display the model information on the lock card.
- Fixed a regression in `scripts/validate-scheduler-flow-parity.mjs` and `test/scheduler-ratchet.test.mjs` caused by argument string matching.
- Deleted `repro_test.mjs` temporary file.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-15 20:18:59 +00:00
google-labs-jules[bot]andPR0M3TH3AN cbc5054b94 feat: make lock event hashtag configurable via config and env var
- Added `getHashtag` function to `src/torch-config.mjs` to resolve hashtag from `NOSTR_LOCK_HASHTAG` env var, `dashboard.hashtag` config, or default to `${namespace}-agent-lock`.
- Updated `src/lib.mjs` to use `getHashtag()` in `cmdLock` and `cmdComplete` for publishing events.
- Updated `dashboard/index.html` to remove hardcoded `#torch-agent-lock` string and rely on dynamic configuration.
- Updated `src/docs/TORCH.md` and `README.md` to document the new configuration options.
- Verified changes with unit tests and frontend verification script.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-15 18:54:46 +00:00
google-labs-jules[bot]andPR0M3TH3AN 01b26c155f Fix dashboard pagination styling and layout by adding missing CSS classes and styles
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-15 17:54:06 +00:00
thePR0M3TH3AN 4c59c942f1 Merge branch 'main' into feature/dashboard-modal-docs-2259273807106788000 2026-02-15 12:12:54 -05:00
google-labs-jules[bot]andPR0M3TH3AN 89049c9690 feat(dashboard): add documentation modal and refactor styles
- Refactor modal CSS from `landing/index.html` to `dashboard/styles.css` for reuse.
- Add "Readme Modal" functionality to `dashboard/index.html`.
- Move "How this works" footer content from dashboard to `src/docs/TORCH.md`.
- Update dashboard "TORCH" link to trigger the modal.
- Verify changes with Playwright script.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-15 17:05:10 +00:00
google-labs-jules[bot]andPR0M3TH3AN 41f3775ea9 feat: add pagination to dashboard and fix mjs mime type
- Implemented client-side pagination in `dashboard/index.html` (20 items per page).
- Added pagination controls and CSS utilities in `dashboard/styles.css`.
- Fixed `src/dashboard.mjs` to serve `.mjs` files with `text/javascript` MIME type.
- Verified `npx torch-lock init` functionality (no changes needed to landing page).

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-15 16:55:58 +00:00
google-labs-jules[bot]andPR0M3TH3AN b92f0efd38 feat(security): migrate dashboard innerHTML to safe DOM APIs
- Replace innerHTML with document.createElement and replaceChildren in dashboard/index.html
- Add dashboard/domUtils.js for safe HTML escaping and element creation
- Add context, decisions, and test logs
- Update daily task logs

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-14 23:05:24 +00:00
thePR0M3TH3AN 7d67df97f7 Update docs to use torch-lock entrypoint 2026-02-14 16:20:11 -05:00
google-labs-jules[bot]andPR0M3TH3AN c068565890 daily: design-system-audit-agent run
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-14 19:10:18 +00:00
google-labs-jules[bot]andPR0M3TH3AN 02e96d49be Refactor magic number 30078 to KIND_APP_DATA constant
- Added KIND_APP_DATA to src/constants.mjs
- Updated src/lib.mjs, src/lock-ops.mjs, and dashboard/index.html to use the constant
- Added missing src files to package.json files list
- Updated build.mjs to copy src/constants.mjs to dist/src/

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-14 14:16:44 +00:00
thePR0M3TH3AN 8ec8a1f7f9 Merge pull request #41 from PR0M3TH3AN/new-logo-favicon-9440139992277662259
Add new flamey logo and favicon
2026-02-14 01:14:45 -05:00
google-labs-jules[bot]andPR0M3TH3AN f8331a3083 feat: add new flamey logo and favicon
- Created `assets/logo.svg` with a new gradient flame design.
- Created `assets/favicon.svg` based on the logo.
- Updated `build.mjs` to copy `assets/` to `dist/` and adjust paths in `landing/index.html`.
- Updated `landing/index.html` to use the new logo and favicon.
- Updated `dashboard/index.html` to include the new logo and favicon.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-14 06:13:16 +00:00
google-labs-jules[bot]andPR0M3TH3AN adaeac5273 feat: add completed task filter and styling to dashboard
- Adds a "Completed only" option to the dashboard status filter.
- Updates filtering logic to distinguish between "Active" (running) and "Completed" (finished) tasks.
- Adds new utility classes `.bg-success/5` and `.border-success` to `styles.css`.
- Applies green tint and success border to completed task cards.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-14 06:07:11 +00:00
thePR0M3TH3AN 0124d5bf71 Merge pull request #31 from PR0M3TH3AN/fix-dashboard-platform-labels-13309693923244272174
Fix dashboard platform labels showing as Unknown
2026-02-14 00:32:26 -05:00
google-labs-jules[bot]andPR0M3TH3AN e03cb64f80 fix(dashboard): normalize platform names for lock cards
- Update `platformStyle` in `dashboard/index.html` to be case-insensitive and handle aliases (e.g., 'Claude' -> 'claude-code').
- Update summary statistics to use the normalized label for consistency.
- Ensure platforms like "Jules", "Codex", and "Claude" are displayed correctly instead of "Unknown".

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-14 05:29:10 +00:00
google-labs-jules[bot]andPR0M3TH3AN aeec529350 fix(dashboard): resolve refresh filter reset and relay counter leak
Separate filter initialization from connection logic to prevent resetting user preferences on refresh.
Add socket cleanup and manual close handling to prevent duplicate connections and incorrect relay counts.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-14 05:28:29 +00:00
thePR0M3TH3AN 579655d1e4 feat: add per-project torch-config for lock and scheduler defaults 2026-02-13 22:05:20 -05:00
thePR0M3TH3AN 9e4cf8b76b Add dashboard utility stylesheet and wire it in head 2026-02-13 21:25:14 -05:00
thePR0M3TH3AN 1c0a10dcab Update dashboard lock dedupe to prefer latest dTag event 2026-02-13 20:47:37 -05:00
thePR0M3TH3AN 67c8a17a03 updated with files 2026-02-13 20:35:03 -05:00