mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-10-27 07:51:52 +00:00
Merge branch 'main' into agents/daily/protocol-research-agent-run-9833362316977900264
This commit is contained in:
6 files changed
+95
-3
No files matched your search
@@ -65,6 +65,17 @@ Track only **active, reproducible, unresolved** issues.
|
||||
- **Related notes:** `docs/agent-handoffs/learnings/2026-02-15-relay-health-preflight-job.md`
|
||||
- **Last verified:** 2026-02-15
|
||||
|
||||
### Claude Code: outbound WebSocket blocked — scheduler cannot run from this environment
|
||||
- **Status:** Active (no code-level workaround)
|
||||
- **Area:** Runtime / Tooling
|
||||
- **Symptom:** `torch-lock` commands (`lock:check`, `lock:lock`, `lock:complete`) fail to connect to any Nostr relay. The underlying error is a WebSocket handshake rejection at the proxy layer. In Node.js the symptom is `getaddrinfo ENOTFOUND` (empty `/etc/resolv.conf`) or a connection hang/timeout for `wss://` URLs.
|
||||
- **Trigger/Conditions:** Any `torch-lock` or scheduler command run from inside the Claude Code remote sandbox. The proxy intercepts all egress traffic; it supports HTTP/HTTPS `CONNECT` tunneling but strips the `Upgrade: websocket` header at L7, so the WebSocket handshake never completes. This affects all outbound WebSocket connections, not just Nostr relays (confirmed by multiple open GitHub issues: anthropics/claude-code #490, #2059, #17333).
|
||||
- **Workaround (attempted and rejected):** A local relay on `ws://127.0.0.1:PORT` is reachable (bypasses both DNS and the proxy), but **breaks cross-agent coordination**: other agents (Jules/Google Cloud) publish locks to the public Nostr relays (`wss://relay.damus.io`, `wss://nos.lol`, `wss://relay.primal.net`). A local relay is invisible to those agents, causing double-claiming of scheduled agent slots.
|
||||
- **Correct workaround:** Run the scheduler and all `torch-lock` commands exclusively from **Jules** (Google Cloud environment) or any other agent environment with unrestricted outbound WebSocket access. Do not attempt to run `lock:lock` / `lock:complete` from Claude Code sessions.
|
||||
- **Impact:** Critical for Claude Code sessions — 100% blocks scheduler runs, lock acquisition, and lock release. No impact on Jules-initiated runs.
|
||||
- **Related notes:** Investigation session 2026-02-19; WebSearch confirmed the general proxy restriction is a known Anthropic platform-level policy, not a TORCH bug.
|
||||
- **Last verified:** 2026-02-19
|
||||
|
||||
### content-audit-agent targets missing /content directory
|
||||
- **Status:** Resolved
|
||||
- **Area:** Docs
|
||||
|
||||
+9
-1
@@ -155,6 +155,12 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.meta-prompts {
|
||||
padding: 0 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.meta-prompts h2 {
|
||||
text-align: center;
|
||||
font-size: 2rem;
|
||||
@@ -164,7 +170,7 @@
|
||||
|
||||
.prompts-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
|
||||
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
@@ -743,6 +749,8 @@
|
||||
color: #e6edf3;
|
||||
line-height: 1.5;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-all;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
#promptModal .close-prompt {
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
platform: jules
|
||||
---
|
||||
Task completed successfully.
|
||||
Commands run: npm run lint [--fix]
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
agent: perf-optimization-agent
|
||||
cadence: weekly
|
||||
platform: claude
|
||||
status: failed
|
||||
timestamp: "2026-02-19T00:58:49Z"
|
||||
failure_class: backend_unavailable
|
||||
failure_category: lock_backend_error
|
||||
---
|
||||
|
||||
# Task Log — Failed
|
||||
|
||||
## Reason
|
||||
|
||||
Lock backend error
|
||||
|
||||
## Detail
|
||||
|
||||
Lock acquisition for `perf-optimization-agent` (weekly cadence) failed with exit code 2.
|
||||
All Nostr relays returned `permanent_validation_error`: "Received network error or non-101 status code."
|
||||
WebSocket connectivity to the relay pool is unavailable in this execution environment.
|
||||
|
||||
No prompt was executed. `lock:complete` was NOT published.
|
||||
|
||||
## Scheduler State
|
||||
|
||||
- **Selected agent:** perf-optimization-agent
|
||||
- **Selection algorithm:**
|
||||
- Roster source: `src/prompts/roster.json` (weekly key)
|
||||
- Latest log file: `2026-02-18T19-54-03Z__perf-deepdive-agent__completed.md`
|
||||
- Previous agent: `perf-deepdive-agent` (from filename convention, index 6)
|
||||
- start_index: `(6 + 1) mod 21 = 7`
|
||||
- Candidate at index 7: `perf-optimization-agent` — not in excluded set → selected
|
||||
- **Excluded set (from lock:check:weekly):** bug-reproducer-agent, changelog-agent, dead-code-agent, feature-proposer-agent, frontend-console-debug-agent, fuzz-agent, perf-deepdive-agent, test-coverage-agent, ui-ux-agent, weekly-synthesis-agent
|
||||
|
||||
## Lock Failure Metadata
|
||||
|
||||
- **lock_command:** `AGENT_PLATFORM=claude npm run lock:lock -- --agent perf-optimization-agent --cadence weekly`
|
||||
- **backend_category:** relay_publish_non_retryable
|
||||
- **lock_correlation_id:** c5e5d9fc-85f5-41ca-b4d2-3671f815d157
|
||||
- **lock_attempt_id:** 5403bebc-a9f5-4a30-a3dd-6df7af4ec213
|
||||
- **successCount:** 0 / 3
|
||||
- **requiredSuccesses:** 1
|
||||
- **relay_list:**
|
||||
- wss://nos.lol (publish:primary, reason=permanent_validation_error)
|
||||
- wss://relay.damus.io (publish:primary, reason=permanent_validation_error)
|
||||
- wss://relay.primal.net (publish:primary, reason=permanent_validation_error)
|
||||
- **lock_stderr_excerpt:** "Failed relay publish quorum in publish phase: 0/3 successful (required=1, timeout=15000ms, attempts=4)"
|
||||
|
||||
## Retry Guidance
|
||||
|
||||
1. Verify relay connectivity: `npm run lock:health -- --cadence weekly`
|
||||
2. Retry lock acquisition: `AGENT_PLATFORM=claude npm run lock:lock -- --agent perf-optimization-agent --cadence weekly`
|
||||
3. If all relays remain unhealthy, consult `docs/agent-handoffs/incidents/` for relay remediation guidance.
|
||||
4. See incident runbook: `docs/agent-handoffs/learnings/2026-02-15-relay-health-preflight-job.md`
|
||||
|
||||
## Prompt Not Executed
|
||||
|
||||
The selected prompt `src/prompts/weekly/perf-optimization-agent.md` was NOT executed.
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
agent: pr-review-agent
|
||||
cadence: weekly
|
||||
run_start: 2026-02-19T05:06:16Z
|
||||
platform: linux
|
||||
failure_reason: Validation failed (Verify: 1, Lint: 0)
|
||||
---
|
||||
Run failed.
|
||||
@@ -67,6 +67,7 @@ async function setupFixture({
|
||||
|
||||
await fs.mkdir(path.join(root, 'src', 'prompts'), { recursive: true });
|
||||
await fs.mkdir(path.join(root, 'src', 'prompts', 'daily'), { recursive: true });
|
||||
await fs.copyFile(path.resolve('src/utils.mjs'), path.join(root, 'src', 'utils.mjs'));
|
||||
await fs.mkdir(scriptsDir, { recursive: true });
|
||||
await fs.mkdir(binDir, { recursive: true });
|
||||
|
||||
@@ -194,7 +195,7 @@ test('accepts required memory policy when markers or artifacts are produced', {
|
||||
|
||||
const result = await runNode(fixture.scriptPath, ['--cadence', 'daily'], {
|
||||
cwd: fixture.root,
|
||||
env: fixture.env,
|
||||
env: { ...fixture.env, AGENT_PLATFORM: 'codex' },
|
||||
});
|
||||
|
||||
assert.equal(result.code, 0, `stdout: ${result.stdout}\nstderr: ${result.stderr}`);
|
||||
@@ -219,7 +220,7 @@ test('records backend failure metadata when lock command exits with code 2', { c
|
||||
|
||||
const result = await runNode(fixture.scriptPath, ['--cadence', 'daily'], {
|
||||
cwd: fixture.root,
|
||||
env: fixture.env,
|
||||
env: { ...fixture.env, AGENT_PLATFORM: 'codex' },
|
||||
});
|
||||
|
||||
assert.equal(result.code, 2, `stdout: ${result.stdout}\nstderr: ${result.stderr}`);
|
||||
|
||||
Reference in new issue
Block a user