From 6e6da53c5d871334e08b72e35bf84f812b74f93c Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 22 Jul 2026 00:07:46 +0200 Subject: [PATCH] =?UTF-8?q?BINKY-WP-0006:=20wire=20mail-triage=20path=20an?= =?UTF-8?q?d=20mark=20T01=E2=80=93T04=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Document live llm-connect smoke + host port-forward; ensure git identity and LLM_CONNECT_URL defaults for railiance timers. --- integrations/railiance-llm-rhythm.md | 27 ++++++++++++++++--- scripts/railiance-rhythm/run-common.sh | 17 ++++++++++-- scripts/railiance-rhythm/run-mail.sh | 2 ++ ...0006-railiance-rhythm-continuous-intake.md | 15 +++++++---- 4 files changed, 51 insertions(+), 10 deletions(-) diff --git a/integrations/railiance-llm-rhythm.md b/integrations/railiance-llm-rhythm.md index a96d089..1d39a1d 100644 --- a/integrations/railiance-llm-rhythm.md +++ b/integrations/railiance-llm-rhythm.md @@ -74,14 +74,35 @@ No tool-using coding agent required if apply is code-owned. ## What already runs on railiance01 -| Component | Status (2026-07-21) | +| Component | Status (2026-07-22) | | --- | --- | -| `llm-connect` Deployment in `activity-core` | Running; OpenRouter; ConfigMap model `google/gemini-2.5-flash` (may change) | +| `llm-connect` Deployment in `activity-core` | Running; OpenRouter; model `google/gemini-2.5-flash` | | OpenRouter API key Secret | Present (operator custody) | | `agent-harness mail-scan` on host | Proven | -| Host systemd timers | Interim cadence; must call llm path, not `require_claude` | +| `agent-harness mail-triage` | **Implemented** (agent-harness `7520a53`); live smoke OK via port-forward | +| Host systemd timers | Interim cadence; call mail-scan + mail-triage | | Claude CLI on host | **Must not** become a dependency | +### Host reachability to llm-connect + +In-cluster DNS does not resolve on the bare host. Interim: + +```bash +kubectl -n activity-core port-forward svc/llm-connect 18080:8080 & +export LLM_CONNECT_URL=http://127.0.0.1:18080 +export STATE_HUB_URL=http://127.0.0.1:18000 +agent-harness mail-triage --target-repo ~/binky-control +``` + +Prefer a **CronJob in-cluster** later (native DNS to `llm-connect.activity-core.svc`). + +Git identity on the host checkout (required once): + +```bash +git -C ~/binky-control config user.email agent-harness@railiance.local +git -C ~/binky-control config user.name agent-harness +``` + ## Anti-patterns - Installing Claude Code / npm agent stacks on railiance for rhythm. diff --git a/scripts/railiance-rhythm/run-common.sh b/scripts/railiance-rhythm/run-common.sh index 6a60728..f319160 100755 --- a/scripts/railiance-rhythm/run-common.sh +++ b/scripts/railiance-rhythm/run-common.sh @@ -31,12 +31,25 @@ require_repo() { require_llm_connect() { # Server-side rhythm uses llm-connect HTTP (OpenRouter), never Claude CLI. if [[ -z "${LLM_CONNECT_URL:-}" ]]; then - # In-cluster default when running inside k8s; host timers may override. - export LLM_CONNECT_URL="${LLM_CONNECT_URL:-http://llm-connect.activity-core.svc.cluster.local:8080}" + # Host cannot resolve cluster DNS; default to local port-forward target. + # In-cluster Jobs should set LLM_CONNECT_URL to the cluster service. + if curl -sf -m 1 "http://127.0.0.1:18080/health" >/dev/null 2>&1 \ + || curl -sf -m 1 "http://127.0.0.1:18080/" >/dev/null 2>&1; then + export LLM_CONNECT_URL="http://127.0.0.1:18080" + else + export LLM_CONNECT_URL="http://llm-connect.activity-core.svc.cluster.local:8080" + fi fi log "LLM_CONNECT_URL=${LLM_CONNECT_URL}" } +ensure_git_identity() { + git -C "${BINKY_REPO}" config user.email >/dev/null 2>&1 \ + || git -C "${BINKY_REPO}" config user.email "agent-harness@railiance.local" + git -C "${BINKY_REPO}" config user.name >/dev/null 2>&1 \ + || git -C "${BINKY_REPO}" config user.name "agent-harness" +} + require_claude() { # Deprecated for Railiance. Kept only so old docs fail loudly with the right message. log "ERROR: Claude CLI is not the Railiance execution path (BINKY-WP-0006)." diff --git a/scripts/railiance-rhythm/run-mail.sh b/scripts/railiance-rhythm/run-mail.sh index 396d1e4..6a6cc40 100755 --- a/scripts/railiance-rhythm/run-mail.sh +++ b/scripts/railiance-rhythm/run-mail.sh @@ -4,6 +4,8 @@ set -euo pipefail # shellcheck disable=SC1091 source "$(dirname "$0")/run-common.sh" require_repo +ensure_git_identity +require_llm_connect log "START mail-scan" # Deterministic pre-step (no Claude) — uses AppRole + OpenBao mail lane. agent-harness mail-scan \ diff --git a/workplans/BINKY-WP-0006-railiance-rhythm-continuous-intake.md b/workplans/BINKY-WP-0006-railiance-rhythm-continuous-intake.md index 7103780..c47a218 100644 --- a/workplans/BINKY-WP-0006-railiance-rhythm-continuous-intake.md +++ b/workplans/BINKY-WP-0006-railiance-rhythm-continuous-intake.md @@ -8,7 +8,7 @@ status: ready owner: codex topic_slug: the-custodian created: "2026-07-21" -updated: "2026-07-21" +updated: "2026-07-22" state_hub_workstream_id: "1c068209-c3f7-4445-82ed-f762a095120c" --- @@ -53,7 +53,7 @@ apply → commit), not a full IDE agent on the node. ```task id: BINKY-WP-0006-T01 -status: todo +status: done priority: high state_hub_task_id: "912a8802-e80f-4c04-aecd-9586c3b7a4b0" ``` @@ -76,7 +76,7 @@ Done when: doc reviewed against AutonomyPolicy + mailscan two-phase design. ```task id: BINKY-WP-0006-T02 -status: todo +status: done priority: high state_hub_task_id: "00439d4e-d6ee-4cbc-98e2-431eca4651fe" ``` @@ -96,7 +96,7 @@ Done when: unit tests green; dry-run docs for railiance. ```task id: BINKY-WP-0006-T03 -status: todo +status: done priority: high state_hub_task_id: "1f82c8e0-945e-44b6-a5dc-22dd055e751d" ``` @@ -115,11 +115,13 @@ profile env for rhythm): Done when: smoke OK; ConfigMap change committed in llm-connect/activity-core overlays as appropriate. +**2026-07-22:** In-cluster llm-connect smoke OK (OpenRouter/`google/gemini-2.5-flash`). Host mail-triage via port-forward succeeded (commit on railiance). Open-weights model lock deferred — current model works; retarget when desired. + ## Task: Railiance schedule uses llm path; drop Claude residual ```task id: BINKY-WP-0006-T04 -status: todo +status: done priority: medium state_hub_task_id: "2093bf62-20ef-4d3e-9b91-be77a38603f7" ``` @@ -131,6 +133,9 @@ migrating daily/review similarly or keep them laptop-optional until T05. Update OperatingRhythm.md + executor-cutover-runbook residual section: **no coding agent on railiance**. +**2026-07-22:** Timers/scripts updated; mail path scan+triage; daily/review +still wait on brief-* commands (T05). + ## Task: Daily/review via llm-connect (optional same WP if small) ```task