agent_harness -> rein_aharness (package + all imports), CLI command agent-harness -> rein-aharness, Docker image tag, k8s namespace/labels/ names, Makefile targets, deploy script env var/paths. In-repo identity strings (hub event source, metrics harness field, default assignee, argparse prog name, commit author identity) updated to match. Historical documents left untouched on purpose: docs/adr/ADR-001-agent-harness-architecture.md, docs/architecture.md (dated v0.1 snapshot), workplans/HARNESS-WP-0001 (completed under the old name), and the SSH host alias "forgejo-agent-harness" (external ~/.ssh/config entry, not owned here). Verified: 47/47 tests pass, CLI runs correctly from a fresh venv, `make image` builds and the resulting container runs correctly. deploy/README.md gained an explicit rename cutover checklist for what this session cannot safely do unattended -- moving the host-side secrets dir and checkout on railiance01, and not deleting the old k8s namespace until the new one is confirmed working. The actual live cutover (running that checklist against the real Railiance deployment) is not attempted here -- real production surgery on binky-control's live automation, needs the operator present. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
5.4 KiB
| id | title | status | state_hub_workstream_id |
|---|---|---|---|
| HARNESS-WP-0002 | Rename completion and glas-harness alignment | active | c53fe489-845b-42b3-8e7f-c7e4e6f16b25 |
Follow-up to HARNESS-WP-0001 (done) and glas-harness
docs/adr/ADR-001-rein-harness-family.md. This repo (formerly
agent-harness) is now the rein-aharness rein: the Claude-Code-CLI-driven
harness for governed, unattended/scheduled tenant work, consumed through
glas-harness's router once GLAS-WP-0001 lands. This workplan finishes the
rename and prepares the repo to be called as a rein rather than run
standalone.
Task: Repo-identity rename (this session)
Local directory (~/agent-harness → ~/rein-aharness), git remote
(coulomb/agent-harness.git → coulomb/rein-aharness.git, already
renamed on Forgejo by the operator), pyproject.toml [project].name,
and self-referencing prose in README.md/INTENT.md. Does not
touch the CLI command name, Python package name, or deploy artifacts —
see next task.
id: HARNESS-WP-0002-T01
status: done
priority: high
state_hub_task_id: "bf04ed50-cbe2-4f8f-9876-d06c579d19e6"
Task: Deploy/package rename (deliberate follow-up, needs a maintenance window)
Rename the parts of this repo that a mechanical identity rename would
otherwise silently break, because they touch a live Railiance
deployment: the agent-harness CLI command, the agent_harness Python
package directory, the Docker image tag, the k8s namespace/labels/
ConfigMap names, the Railiance host directory, and
deploy/scripts/railiance-smoke.sh's env var and paths.
Code/config side done (2026-07-26):
agent_harness/→rein_aharness/(git mv+ all internal imports)pyproject.toml:[project.scripts]→rein-aharness = "rein_aharness.cli:main"; wheel package nameContainerfile:COPY rein_aharness,ENTRYPOINT ["rein-aharness"]Makefile:IMAGE/TAR→rein-aharness:railiance01/rein-aharness-railiance01.tar;deploy-rsynctarget pathdeploy/k8s/railiance/*.yaml: namespace/labels/names/image allrein-aharnessdeploy/scripts/railiance-smoke.sh:AGENT_HARNESS_ROOT→REIN_AHARNESS_ROOT, default checkout path, AppRole env source path (SSH host alias for Forgejo left untouched — that's an external~/.ssh/configentry, not owned by this repo)- In-repo identity strings updated too:
hub.py'ssourcefield,metrics.py'sharnessfield default,intake.py'sDEFAULT_ASSIGNEE,cli.py'sargparseprog name, commit author identity insmoke.py/tenant_onboard_runs.py - Verified: 47/47 tests pass,
rein-aharnessCLI runs correctly from a fresh venv,docker buildsucceeds and the built image runs (ENTRYPOINT/CMDdispatch correctly) deploy/README.mdgained an explicit rename cutover checklist for the parts this session cannot safely do unattended: moving the host-side secrets dir (~/.local/agent-harness→~/.local/rein-aharness) and checkout (~/agent-harness→~/rein-aharness) on railiance01 itself, and not deleting the old k8s namespace until the new one is confirmed working
Still open — the actual live cutover: running the checklist on
railiance01, rebuilding+importing the image there, applying the renamed
k8s manifests, and running the host smoke script against the live
deployment. Not attempted from this session — real production surgery
on binky-control's live automation, needs the operator present for
the actual host-side moves and a confirmed rollback point.
id: HARNESS-WP-0002-T02
status: progress
priority: medium
state_hub_task_id: "7c5d23cd-d7fd-4c79-8847-448b83feb673"
Task: Implement the glas-harness rein contract
Once glas-harness GLAS-WP-0001-T01 defines the harness contract
(start_session/dispatch_tool/end_session or equivalent), adapt this
repo's runner.py/adapter.py to expose it, so glas-harness can call
into rein-aharness instead of rein-aharness only running itself via
its own CLI/poll loop.
Partially done, live-proven at the coarse level (2026-07-26):
glas-harness's glas_harness/reins/rein_aharness.py implements the
contract today by shelling out to agent-harness run --task-file ...
as one opaque dispatch_tool call — proven live end-to-end (real
ext.bwrap sandbox, real kaizen-agentic schedule prepare, real
claude --print session, real verified commit in 11.4s). Still
open: this repo does not itself expose per-tool-call hooks — glas-harness
cannot yet intercept/policy-check individual tool calls mid-session,
only the whole run as a unit. That deeper refactor (runner.py driving
the Claude Code session turn-by-turn rather than one claude --print
call) is what remains of this task.
id: HARNESS-WP-0002-T03
status: progress
priority: high
state_hub_task_id: "228e999c-807b-4456-a286-4e3ab4fc8e90"
Task: Decide scheduling/blueprint coupling boundary
This repo depends directly on kaizen-agentic (blueprints) and
activity-core/issue-core (task intake). Decide, once
rein-openweights exists as a second rein with a possibly different
triggering model, whether that coupling stays rein-local (each rein
sources its own tasks) or moves into glas-harness as a shared concern.
Record the answer in glas-harness/docs/adr/ before T03 forces the
question implicitly.
id: HARNESS-WP-0002-T04
status: todo
priority: low
state_hub_task_id: "31e2b763-8f04-4523-bd2b-ce4506b55700"