Skip to content

Active Tasks

TaskPlane packets created or claimed during the fleet activation session.

TP-391 — pi TUI Code-Render Uplift

FieldValue
StatusStaged
PriorityP3 / backlog
SizeM
OwnerUnclaimed (proposed: substrate-GUY)
Review Level2
Commitd2df553

Mission

Bring pi's code-render surfaces to visual parity with fenced-markdown syntax highlighting.

Current state:

  • Fenced markdown code blocks → syntax-highlighted ✅
  • edit tool diffs → structured but muted, no syntax highlighting ❌
  • write tool output → "Successfully wrote N bytes" (content hidden) ❌
  • bash tool output → raw ANSI passthrough ❌

Design dialect: INTERNAL (Signal/Synthwave) — this is a local-tools surface.

Anti-goals: No full TUI theme rework. No custom-per-terminal renderers. No pi-tool-display rewrite.


TP-392 — ClickHouse Schema Cleanup + HF/Joe Segregation

FieldValue
StatusStaged
PriorityP2 / this week
SizeL
OwnerUnclaimed (proposed: substrate-GUY or data-lane sub-agent)
Review Level2
Commit8b72a69

Mission

Segregate HuggingFace training-corpus dumps from Joe's actual agent-run corpus, dedup raw JSONL ingestion, unify identity, and backfill missing host attribution.

Key findings:

ProblemScale
HF training data in corpus.*~2.89M rows (5 public datasets mixed with Joe's data)
Duplicate rows in memory.agent_jsonl_raw806k rows (~38%)
Identity splitjosephlanzone + joe = same person, no unified mapping

Approach: Parallel-table migration (Option A) preferred over in-place DELETE/OPTIMIZE FINAL. No HF data deletion — move only.


TP-393 — GPT-5.5 Empty-Output Retry + Cache-Aware Rotation

FieldValue
Status✅ Closed — all 6 steps shipped; Step 6 BATS proof passed and TP STATUS marked done
PriorityP2 / this week
SizeM
Ownersubstrate-GUY
Review Level2
Commits2ba2819 (packet), fe62200 (Step 1 effort-clamp + store:true), 6c8680c (retry staged), e820859ef (dynamic cores + empty-output retry), 1a68a44aa (BATS shape tests), 4e01cb147 (response.failed signature fix on origin/main), 835b70e5a (STATUS corrected to active verification), eafb3a3d7 (Step 6 retry-detector proof test), 29ee3baea (TP closed after proof)

Mission

Add empty-output retry-with-degrade to pi's OpenAI Responses adapter. Effort-clamp when tools are present. Wire cache-aware model rotation across multi-copy endpoints.

Root cause: GPT-5.5 returns status: "failed", empty output, no error on reasoning.effort: "xhigh" + multi-tool context. Not a pi-side bug — OpenAI capacity allocation issue.

Fix approach / shipped work:

  1. Effort-clamp: cap reasoning effort when tools are present
  2. Empty-output retry with model degrade (GPT-5.5 → GPT-5.4 → GPT-5.4-mini) — wired in e820859ef, signature match corrected in remote 4e01cb147
  3. Dynamic model-rotation cores config + pool-empty guards — wired in e820859ef
  4. BATS model-role shape assertions updated for TP-393 default pins — 1a68a44aa
  5. Preserve store: false (operator ZDR-adjacent posture)
  6. STATUS corrected in 835b70e5a: TP-393 is not closed until Step 6 proves the retry/degrade wrapper fires on the real or fixture-driven response.failed empty-output path
  7. Step 6 proof test shipped in eafb3a3d7 (tests/unit/pi_openai_responses_retry_detector_test.bats); 29ee3baea closes TP-393 after 6/6 BATS proof plus supporting targeted rotation tests

TP-394 — Tdarr Non-Destructive Verify

FieldValue
Status✅ Completed
PriorityP0
Ownermedia-curator-GUY
Commita653e82

Finding: All 4 Tdarr flows use replaceOriginalFile — the destructive surface is confirmed present. Additional findings: W1 handoff incomplete, worker drift between compose env vars and live server, auth disabled. Destructive transcode policy is now operator-decision-gated.


TP-395 — PipeWire Hot with EasyEffects Dead

FieldValue
StatusRenamed → TP-400
PriorityP1
Ownermedia-curator-GUY
Commita653e82

Renamed to TP-400. Follow-up investigation is now complete: the hot PipeWire reading was a ps %CPU lifetime-average artifact, not current audio load; see TP-400 below.


TP-384 — Steambox Restic Config Backup Timer

FieldValue
Status✅ Completed
PriorityP1
Ownermedia-curator-GUY
Commitbcedfc2

Restic config backup operational: local cross-drive backup to Fast_8TB_2, snapshot f40fe798 (15.7 GiB → 6.6 GiB stored), restore drill passed, systemd timer active (daily 04:00).

Cloud target update: media-curator-GUY moved the cloud target from Backblaze B2 to Cloudflare R2 and refreshed the restore runbook in chezmoi 1dfd1a373.


TP-400 — PipeWire Hot with EasyEffects Dead

FieldValue
Status✅ Complete — measurement artifact; no live PipeWire mitigation needed
PriorityClosed; latent spatializer risk only
Ownermedia-curator-GUY
NoteTP-400 source STATUS/finding says ps %CPU was lifetime average, not instantaneous load. pw-top showed PipeWire idle at ~0% / 0 ctx/s; 16 connected clients had 0 active streams; journals had 0 PipeWire/WirePlumber errors; Docker containers pass only /dev/dri, not audio devices. Remaining risk: spatializer-7.1.conf has 8 SOFA HRTF convolvers and may spike CPU when headphone playback resumes.

TP-401 — NATS Cross-Machine Agent Mesh (superseded)

FieldValue
Status❌ Superseded by TP-402
NoteNATS artifacts fully removed (server, binaries, systemd, brew, config, adapter extension). Track files deleted in c141c4532.

TP-402 — Bun-native Cross-Machine Mesh (supersedes TP-401)

FieldValue
Status✅ All steps complete. TP-401 retired.
PriorityP1
Ownerresearch-docs-GUY (architecture + NATS retirement) → substrate-GUY (runtime hardening)
Commitschezmoi ff9197e9c (decision), dfd299cc5 (NATS retire), 21339d3fc (sidecar), 7b4f963e7 (TCP bind), cb2adc9e6 (JSONL bridge), ffe1ed846 (ClickHouse archive), 8e2fdb488 (closeout), c141c4532 (TP-401 retire), d6de933b9 (.DONE marker)

Superseded TP-401 (NATS). Operator diligence found 90% of the Bun-native P2P mesh was already built. Shipped:

  • Cross-machine mesh over Tailscale verified on both sides: steambox ↔ Mac, TCP ESTABLISHED, DM delivered=true
  • NATS fully retired: server, binaries, systemd, brew, config, adapter extension — all removed
  • Mac pi revived in cmux workspace:4
  • Sidecar now discovers the harness-neutral mesh transport path
  • TCP listener hardened to bind Tailscale IP only, not 0.0.0.0
  • Mesh-gateway JSONL bridge outbound path wired (Step 4)
  • ClickHouse archive layer wired to mesh sidecar on receive (Step 5)
  • TP-401 track files retired as superseded
  • TP-402 .DONE marker added in d6de933b9 so scans no longer surface it as open

Manga Daily Health Check + Acquisition Automation

FieldValue
Status✅ Shipped
Ownermedia-curator-GUY
Commit3cad888

Two-tier manga/comics automation:

  • Mechanical tier (daily 06:00, no LLM): *arr service health, Komga stats + auto re-analyze error books, Mylar census + RSS + active search
  • Mylar resilience: daily check auto-reapplies the seriesyear compatibility patch if the container is recreated (596b7f47c)
  • Mylar weekly-pull verification: 2026-07-02 read-only artifact mylar-futureupcoming-pull-date-query-2026-07-02.json shows weekly has 585 rows and current SHIPDATE rows through 2026-07-29 (2026-07-01 has 93 rows), while futureupcoming and upcoming are empty; treat weekly-pull health as table-specific, not a blanket Mylar freeze.
  • LLM-escalated tier: acquisition automation for wanted issues
  • Komga verification: 2026-07-02 non-destructive artifact ~/.local/share/stash-curation/komga-radarr-sonarr-verification-2026-07-02.json shows Komga health up, 207 config metadata files checked, 213 index-evidence hits for Blue Box, 36 read-only SQLite c195 hits, and 4 host-filesystem c195 matches; Sonarr was reachable but had 0 Blue Box matches in 164 items.
  • Report output: ~/.local/share/manga-daily/daily-report.md

Stash Metadata Enrichment Crawl

FieldValue
Status🛠️ In progress — background full-signal extraction running
Ownermedia-curator-GUY
Evidence2026-07-02 peer observe: ClickHouse crawl tables show aggregate rows for xv_favorites (48), ph_history (6), and ph_liked (6); Chrome/CDP login proof succeeded; full-signal-extraction-ph-xv, ph-history-segment-extract, corrected ph-recommended-pitch-loopback-v2, ph-favorites-segment, ph-favorites-pitch-loopback, ph-profile-segment, ph-playlists-pitch-loopback, ph-likedvideos-segment, xv-history-segment, xv-history-pitch-loopback, xv-profile-pitch-loopback, and xv-account-segment lanes are running or recently harvested; ph-recommended-segment harvested 672 items across 6 pages with 0 overlap alerts; ph-profile-segment harvested 45 items from 1 page with 0 overlap alerts; ph-subscriptions harvested 276 items across 6 pages with 0 overlap alerts and queued 276 details; xv-history-segment harvested 47 items across 2 pages with 0 overlap alerts and queued 47 details; xv-profile-pitch-loopback processed 40 JSON + 40 screenshots with 0 errors. 2026-07-02 aggregate repeat sanity artifact clickhouse-repeat-sanity-2026-07-02.json confirms the raw import table preserves duplicates and computes repeat strength by grouping canonical_item_key: PH strong-user-curated has 110 canonical items / 4,151 raw rows / max repeat 2,535, while XV account-profile context has 13 canonical items / 182 raw rows / max repeat 14; follow-up top-repeat artifact clickhouse-top-repeat-outliers-2026-07-02.json classifies the highest-repeat rows as a mix of likely scene signal, category/navigation artifacts, channel-affinity signals, and UI-control artifacts, so repeat count must be filtered by URL/type before any candidate ranking; no acquisition action is authorized by either artifact.
NextOperator directive via media-curator: run extraction as a full-signal/background process with no gaps or half-measures because it compounds into long-term collection quality. Extract additional page signals that can improve TPDB/StashDB lookup; do not collapse repeat watches away — preserve/dedupe with a repeat-count flag because multiple watches are stronger signal. Keep item-level adult titles out of fleet docs and use only aggregate status here.

TP-396 — VitePress Fleet Orchestration Consolidation

FieldValue
Status✅ Completed
PriorityP1
Ownerresearch-docs-GUY
Commitsusenet-media-stack 59a6c7d, chezmoi b608f55

5 VitePress pages under docs/fleet/ + VitePress config (Fleet nav + sidebar).


Incidents

TP-404 — Authelia SSO Wildcard Domain

FieldValue
Status✅ Side-port proof shipped — rollout decision pending
Ownerinfra-sentinel-GUY
Evidenceusenet 5d162b42: Caddy built with Cloudflare DNS-01 module, temporary listener 100.115.21.9:8444 published, auth/comics routes wired through Authelia, and pre-side-port Tailscale Serve status captured for rollback.
Proofauth.beppesarrstack.net:8444 returns HTTP/2 200; comics.beppesarrstack.net:8444 returns HTTP/2 302 to Authelia with return URL; Patchright authenticated proof reaches Komga (ok=true, title Komga); post-proof Caddy/Authelia logs clean for 3m.
SafetyTailscale Serve :443 remains untouched as rollback; Samba/RDP/Plex exposure unchanged; no secret values committed or logged.
NextAnswer operator product question: can one website provide an OP login, route to all services, and vary surfaced services/actions by access-control/UAC level? Then decide whether to promote the :8444 proof to the production domain path or keep it parked behind the existing Tailscale Serve rollback.

Gachiakuta Sonarr Source/Import Gap

FieldValue
Status🔎 Narrowed — SAB no-space/path cleanup planning; import not closed
Ownermedia-curator-GUY
Evidence2026-07-02 peer artifacts gachiakuta-sonarr-sab-verification-2026-07-02.json, gachiakuta-sab-failure-investigation-2026-07-02.json, and gachiakuta-sab-remediation-options-2026-07-02.md were non-destructive. SAB is reachable on 127.0.0.1:8180; Sonarr is reachable on 127.0.0.1:8989; Sonarr still reports 1 episode file out of 24. SAB history check found 14 Gachiakuta hits, all Failed with Post-processing was aborted. Follow-up SAB log/path classification narrowed the concrete abort to OSError: [Errno 28] No space left on device while creating final folder /pool-downloads/tv/Gachiakuta.S01E17...; current container-side df now shows /config and /downloads on Fast8TB with ~3.5TB available, so the no-space event appears historical/transient or path/namespace-specific rather than current raw capacity. Remediation planning found SAB TV final-folder mapping targets absent /pool-downloads/tv; /config/Downloads/incomplete has 54 entries / 171.81GB total, including 14 Gachiakuta remnants / 23.33GB.
Nextmedia-curator-GUY should continue from the remediation-options sequence: read-only confirm SAB category table/API and Docker mounts, then get operator approval for either category path alignment, quarantine-first, or manual import audit. Do not retry, delete, move, mutate SAB config, or treat the episode gap as closed until Sonarr/filesystem counts converge and the operator approves any cleanup or path migration.

Dungeon Meshi v14 CBZ Verification Gap

FieldValue
Status⛔ Blocked — expected v14 CBZ absent from bounded local roots
Ownermedia-curator-GUY
Evidence2026-07-02 non-destructive artifact dungeon-meshi-v14-cbz-verification-2026-07-02.json scanned /var/mnt/fast8tb/Cloud/OneDrive/Books/Comics, /var/mnt/fast8tb, and /home/deck for Dungeon Meshi / Delicious in Dungeon v14 CBZ/ZIP candidates. It found candidate_count=0, so no local corrupt v14 file was verified in those roots.
NextRequires operator source-path or explicit reacquisition/replacement decision. Do not download, grab, delete, move, or repair automatically; if a source file is later found, manifest path/size and verify integrity before replacement.

Pi 0.80.3 Crash on Node 24

FieldValue
Status✅ Resolved
Discovered byJoe (operator)
Root causecreateRequire not imported in theme.js:861 — upstream pi build bug, not fleet-caused
FixPin pi 0.80.2 via mise. Applied to personal-Mac via SSH. Steambox already on 0.80.2.
Resolved byrepo-steward-GUY

Komga 165-Restart Crash Loop

FieldValue
Status✅ Resolved
Ownerinfra-sentinel-GUY
Commitusenet 3f81dd0
Root causeJVM/task-pool/container memory pressure loop; Komga was flapping 200→502 while media and infra lanes were investigating.
FixAdjusted Komga JVM heap, task pool, and container memory cap across docker-compose.reading.yml and docker-compose.memory-caps.yml.

Security: 14 Services Rebound to 127.0.0.1

FieldValue
Status✅ Closed as TP-403
Commitsusenet 20cf19e, chezmoi 9314d70a5, 14f191057
ImpactAll *arr stack, Portainer, Stash, Tdarr, aria2, Tautulli, Uptime Kuma, Kavita now bind 127.0.0.1 instead of 0.0.0.0. Direct port access from Tailnet peers no longer bypasses Authelia forward-auth gate.
Tailscale ServeDeclarative cross-OS serve config + sync script shipped in 14f191057 for 26 serve entries.
ExceptionsSamba (139/445) and NFS (2049/111) remain 0.0.0.0 for LAN file-sharing.

Built with ❤️ following Bell Labs standards. Dedicated to Stan Eisenstat.