BINKY-WP-0006: wire mail-triage path and mark T01–T04 done
All checks were successful
Work Records / validate (push) Successful in 13s

Document live llm-connect smoke + host port-forward; ensure git identity
and LLM_CONNECT_URL defaults for railiance timers.
This commit is contained in:
tegwick 2026-07-22 00:07:46 +02:00
parent e60600fbf3
commit 6e6da53c5d
4 changed files with 51 additions and 10 deletions

View file

@ -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.

View file

@ -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)."

View file

@ -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 \

View file

@ -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