BINKY-WP-0006: close with three clean railiance mail cycles
Some checks failed
Work Records / validate (push) Has been cancelled
Some checks failed
Work Records / validate (push) Has been cancelled
Host LLM_CONNECT_URL discovery uses ClusterIP when DNS is unreachable; mail path fails hard if triage fails. Mark T06 done and workplan finished; update residual docs (OperatingRhythm, cutover runbook, llm-rhythm).
This commit is contained in:
parent
3d0815527e
commit
2fbbf9fc76
8 changed files with 75 additions and 43 deletions
|
|
@ -38,13 +38,14 @@ cd ~/binky-control && git pull
|
|||
./scripts/railiance-rhythm/install-on-railiance.sh
|
||||
```
|
||||
|
||||
## Residual (do not re-open T06)
|
||||
## Residual after BINKY-WP-0006 (2026-07-22)
|
||||
|
||||
| Gap | Follow-up |
|
||||
| Gap | Status / follow-up |
|
||||
| --- | --- |
|
||||
| Post-scan **triage** still assumes coding-agent session (Claude) | BINKY-WP-0006: **llm-connect → OpenRouter** + JSON apply (see `railiance-llm-rhythm.md`) |
|
||||
| Daily/review unattended without host coding agent | Same pattern via llm-connect |
|
||||
| Host timers dual activity-core schedules | Simplify once llm path is the only executor |
|
||||
| Post-scan **triage** via llm-connect | **Done** — `agent-harness mail-triage`; three clean railiance cycles 2026-07-22 |
|
||||
| Daily brief without host coding agent | **Done** — `brief-daily` |
|
||||
| Weekly review prep without host coding agent | **Open** — need `brief-weekly` (same pattern) |
|
||||
| Host timers dual activity-core schedules | Simplify when in-cluster CronJob/poller owns cadence |
|
||||
| **Out of scope / rejected:** install Claude Code on railiance01 | — |
|
||||
|
||||
## Rollback
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
# agent-harness tenant onboarding — binky-control (HARNESS-WP-0001-T07)
|
||||
|
||||
> Status: done 2026-07-18; cutover **BINKY-WP-0004-T06 completed 2026-07-21**.
|
||||
> Residual continuous intake: BINKY-WP-0006.
|
||||
> Status: done 2026-07-18; cutover **BINKY-WP-0004-T06 completed 2026-07-21**;
|
||||
> llm-connect continuous intake **BINKY-WP-0006 finished 2026-07-22**.
|
||||
|
||||
## Instance manifest
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Railiance rhythm via llm-connect (not a host coding agent)
|
||||
|
||||
> Status: design note 2026-07-21 (BINKY-WP-0006).
|
||||
> Status: **live 2026-07-22** (BINKY-WP-0006 finished).
|
||||
> Supersedes the residual “install Claude on railiance01” idea from the
|
||||
> BINKY-WP-0004 cutover notes.
|
||||
|
||||
|
|
@ -36,16 +36,17 @@ timer / CronJob
|
|||
- Output: `mailmeta/reports/email-channel-evidence-report-*.csv`
|
||||
- Hub: `binky_mail_intake` with counts only
|
||||
|
||||
### Phase 2 — triage (to build)
|
||||
### Phase 2 — triage (**implemented**)
|
||||
|
||||
1. **Prompt** (metadata only): newest CSV rows + current mail-log tail +
|
||||
queue templates.
|
||||
2. **llm-connect** `POST` (same contract as activity-core `llm_client.py`):
|
||||
- URL: `http://llm-connect.activity-core.svc.cluster.local:8080`
|
||||
- Provider: OpenRouter (already configured on railiance)
|
||||
- Model: cost-efficient; **prefer open-weights** (pick at T03; examples to
|
||||
evaluate: Llama/Qwen/Mistral class on OpenRouter — measure quality on
|
||||
fixture CSV before locking).
|
||||
2. **llm-connect** `POST /execute` (same contract as activity-core
|
||||
`llm_client.py`):
|
||||
- In-cluster: `http://llm-connect.activity-core.svc.cluster.local:8080`
|
||||
- Host: Service ClusterIP (auto via `kubectl` in `run-common.sh`) or
|
||||
port-forward `http://127.0.0.1:18080`
|
||||
- Provider: OpenRouter; model currently `google/gemini-2.5-flash`
|
||||
(open-weights retarget optional)
|
||||
3. **Response**: strict JSON, e.g.
|
||||
|
||||
```json
|
||||
|
|
@ -59,10 +60,14 @@ timer / CronJob
|
|||
```
|
||||
|
||||
4. **Apply** (deterministic Python): append mail-log; add queue YAML only if
|
||||
schema-valid; **suspicious** → log only; `git commit`; hub event.
|
||||
schema-valid; **suspicious** → log only; `git commit`; hub event
|
||||
`binky_mail_triage`.
|
||||
5. **Never** pass message bodies to the model if the scanner can omit them;
|
||||
never execute model-suggested shell.
|
||||
|
||||
**Dogfood (closure T06):** three clean unattended cycles on railiance01
|
||||
2026-07-22 ~08:26–08:27 UTC — each scan+triage `ok` with hub progress.
|
||||
|
||||
## Daily / weekly (same shape)
|
||||
|
||||
| Slot | Deterministic inputs | LLM output | Apply |
|
||||
|
|
@ -95,11 +100,12 @@ Hub event: `binky_daily_brief` with `detail.repo=binky-control`.
|
|||
|
||||
### Host reachability to llm-connect
|
||||
|
||||
In-cluster DNS does not resolve on the bare host. Interim:
|
||||
In-cluster DNS does not resolve on the bare host. `run-common.sh` probes, in
|
||||
order: port-forward `127.0.0.1:18080` → Service ClusterIP (via `kubectl`) →
|
||||
cluster DNS. Manual override:
|
||||
|
||||
```bash
|
||||
kubectl -n activity-core port-forward svc/llm-connect 18080:8080 &
|
||||
export LLM_CONNECT_URL=http://127.0.0.1:18080
|
||||
export LLM_CONNECT_URL=http://$(kubectl -n activity-core get svc llm-connect -o jsonpath='{.spec.clusterIP}'):8080
|
||||
export STATE_HUB_URL=http://127.0.0.1:18000
|
||||
agent-harness mail-triage --target-repo ~/binky-control
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue