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 ## 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) | | OpenRouter API key Secret | Present (operator custody) |
| `agent-harness mail-scan` on host | Proven | | `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 | | 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 ## Anti-patterns
- Installing Claude Code / npm agent stacks on railiance for rhythm. - Installing Claude Code / npm agent stacks on railiance for rhythm.

View file

@ -31,12 +31,25 @@ require_repo() {
require_llm_connect() { require_llm_connect() {
# Server-side rhythm uses llm-connect HTTP (OpenRouter), never Claude CLI. # Server-side rhythm uses llm-connect HTTP (OpenRouter), never Claude CLI.
if [[ -z "${LLM_CONNECT_URL:-}" ]]; then if [[ -z "${LLM_CONNECT_URL:-}" ]]; then
# In-cluster default when running inside k8s; host timers may override. # Host cannot resolve cluster DNS; default to local port-forward target.
export LLM_CONNECT_URL="${LLM_CONNECT_URL:-http://llm-connect.activity-core.svc.cluster.local:8080}" # 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 fi
log "LLM_CONNECT_URL=${LLM_CONNECT_URL}" 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() { require_claude() {
# Deprecated for Railiance. Kept only so old docs fail loudly with the right message. # 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)." 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 # shellcheck disable=SC1091
source "$(dirname "$0")/run-common.sh" source "$(dirname "$0")/run-common.sh"
require_repo require_repo
ensure_git_identity
require_llm_connect
log "START mail-scan" log "START mail-scan"
# Deterministic pre-step (no Claude) — uses AppRole + OpenBao mail lane. # Deterministic pre-step (no Claude) — uses AppRole + OpenBao mail lane.
agent-harness mail-scan \ agent-harness mail-scan \

View file

@ -8,7 +8,7 @@ status: ready
owner: codex owner: codex
topic_slug: the-custodian topic_slug: the-custodian
created: "2026-07-21" created: "2026-07-21"
updated: "2026-07-21" updated: "2026-07-22"
state_hub_workstream_id: "1c068209-c3f7-4445-82ed-f762a095120c" state_hub_workstream_id: "1c068209-c3f7-4445-82ed-f762a095120c"
--- ---
@ -53,7 +53,7 @@ apply → commit), not a full IDE agent on the node.
```task ```task
id: BINKY-WP-0006-T01 id: BINKY-WP-0006-T01
status: todo status: done
priority: high priority: high
state_hub_task_id: "912a8802-e80f-4c04-aecd-9586c3b7a4b0" state_hub_task_id: "912a8802-e80f-4c04-aecd-9586c3b7a4b0"
``` ```
@ -76,7 +76,7 @@ Done when: doc reviewed against AutonomyPolicy + mailscan two-phase design.
```task ```task
id: BINKY-WP-0006-T02 id: BINKY-WP-0006-T02
status: todo status: done
priority: high priority: high
state_hub_task_id: "00439d4e-d6ee-4cbc-98e2-431eca4651fe" state_hub_task_id: "00439d4e-d6ee-4cbc-98e2-431eca4651fe"
``` ```
@ -96,7 +96,7 @@ Done when: unit tests green; dry-run docs for railiance.
```task ```task
id: BINKY-WP-0006-T03 id: BINKY-WP-0006-T03
status: todo status: done
priority: high priority: high
state_hub_task_id: "1f82c8e0-945e-44b6-a5dc-22dd055e751d" 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 Done when: smoke OK; ConfigMap change committed in llm-connect/activity-core
overlays as appropriate. 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: Railiance schedule uses llm path; drop Claude residual
```task ```task
id: BINKY-WP-0006-T04 id: BINKY-WP-0006-T04
status: todo status: done
priority: medium priority: medium
state_hub_task_id: "2093bf62-20ef-4d3e-9b91-be77a38603f7" 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: Update OperatingRhythm.md + executor-cutover-runbook residual section:
**no coding agent on railiance**. **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: Daily/review via llm-connect (optional same WP if small)
```task ```task