Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions pmoves/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2195,8 +2195,17 @@ up-jellyfin:

# Bring up agents stack (NATS, Agent Zero, Archon, Mesh Agent) and publisher-discord
.PHONY: up-agents up-agents-stack
up-agents-stack: ## Start Agents (NATS, Agent Zero, Archon, etc.) preferring Archon submodule build
@$(DC) --profile agents up -d nats agent-zero archon mesh-agent deepresearch publisher-discord
up-agents-stack: ## Start Agents (NATS, Agent Zero, Archon, Cipher Memory, etc.) preferring submodule builds
@$(DC) --profile agents up -d nats agent-zero archon mesh-agent deepresearch publisher-discord cipher-api

.PHONY: up-cipher
up-cipher: ## Start Cipher Memory (knowledge-graph memory for Claude Code / agents)
@$(DC) --profile agents up -d --build cipher-api
@echo "✔ Cipher Memory ready at http://localhost:$${CIPHER_PORT:-8096}"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔥 The Roast: docker compose up -d returns as soon as the container is created, not when it's healthy. Printing "✔ Cipher Memory ready" right after is like shouting "dinner's served!" the moment you put the pizza in the oven. You literally created a cipher-health target 4 lines below this — use it! Also, port 8096 is Jellyfin's default host port too, so when both are running, someone's getting a surprise.

🩹 The Fix: Either call cipher-health after the up -d (with a retry loop), or soften the message to "starting..." and point users to make cipher-health. Also consider defaulting CIPHER_PORT to something other than 8096 to avoid the Jellyfin collision.

📏 Severity: warning


.PHONY: cipher-health
cipher-health: ## Check Cipher Memory health
@curl -sf http://localhost:$${CIPHER_PORT:-8096}/health && echo " ✔ cipher-api healthy" || (echo "✗ cipher-api unhealthy" && exit 1)

.PHONY: agents-headless-smoke
agents-headless-smoke: ## Check Agent Zero and Archon headless services
Expand Down
3 changes: 2 additions & 1 deletion pmoves/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2166,6 +2166,7 @@ services:
- NEO4J_USER=${NEO4J_USER:-neo4j}
- NEO4J_PASSWORD=${NEO4J_PASSWORD:-neo4j}
- NATS_URL=${NATS_URL:-nats://nats:pmoves@nats:4222}
- OLLAMA_BASE_URL=http://pmoves-ollama:11434

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔥 The Roast: Every other service in this file uses ${OLLAMA_URL:-http://pmoves-ollama:11434} (line 1746, 1908) or ${OLLAMA_BASE_URL:-http://pmoves-ollama:11434} (line 2676) — but cipher-api gets a hardcoded value with no env var override. It's like this one service got invited to the party but wasn't told the dress code. The PR description literally says TensorZero routing is "deferred" — how exactly do you plan to route it if the URL is baked into YAML?

🩹 The Fix:

Suggested change
- OLLAMA_BASE_URL=http://pmoves-ollama:11434
- OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://pmoves-ollama:11434}

📏 Severity: suggestion

- DOCKED_MODE=${DOCKED_MODE:-true}
- TOPOLOGY_MODE=${TOPOLOGY_MODE:-docked}
- PARENT_SYSTEM=${PARENT_SYSTEM:-PMOVES.AI}
Expand All @@ -2182,7 +2183,7 @@ services:
profiles: ["agents"]
networks: [pmoves_app, pmoves_data, pmoves_bus]
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/health"]
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3000/health"]
interval: 30s
timeout: 10s
retries: 3
Expand Down
8 changes: 8 additions & 0 deletions pmoves/docs/AGENTS/AGNOTE4482PHI.t1.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,8 @@ Required handoff fields:
- `2026-03-28T16:00:00-04:00` RELEASE `CODEX-GPT5` scope: z890 shared-infra docs synced. Next fleet steps are explicit: prune stale Tailscale devices with the admin API key or admin console, expose a Tailscale-reachable NATS broker for KVM2 watcher publish, and keep rebuild manifests translated onto Known Roads make targets before execution.
- `2026-03-28T16:45:00Z` CLAIM `Z890-CLAUDE` scope: GHCR registry consolidation — `docker-compose.integrations.images.yml` pointing to non-existent `ghcr.io/cataclysm-studios-inc/pmoves-yt` (image confirmed missing via `docker manifest inspect`). Correct image exists at `ghcr.io/powerfulmoves/pmoves-yt:pmoves-latest`. Scope: fix registry reference, normalize 4 PR-kit uppercase GHCR refs, extend CHIT bypass patterns for compose file edits, cancel 4 stuck CI runs (all 4 self-hosted runners offline), update rebuild manifest.
- `2026-03-28T17:15:00Z` RELEASE `Z890-CLAUDE` scope: GHCR registry consolidated to `ghcr.io/powerfulmoves` across all compose files. Root cause: `docker-compose.integrations.images.yml` had stale `cataclysm-studios-inc` org (image never existed there). 5 compose files fixed. `chitSafePaths` extended with `docker-compose.integrations` and `pr-kits` bypass entries. 4 queued `integrations-ghcr.yml` runs cancelled (runners offline since March 26). Rebuild manifest updated. `up-yt-published` now pulls from correct GHCR path. 4 local-only service rebuilds (flute-gateway, publisher-discord, botz-gateway, cipher-memory) ready for execution. Runner reactivation deferred as separate workstream.
- `2026-03-28T18:30:00Z` CLAIM `Z890-CLAUDE` scope: PR #1148 review + rebuild manifest execution + Dockerfile blocker resolution + n8n runner activation + Cipher Memory activation. Reviewed 4090-claude PR #1148 (profile alias, roadmap cleanup, rebuild manifest) — approved and admin-merged. Merged #1145 (hooks) + #1146 (Hi-RAG). Executed rebuild manifest: tensorzero (recreated+UI added), botz-gateway (rebuilt), flute-gateway (rebuilt from scratch), publisher-discord (restarted), cipher-api (built from Pmoves-cipher submodule — fixed MCP SDK TS2353 `tools` capability error, switched from OpenAI to Ollama qwen3.5:9b + qwen3-embedding:4b, fixed Alpine IPv6 healthcheck localhost→127.0.0.1). n8n runners activated (Python+JS launchers registered). Known Roads gap fixed: added `cipher-api` to `up-agents-stack`, created `up-cipher` + `cipher-health` make targets. Added `OLLAMA_BASE_URL` to cipher-api compose env. pmoves-yt blocked on GHCR (PR #1153). Archon unhealthy (needs Supabase stack).
- `2026-03-28T19:00:00Z` RELEASE `Z890-CLAUDE` scope: 28 healthy containers (up from 20/23 at session start). 5/6 manifest images rebuilt. 3 Dockerfile blockers resolved: Agent Zero 8080 was Docker proxy not httpd.exe, DeepResearch already healthy, Archon needs Supabase (deferred). n8n editor at :5678 with Python+JS runners. Cipher Memory healthy at cipher-api:3000 (host port 8096 Docker Desktop Windows forwarding issue — services reach it via Docker network). Handoff: 5090-claude → Qwen3-4b GPU validation + cipher.yml TensorZero routing. 4090-claude → PR #1135 auto-merge watch. Mirror → PR #1153 merge when CI green. codex → Section 1 signoff (rooms+stage prospectus).
- `2026-03-26T18:10:00-04:00` CLAIM `5090-CLAUDE` scope: PR #1114 resolution — analyzed branch, found all 19 files already on main via #1100/#1105/#1106/#1107 (rebase would produce 3 empty commits). Closed #1114, created #1126 with the 2 P1 review fixes: IF EXISTS guard on bare UPDATE + idempotent claim predicate separating TOCTOU race from no-op success. Board refs updated #1114→#1126.

## Graphiti Review Log
Expand Down Expand Up @@ -376,3 +378,9 @@ Required handoff fields:
- Ack: `Fixed Hi-RAG v2 0-result query bug: root-caused to app.py:26 default collection mismatch (pmoves_chunks legacy 384d → pmoves_chunks_qwen3 2560d Qwen3-Embedding-4B) + silent except-pass swallowing HTTPException 409 at 2 call sites (query + ingest endpoints) + GPU compose default at line 1880. PR #1146 created with 4 targeted fixes. Live query confirmed 10 hits (scores 0.39-0.43). Rebased PR #1135 (publish-state visibility, 4 commits, 2 doc conflicts resolved, auto-merge squash enabled). Rebased PR #1145 (cross-platform Python hooks, 12→4 commits after 8 upstream drops, Tailscale docs + hardening script conflicts resolved, auto-merge squash enabled). 3 PRs total: 2 rebased for merge, 1 new fix created. Board: 3 open PRs awaiting CI.`
- Signature: `ACK::Z890-CLAUDE::PHI-4482-T1::HIRAG-QUERY-FIX-PR-CLEANUP`
- Timestamp: `2026-03-28T04:15:00Z`

## Agent ACK (Signed, Rebuild Manifest Execution + Cipher Memory Activation)
- Agent: `Z890-CLAUDE`
- Ack: `Executed 4090-claude rebuild manifest (PR #1148). 5/6 images rebuilt: tensorzero (recreated+UI), botz-gateway, flute-gateway, publisher-discord, cipher-api. Fixed Cipher MCP SDK TS2353 (tools capability moved in @modelcontextprotocol/sdk ≥1.15). Switched cipher.yml from OpenAI to Ollama (qwen3.5:9b LLM + qwen3-embedding:4b 2560d). Fixed Alpine IPv6 healthcheck (localhost→127.0.0.1). Added OLLAMA_BASE_URL to cipher-api compose env. Known Roads gap closed: cipher-api added to up-agents-stack, new up-cipher + cipher-health make targets. n8n runners activated (Python+JS). 3 documented Dockerfile blockers resolved: AZ 8080 = Docker proxy (not httpd), DeepResearch = already healthy, Archon = Supabase dependency (deferred). Final: 28 healthy containers. pmoves-yt deferred (GHCR, PR #1153).`
- Signature: `ACK::Z890-CLAUDE::PHI-4482-T1::REBUILD-MANIFEST-CIPHER-ACTIVATION`
- Timestamp: `2026-03-28T19:00:00Z`
Loading