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]>
- 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]>
- 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]>
- 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]>
- 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]>
- 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]>
- 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]>
- 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]>
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]>