Commit Graph
79 Commits
Author SHA1 Message Date
Claude 86f322550a feat(agents): add Nostr-based distributed task locking via NIP-78
Replace GitHub draft PR as the primary locking mechanism with Nostr
relay-based locks. Each agent generates an ephemeral keypair, publishes
a NIP-78 (Kind 30078) lock event with NIP-40 auto-expiration, and
discards the key. No tokens, no secrets, no git push required.

New script: scripts/agent/nostr-lock.mjs
  - check: query relays for active locks, return JSON exclusion set
  - lock: claim a task with built-in race detection (exit 3 = lost)
  - list: human-readable table of all active locks

The locking fallback chain is now:
  1. Nostr lock (no credentials needed, works in any sandbox)
  2. git push + draft PR (traditional method)
  3. GitHub API via curl (needs GITHUB_TOKEN)

Updated scheduler-flow.md, META_PROMPTS.md, and AGENTS.md to document
all three methods with Nostr as the preferred primary.

https://claude.ai/code/session_01BpDsVSAkVWtJLnfKxsB9ib
2026-02-13 20:53:14 +00:00
Claude 9e5797c5e0 fix(agents): add GitHub API fallback for task locking in restricted environments
Jules agents cannot git push due to sandbox restrictions, which breaks the
draft PR-based distributed lock mechanism. Multiple agents can pick up the
same task because the claim is never visible remotely.

This adds scripts/agent/claim-task-api.sh which creates the remote branch,
started.md log file, and draft PR entirely via curl and the GitHub REST API,
bypassing git push. The scheduler-flow.md, META_PROMPTS.md, and AGENTS.md
are updated to document the fallback: try git push first, fall back to the
API script if push is blocked, fail-closed if neither method works.

https://claude.ai/code/session_01BpDsVSAkVWtJLnfKxsB9ib
2026-02-13 20:29:38 +00:00
thePR0M3TH3AN 510efeafaf Merge pull request #2471 from PR0M3TH3AN/agents/daily/nip-research-agent/run-2026-02-13-1771011102-831630895441757401
chore(agents): run nip-research-agent daily task
2026-02-13 14:52:34 -05:00
google-labs-jules[bot]andPR0M3TH3AN 7a37c67256 chore(agents): run nip-research-agent daily task
- Added verification tests for NIP-04/44 encryption worker logic (tests/nostr-specs/nip04-nip44.test.mjs).
- Added verification tests for Kind 30078 video note schema (tests/nostr-specs/kind30078.test.mjs).
- Fetched canonical specs for P0 NIPs into artifacts/nips/.
- Updated NIP_INVENTORY.md with verified statuses.
- Generated nip-report-2026-02-13.md.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 19:45:33 +00:00
thePR0M3TH3AN 60ceb71d7b docs(scheduler): add scheduler override and rule scope 2026-02-13 14:43:50 -05:00
thePR0M3TH3AN 5740fefbb2 docs(agents): normalize scheduler prompts to MUST workflow 2026-02-13 14:36:29 -05:00
thePR0M3TH3AN 9acbd6e893 docs(scheduler): simplify preflight to PR list check 2026-02-13 14:26:50 -05:00
thePR0M3TH3AN 56d7b8488b docs(agents): centralize scheduler flow steps 2026-02-13 14:18:17 -05:00
thePR0M3TH3AN 8cee2c0f31 Merge pull request #2466 from PR0M3TH3AN/agents-daily-load-test-agent-run-2026-02-13-4087534891538251428
chore(agents): run load-test-agent daily task — implemented harness and report
2026-02-13 14:11:39 -05:00
google-labs-jules[bot]andPR0M3TH3AN 4f206ccb12 chore(agents): run load-test-agent daily task — implemented harness and report
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 19:11:14 +00:00
google-labs-jules[bot]andPR0M3TH3AN 8ee5918462 fix(scheduler): relax hard stop on Draft PR creation failure
The daily and weekly scheduler prompts included a "hard stop" rule that aborted execution if Draft PR creation failed. In restricted environments (like the agent sandbox), `GH_TOKEN` is unavailable, preventing API write access even if git operations work.

This change modifies `docs/agents/prompts/daily-scheduler.md` and `docs/agents/prompts/weekly-scheduler.md` to implement a "soft fail" policy:
- If PR creation fails (e.g., missing credentials), the agent logs the failure in the `_started.md` file summary and proceeds.
- The pushed branch and `_started.md` log file serve as the primary distributed lock.
- Updates the checklist template to accept "FAILED/SKIPPED" for the PR number.

This ensures the scheduler can operate in constrained environments without sacrificing the core distributed locking mechanism.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 18:30:23 +00:00
thePR0M3TH3AN 6f345d0c49 Merge pull request #2462 from PR0M3TH3AN/agents/daily/known-issues-agent/run-2026-02-13-17-54-42-1495526787577309703
chore(agents): run known-issues-agent daily task — verify and update known issues
2026-02-13 13:18:13 -05:00
google-labs-jules[bot]andPR0M3TH3AN 9d85e647b6 chore(agents): run fuzz-agent weekly task — fuzz nostr schemas
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 18:05:17 +00:00
google-labs-jules[bot]andPR0M3TH3AN 68439fe373 chore(agents): run known-issues-agent daily task — verify and update known issues
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 18:01:35 +00:00
thePR0M3TH3AN 50f0ebbff1 Merge pull request #2460 from PR0M3TH3AN/codex/add-utility-script-for-claim-audit
[ci] add claim-audit utility and make scheduler prompts fail-closed
2026-02-13 12:23:18 -05:00
thePR0M3TH3AN 7f3531ac4c docs(agents): add claim audit utility for scheduler exclusions 2026-02-13 12:22:54 -05:00
thePR0M3TH3AN 2eca209f02 Merge pull request #2455 from PR0M3TH3AN/ai/innerhtml-fix/subscriptions-12650247027422970359
[security] replace innerHTML usages in js/subscriptions.js — convert to safe DOM APIs
2026-02-13 12:19:55 -05:00
thePR0M3TH3AN 7deb730db5 Merge pull request #2456 from PR0M3TH3AN/ai/innerhtml-fix/channelProfile-12302281782298643204
[security] replace innerHTML usages in js/channelProfile.js
2026-02-13 12:19:37 -05:00
thePR0M3TH3AN fb8d196704 docs(agents): unify scheduler claim sequence and checklist 2026-02-13 12:15:57 -05:00
thePR0M3TH3AN f6ec91bc2c docs: tighten scheduler race-check metadata and verdict rules 2026-02-13 12:07:58 -05:00
thePR0M3TH3AN 5756503c30 docs(agents): enforce deterministic PR agent extraction 2026-02-13 12:02:02 -05:00
google-labs-jules[bot]andPR0M3TH3AN fffca30fb6 chore(agents): run innerhtml-migration-agent daily task — migrate js/channelProfile.js
- Replaced 10 instances of `innerHTML` with safe DOM APIs (`createElement`, `replaceChildren`, `textContent`).
- Extracted Zap Panel creation to `createZapPanelContent` helper.
- Extracted Subscribe Button creation logic.
- Updated `scripts/check-innerhtml.mjs` baseline (count reduced by 10).
- Verified via lint, unit tests, and Playwright verification.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 16:58:20 +00:00
google-labs-jules[bot]andPR0M3TH3AN 8536f2f858 [security] replace innerHTML usages in js/subscriptions.js — convert to safe DOM APIs
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 16:51:33 +00:00
thePR0M3TH3AN 6aa9da1383 Merge pull request #2453 from PR0M3TH3AN/claude/add-pr-checking-ZTrrq
Replace gh CLI with curl for GitHub API queries in agent workflows
2026-02-13 11:17:39 -05:00
thePR0M3TH3AN d634bb6bef Merge pull request #2449 from PR0M3TH3AN/chore/weekly/frontend-console-debug-agent-8297778615366828086
chore(agents): run frontend-console-debug-agent weekly task
2026-02-13 11:17:21 -05:00
google-labs-jules[bot]andPR0M3TH3AN d2c6f0a32e chore(ai): document js/ui/components/VideoModal.js
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 15:48:06 +00:00
Claude ce72c4bbad fix(agents): replace gh CLI with curl for PR checking to prevent duplicate work
Agents do not have access to gh CLI, causing them to skip the pre-flight
PR check and collide on duplicate work. This replaces all gh-based PR
checking commands with curl + jq using the GitHub REST API, updates the
task claiming protocol to use branch push + started log file as the
primary lock mechanism, and updates automation scripts to use curl for
PR listing and git fetch for PR checkout.

Files updated:
- AGENTS.md (Section 12 coordination rules)
- CLAUDE.md (coordination rules)
- META_PROMPTS.md (daily + weekly meta prompts)
- daily-scheduler.md (pre-flight gate, task claiming, error handling)
- weekly-scheduler.md (pre-flight gate, task claiming, error handling)
- bitvid-pr-review-agent.md (PR enumeration + checkout)
- bitvid-ci-health-agent.md (CI run gathering)
- bitvid-weekly-synthesis-agent.md (PR metadata gathering)
- bitvid-changelog-agent.md (PR metadata verification)
- scripts/agent/review-open-prs.mjs (PR listing + checkout)
- scripts/automated-pr-review.mjs (--all mode PR listing + checkout)

https://claude.ai/code/session_01L5bzzGpZ6YTiLXcfqaL81G
2026-02-13 15:47:42 +00:00
google-labs-jules[bot]andPR0M3TH3AN 87f7ae7616 chore(agents): run frontend-console-debug-agent weekly task
- Updated scripts/agent/debug_frontend.py to be more robust (timestamps, exit codes).
- Verified no frontend console errors on startup.
- Created task logs (started/completed).

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 13:13:27 +00:00
thePR0M3TH3AN 05d575d187 Merge pull request #2439 from PR0M3TH3AN/docs/align-docs-13610324471753771843
docs: align development docs with codebase behavior
2026-02-13 00:44:10 -05:00
thePR0M3TH3AN ad61d0cb0a Merge pull request #2438 from PR0M3TH3AN/chore/docs-alignment-daily-8450414943487656823
docs: align CLAUDE.md and nostr-event-schemas.md with codebase
2026-02-13 00:43:46 -05:00
google-labs-jules[bot]andPR0M3TH3AN ff6d5f73ca docs: align development docs with codebase behavior
- Added `npm run test:smoke` documentation to README.md and CONTRIBUTING.md
- Added `npm run audit` documentation to README.md and CONTRIBUTING.md
- Ran `npm run audit` to generate REMEDIATION_REPORT.md
- Created daily agent scheduler logs (started/completed)

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 05:38:59 +00:00
thePR0M3TH3AN 3ac3b229ff Merge pull request #2435 from PR0M3TH3AN/weekly/event-schema-agent-2163247166116264603
[weekly] event-schema-agent: validation harness and fixes
2026-02-13 00:37:18 -05:00
google-labs-jules[bot]andPR0M3TH3AN 3b0556414c docs: align CLAUDE.md and nostr-event-schemas.md with codebase
- Update `CLAUDE.md` to include `FEATURE_TRUSTED_HIDE_CONTROLS` and `FEATURE_IMPROVED_COMMENT_FETCHING`.
- Update `docs/nostr-event-schemas.md` to include detailed schemas for NIP-17 and Gift Wrap kinds (1059, 13, 14, 15, 20001, 20002, 10050).
- Add task logs for docs-alignment-agent execution.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 05:35:46 +00:00
thePR0M3TH3AN 78ee152daf Merge pull request #2436 from PR0M3TH3AN/jules-2556574723888655316-ec04037a
chore(agents): run docs-alignment-agent daily task
2026-02-13 00:34:19 -05:00
thePR0M3TH3AN 88e489befd Merge pull request #2434 from PR0M3TH3AN/daily/docs-alignment-agent-16953909253840547005
chore(agents): run docs-alignment-agent daily task — update README/CONTRIBUTING
2026-02-13 00:34:11 -05:00
thePR0M3TH3AN 501fa74840 Merge branch 'unstable' into weekly/event-schema-agent-2163247166116264603 2026-02-13 00:33:08 -05:00
Claude f794971bfc fix(agents): rewrite scheduler prompts to force pre-flight execution
Agents were skipping the pre-flight curl/gh check for in-progress work,
causing duplicate task runs. Root causes:

1. Two-document indirection (meta prompt → scheduler) caused the pre-flight
   instructions to get lost when the agent opened the second file
2. No proof-of-execution gate — agents could assert "no conflicts" without
   actually running the commands
3. curl|jq pipeline silently fails when jq is unavailable
4. "Step 0" labeling felt like skippable preamble

Changes:
- Make the commands the literal first instruction ("run NOW, paste output")
- Use gh CLI as primary (authenticated, no jq needed), curl as fallback
- Require raw terminal output pasted before proceeding (output gate)
- Rename "Step 0" to "PRE-FLIGHT GATE" to signal it's not optional
- Eliminate duplication between meta prompt and scheduler files
- Add explicit "STOP HERE" checkpoint after command execution
- Add skip-ahead clause for agents arriving from meta prompt

https://claude.ai/code/session_01S7jaQb9ctJ4bzqRhEcm28Q
2026-02-13 05:21:25 +00:00
google-labs-jules[bot]andPR0M3TH3AN 4077d6ee5d chore(agents): run docs-alignment-agent daily task — update CLAUDE.md scripts
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 05:20:34 +00:00
google-labs-jules[bot]andPR0M3TH3AN 9c65a78249 chore(agents): run event-schema-agent weekly task
- Implement `scripts/agent/validate-events.mjs` harness.
- Fix `buildWatchHistoryEvent` to default `monthIdentifier` if missing.
- Verified all builders produce valid events.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 05:14:10 +00:00
Claude 0e46902ed0 chore(agents): run event-schema-agent weekly task — enhance validator with CLI, reporting, and registry checks
Enhanced scripts/agent/validate-events.mjs with:
- CLI options: --dry-run, --out=<path>, --only=<builder>
- JSON report output (artifacts/validate-events-YYYYMMDD.json)
- sanitizeAdditionalTags test cases (3 tests)
- Schema registry verification via getAllNostrEventSchemas (35 checks)
- Runtime construction site mapping (29 call sites across codebase)
- Structured report format per agent prompt spec

All 66 validation checks pass. No schema failures found.

https://claude.ai/code/session_018HLVbfKYtfPMWcSMaC1W7N
2026-02-13 05:12:52 +00:00
google-labs-jules[bot]andPR0M3TH3AN 8ab83506c3 chore(agents): run docs-alignment-agent daily task — update README/CONTRIBUTING
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 05:09:37 +00:00
Claude 00b103cf6e chore(agents): claim event-schema-agent weekly task
https://claude.ai/code/session_018HLVbfKYtfPMWcSMaC1W7N
2026-02-13 05:03:26 +00:00
Claude 17a736b8da refactor(agents): migrate task logs from CSV to directory-based format
Replace shared CSV files (AGENT_TASK_LOG.csv, WEEKLY_AGENT_TASK_LOG.csv)
with per-entry files in docs/agents/task-logs/{daily,weekly}/. Each log
entry is now a separate file named YYYY-MM-DD_HH-MM-SS_<agent>_<status>.md,
eliminating git merge conflicts and race conditions when multiple agents
run concurrently.

Updated files:
- daily-scheduler.md: rewritten for directory-based log format
- weekly-scheduler.md: rewritten for directory-based log format
- META_PROMPTS.md: updated pre-flight scan and claiming instructions
- AGENTS.md: updated scheduler reference from CSV to directory-based

Migrated all existing CSV entries to individual files in the new
directory structure.

https://claude.ai/code/session_01P62EWUXwupgxPhpnRejUuz
2026-02-13 04:41:05 +00:00
google-labs-jules[bot]andPR0M3TH3AN 3b37164491 chore(agents): run dead-code-agent weekly task — No dead code found
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 04:25:03 +00:00
google-labs-jules[bot]andPR0M3TH3AN f8b8bae2e8 chore(agents): run docs-agent daily task — updated docs
- Updated README.md to prioritize `npx serve` and clarify testing commands.
- Verified accuracy of CONTRIBUTING.md, docs/nostr-event-schemas.md, and docs/playback-fallback.md.
- Updated docs/agents/AGENT_TASK_LOG.csv with execution status.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 03:39:14 +00:00
google-labs-jules[bot]andPR0M3TH3AN 77ec8e18c3 chore(agents): migrate persistent state files to timestamped directories
- Move `CONTEXT.md`, `TODO.md`, `DECISIONS.md`, `TEST_LOG.md` to `context/`, `todo/`, `decisions/`, `test_logs/` directories with timestamps.
- Update `AGENTS.md` and `CLAUDE.md` to define the new workflow: agents must read the latest timestamped file and create a new one when updating.
- Update `daily-scheduler.md` and `weekly-scheduler.md` to initialize tasks using the new file structure.
- Update all daily agent prompts to reference the new directory structure.
- This change prevents merge conflicts on persistent state files by treating them as an append-only log of snapshots.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 03:14:50 +00:00
thePR0M3TH3AN c538517fec chore(agents): run deps-security-agent daily task — baseline audit triage 2026-02-12 21:54:17 -05:00
google-labs-jules[bot]andPR0M3TH3AN 393c06c749 [decompose] extract ProfileHashtagController from js/ui/profileModalController.js
Extracts all hashtag preference related logic into a new controller
`js/ui/profileModal/ProfileHashtagController.js` to reduce the size of `js/ui/profileModalController.js` and improve maintainability.

- Moves `normalizeHashtagTag`, `formatHashtagTag`, `getResolvedHashtagPreferences`, `setHashtagStatus`, `refreshHashtagBackgroundStatus`, `populateHashtagPreferences`, `renderHashtagList`, `sanitizeHashtagList`, `createHashtagListItem`, `persistHashtagPreferences`, `handleAddHashtagPreference`, `handleRemoveHashtagPreference`, `handleHashtagPreferencesChange`, `describeHashtagPreferencesError`.
- Updates `ProfileModalController` to delegate to `ProfileHashtagController`.
- Adds delegate getters/methods in `ProfileModalController` to maintain backward compatibility for tests.
- Reduces `js/ui/profileModalController.js` by ~600 lines.
- Updates file size baseline in `scripts/check-file-size.mjs`.

Passes `npm run lint` and `npm run test:unit`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 02:06:08 +00:00
thePR0M3TH3AN 6150ef96ff Merge branch 'unstable' into ai/decompose/daily-run-4837693991627885906 2026-02-12 20:48:23 -05:00
google-labs-jules[bot]andPR0M3TH3AN 5f1edebea7 [decompose] extract ProfileHashtagController from js/ui/profileModalController.js
Extracts all hashtag preference related logic into a new controller
`js/ui/profileModal/ProfileHashtagController.js` to reduce the size of `js/ui/profileModalController.js` and improve maintainability.

- Moves `normalizeHashtagTag`, `formatHashtagTag`, `getResolvedHashtagPreferences`, `setHashtagStatus`, `refreshHashtagBackgroundStatus`, `populateHashtagPreferences`, `renderHashtagList`, `sanitizeHashtagList`, `createHashtagListItem`, `persistHashtagPreferences`, `handleAddHashtagPreference`, `handleRemoveHashtagPreference`, `handleHashtagPreferencesChange`, `describeHashtagPreferencesError`.
- Updates `ProfileModalController` to delegate to `ProfileHashtagController`.
- Reduces `js/ui/profileModalController.js` by ~600 lines.
- Updates file size baseline in `scripts/check-file-size.mjs`.

Passes `npm run lint` and `npm run test:unit`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-13 01:39:22 +00:00