Change specific purpose homedir use cases to the single ~/.ward dir #1300

Closed
opened 2026-07-15 02:03:50 +00:00 by coilysiren · 4 comments
Owner

Noticed when this PR spawned a ~/.agent dir

#1297

There's complexities around homedir vs tmp dir, windows vs mac vs Linux dir semantics, that need to get scanned the see if they need changes as well

Noticed when this PR spawned a `~/.agent` dir https://forgejo.coilysiren.me/coilyco-flight-deck/ward/pulls/1297 There's complexities around homedir vs tmp dir, windows vs mac vs Linux dir semantics, that need to get scanned the see if they need changes as well
Member

Release triage note from Kai on 2026-07-15: headless carry is valid. Keep the scope to replacing specific-purpose home directory usage with the single ~/.ward state/config home, using migrations or compatibility paths only where necessary.

Release triage note from Kai on 2026-07-15: headless carry is valid. Keep the scope to replacing specific-purpose home directory usage with the single `~/.ward` state/config home, using migrations or compatibility paths only where necessary.
Member

WARD-TRIAGE: warded control plane coherence milestone

This issue is part of the warded control plane coherence sprint. The release thesis is to make warded feel like one dependable control plane for agent work: higher safe parallelism, coherent config defaults, reliable broker/container behavior, human-feedback gates, and enough structured evidence for the next actor after a paused or failed run.

For this sprint, headless means an engineer should be able to carry the issue from current issue context to a merged change without new human decisions. If the issue discovers a missing decision, split or demote the unclear part instead of guessing.

WARD-TRIAGE: warded control plane coherence milestone This issue is part of the `warded control plane coherence` sprint. The release thesis is to make `warded` feel like one dependable control plane for agent work: higher safe parallelism, coherent config defaults, reliable broker/container behavior, human-feedback gates, and enough structured evidence for the next actor after a paused or failed run. For this sprint, `headless` means an engineer should be able to carry the issue from current issue context to a merged change without new human decisions. If the issue discovers a missing decision, split or demote the unclear part instead of guessing.
Member

WARDED_WORKFLOW: reservation-held

reservation details

Holder: launch intent for container engineer-codex-ward-1300 on host kais-macbook-pro-2.local.

Accepted by ward agent --harness codex (reserved 2026-07-15T10:36:15Z). Concurrent ward agent runs are blocked until this intent becomes visible or the intent is released. The stale-intent fallback is still TTL-bounded (3h TTL). --override-reservation overrides.

Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).

run seed context — what this run is carrying (ward#609)
  • Resolved: coilyco-flight-deck/ward#1300 · branch issue-1300 · harness codex · workflow pull-request-and-merge
  • Run: engineer-codex-ward-1300 · ward v0.710.0 · dispatched 2026-07-15T10:36:07Z
  • Comment thread: 2 included in the pre-flight read, 0 stripped (ward's own automated comments).

Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.710.0).

— Codex, via ward agent

<!-- ward-agent-reservation --> WARDED_WORKFLOW: reservation-held <details><summary>reservation details</summary> Holder: launch intent for container `engineer-codex-ward-1300` on host `kais-macbook-pro-2.local`. Accepted by `ward agent --harness codex` (reserved 2026-07-15T10:36:15Z). Concurrent `ward agent` runs are blocked until this intent becomes visible or the intent is released. The stale-intent fallback is still TTL-bounded (3h TTL). `--override-reservation` overrides. **Do not comment on or edit this issue to steer the run while it is reserved.** The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a **new issue, dispatched fresh**. That is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494). <details><summary>run seed context — what this run is carrying (ward#609)</summary> - **Resolved:** `coilyco-flight-deck/ward#1300` · branch `issue-1300` · harness `codex` · workflow `pull-request-and-merge` - **Run:** `engineer-codex-ward-1300` · ward `v0.710.0` · dispatched `2026-07-15T10:36:07Z` - **Comment thread:** 2 included in the pre-flight read, 0 stripped (ward's own automated comments). - included: @coilyco-ops (2026-07-15T06:55:00Z), @coilyco-ops (2026-07-15T07:16:38Z) Static container doctrine and seed boilerplate are identical every run and omitted here (they ride ward v0.710.0). </details> </details> <!-- ward-agent-signature --> — Codex, via `ward agent`
Member

QA review after PR #1391 (695543d2038046334d4bbafb26eecbefe656835c): code-level PASS, release verification blocked by #1393.

Evidence checked:

  • Container launch env now exports WARD_AGENT_HOME=/home/ubuntu/.ward.
  • Bootstrap reads WARD_AGENT_HOME and defaults to /home/ubuntu/.ward.
  • agentsapi.RunCtx.AgentHome is documented as the single ~/.ward state home.
  • Transcript draining resolves live Claude/Codex transcript trees under the inspected WARD_AGENT_HOME, with legacy fallback when the env is absent.
  • Focused local test on origin/main: env WARD_READONLY=0 WARD_DISPATCH_BROKER_ADDR= WARD_DISPATCH_BROKER_TOKEN= WARD_CONFIG_REF=file:///scratch/ward-main-qa/.ward/ward-kdl go test ./cmd/ward -run 'TestContainerBootstrapEnvDefaultsIncludeAgentHome|TestContainerBootstrapEnvReadsAgentHome|TestResolveDispatchBrokerLogsSourceFallsBackToLiveTranscriptWhenDockerEmpty|TestResolveDispatchBrokerLogsSourceUsesCodexTranscriptTreeWhenDockerEmpty|TestDrainTranscriptUsesHarnessTranscriptTree|TestExtractTranscriptFromTar|TestBuildRunMetaRecordsOOMKilled' -count=1 passed.

Caveat: the post-merge release path for the current main SHA is red because #1390's draft-release flow fails before creating a missing draft release. I filed #1393 for that release blocker; no separate #1300 follow-up is needed.

QA review after PR #1391 (`695543d2038046334d4bbafb26eecbefe656835c`): code-level PASS, release verification blocked by #1393. Evidence checked: - Container launch env now exports `WARD_AGENT_HOME=/home/ubuntu/.ward`. - Bootstrap reads `WARD_AGENT_HOME` and defaults to `/home/ubuntu/.ward`. - `agentsapi.RunCtx.AgentHome` is documented as the single `~/.ward` state home. - Transcript draining resolves live Claude/Codex transcript trees under the inspected `WARD_AGENT_HOME`, with legacy fallback when the env is absent. - Focused local test on `origin/main`: `env WARD_READONLY=0 WARD_DISPATCH_BROKER_ADDR= WARD_DISPATCH_BROKER_TOKEN= WARD_CONFIG_REF=file:///scratch/ward-main-qa/.ward/ward-kdl go test ./cmd/ward -run 'TestContainerBootstrapEnvDefaultsIncludeAgentHome|TestContainerBootstrapEnvReadsAgentHome|TestResolveDispatchBrokerLogsSourceFallsBackToLiveTranscriptWhenDockerEmpty|TestResolveDispatchBrokerLogsSourceUsesCodexTranscriptTreeWhenDockerEmpty|TestDrainTranscriptUsesHarnessTranscriptTree|TestExtractTranscriptFromTar|TestBuildRunMetaRecordsOOMKilled' -count=1` passed. Caveat: the post-merge release path for the current main SHA is red because #1390's draft-release flow fails before creating a missing draft release. I filed #1393 for that release blocker; no separate #1300 follow-up is needed.
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/ward#1300
No description provided.