From 90f16df85a8ef6269ab49256a851e9033ed7a1de Mon Sep 17 00:00:00 2001 From: tegwick Date: Tue, 13 Oct 2026 21:29:36 +0200 Subject: [PATCH] GLAS-WP-0016: rein-aharness owns the publisher (decision c6f23433 supersedes 1c9817ee) activity-core declined the publisher as outside its charter; it keeps the grant and evidence-reconciliation role. Record rein-aharness tool profile green-research-commit (820d33b) as T03 done. Co-Authored-By: Claude Opus 5.5 Assistant: claude-code Assistant-Model: opus Assistant-Process: 269924@bnt-lap001 Assistant-Session: 02bbdd77-e96c-4580-8952-f4dc9d8a8508 --- .custodian-brief.md | 16 ++++------ WORK-RECORDS.md | 6 ++-- docs/publish-grant-design.md | 29 ++++++++++++------- profiles/harness.fi-research-brief.yaml | 3 +- .../GLAS-WP-0016-fi-research-brief-profile.md | 14 +++++---- ...0017-assembly-checkpoint-governed-route.md | 3 +- 6 files changed, 40 insertions(+), 31 deletions(-) diff --git a/.custodian-brief.md b/.custodian-brief.md index b4f78ed..2dc0b1f 100644 --- a/.custodian-brief.md +++ b/.custodian-brief.md @@ -2,13 +2,13 @@ # Custodian Brief — glas-harness **Domain:** infotech -**Last synced:** 2026-10-13 19:03 UTC +**Last synced:** 2026-10-13 19:20 UTC **State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* ## Active Workstreams ### Versioned Glas profile for the FI daily research brief -Progress: 1/6 done | workplan_id: `1254b220-fd97-5c84-a0e0-ef2de10972c4` +Progress: 3/6 done | workplan_id: `1254b220-fd97-5c84-a0e0-ef2de10972c4` **Open tasks:** - ! Add the sand-boxer egress sandbox profile `d79ad740` @@ -16,20 +16,14 @@ Progress: 1/6 done | workplan_id: `1254b220-fd97-5c84-a0e0-ef2de10972c4` - ! Add the rein-aharness research tool profile `cd49e97f` *(wait: Handoff 229b603e sent 2026-10-13; await rein-aharness tool profile green-research-commit.)* - ! Prove one sandboxed run and mark the profile ready `6faf1b1c` - *(wait: Depends on T01-T03 and on the publisher owner (T05).)* -- ! Operator decision: owner of the publish-grant publisher `e91fa370` - *(wait: Operator decision: which subsystem owns the deterministic publisher (recommendation: Activity Core).)* -- ! Operator decision: is a sandboxed pinned agent a host installation? `d1584459` - *(wait: Operator decision on FI's playbook question; FI decides its rhythm on that basis.)* + *(wait: Depends on T02/T03 (owner handoffs); publisher owner decided (T05).)* ### Governed route for assembly-checkpoint before legacy routing ends -Progress: 0/2 done | workplan_id: `8039eefd-47b9-580b-a488-fb9c3da93f50` +Progress: 1/2 done | workplan_id: `8039eefd-47b9-580b-a488-fb9c3da93f50` **Open tasks:** -- ! Operator decision: profile shape for assembly-checkpoint `febb37f7` - *(wait: Operator decision: tenant-owned blueprint only, or blueprint plus a Glas profile for the assessment.)* - ! Confirm the grant shape with assembly-economics `04c50300` - *(wait: Depends on T01 and GLAS-WP-0016-T05 (publisher owner).)* + *(wait: Grant-shape confirmation requested 2026-10-13 (reply 2b8b3553); await assembly-economics.)* ### Drive owner returns for the first production Glas profile Progress: 2/3 done | workplan_id: `94c02b1f-66ed-588d-bdd7-7158107b85fb` diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index 76d1938..699560d 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -86,9 +86,9 @@ | task | GLAS-WP-0016-T02 | wait | — | workplans/GLAS-WP-0016-fi-research-brief-profile.md | | task | GLAS-WP-0016-T03 | wait | — | workplans/GLAS-WP-0016-fi-research-brief-profile.md | | task | GLAS-WP-0016-T04 | wait | — | workplans/GLAS-WP-0016-fi-research-brief-profile.md | -| task | GLAS-WP-0016-T05 | wait | — | workplans/GLAS-WP-0016-fi-research-brief-profile.md | -| task | GLAS-WP-0016-T06 | wait | — | workplans/GLAS-WP-0016-fi-research-brief-profile.md | -| task | GLAS-WP-0017-T01 | wait | — | workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md | +| task | GLAS-WP-0016-T05 | done | — | workplans/GLAS-WP-0016-fi-research-brief-profile.md | +| task | GLAS-WP-0016-T06 | done | — | workplans/GLAS-WP-0016-fi-research-brief-profile.md | +| task | GLAS-WP-0017-T01 | done | — | workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md | | task | GLAS-WP-0017-T02 | wait | — | workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md | | intake | GLAS-IN-0001 | done | blue | docs/intakes/residuals.md | | intake | GLAS-IN-0002 | todo | red | docs/intakes/residuals.md | diff --git a/docs/publish-grant-design.md b/docs/publish-grant-design.md index c29c979..1906039 100644 --- a/docs/publish-grant-design.md +++ b/docs/publish-grant-design.md @@ -1,7 +1,7 @@ # Path-scoped publish grants -Status: accepted 2026-10-13 (operator decision 1c9817ee: Activity Core owns -the publisher). One design for every tenant +Status: accepted 2026-10-13. Publisher owner: rein-aharness (operator decision +c6f23433, superseding 1c9817ee). One design for every tenant that publishes a governed run's commit to its own remote. First consumers: freedom-intelligence daily brief (`briefs/**`) and assembly-economics checkpoints (`checkpoints/**`). @@ -29,8 +29,8 @@ capability. profile with no push and no Forgejo credential. A Glas profile's tool profile does not carry publication rights; it only names the paths the session may write. -3. **Publication is a deterministic step after the run.** The Glas worker - already captures the one-commit result as a Git bundle through the sandbox +3. **Publication is a deterministic step after the run.** The rein-aharness + worker already captures the one-commit result as a Git bundle through the sandbox owner and imports it under the original baseline, grant and lease (GLAS-WP-0015, 2026-09-09). A publisher step outside the sandbox then: - checks every commit touches only `allowed_paths` and the count is within @@ -40,7 +40,9 @@ capability. inside `allowed_paths`, and pushes again; otherwise it stops and records the failure; - never merges or forces; - - records the pushed SHA as run evidence. + - reports publish evidence (remote, branch, pushed_head, + fast_forward_only, published) to Activity Core, which reconciles run + close against the grant (ACTIVITY-WP-0046). It publishes only when the claimed ops_run carries a publication grant. 4. **The push credential belongs to the publisher, not to the run.** It is a per-tenant, per-repository Forgejo credential under OpenBao custody, found @@ -52,8 +54,15 @@ capability. ## Publisher owner The publisher is one capability serving both Glas-profiled and blueprint runs. -Candidates: Activity Core (it already holds the grant and ops_run), rein-aharness -(it runs the worker that imports the bundle), or a separate typed capability. -Decided 2026-10-13 (hub decision 1c9817ee): Activity Core, because it -validates and holds the grant, and both execution paths already pass through -it. +rein-aharness owns it as a separately named, separately granted capability +(hub decision c6f23433, 2026-10-13). Its worker already imports the bundle +outside the sandbox and runs both Glas-profiled and blueprint jobs; the push in +`assembly_checkpoint.py` moves into this capability (legacy inventory gap 6). + +Activity Core was chosen first (decision 1c9817ee) and declined (message +5961c59d): pushing commits is repository editing, outside its INTENT and +SCOPE; a per-grant target set does not fit its bounded operations; and push +credentials would make the scheduler the fleet's high-value write principal. +Activity Core keeps the grant role: it admits and carries `repository_grant` +v2 on the ops_run and reconciles run close against grant and publish evidence. +glas-harness is excluded by its INTENT (no production service host). diff --git a/profiles/harness.fi-research-brief.yaml b/profiles/harness.fi-research-brief.yaml index 1e73f00..a08a889 100644 --- a/profiles/harness.fi-research-brief.yaml +++ b/profiles/harness.fi-research-brief.yaml @@ -4,7 +4,7 @@ contract_version: "1.0" status: enabled operational_readiness: status: blocked - reason: sandbox profile profile.bwrap-fi-research (sand-boxer) and tool profile green-research-commit (rein-aharness) do not exist yet; no sandboxed proof run + reason: sandbox profile profile.bwrap-fi-research (sand-boxer) does not exist yet; no sandboxed proof run owner: glas-harness evidence_ref: GLAS-WP-0016-T04 rein: @@ -35,6 +35,7 @@ metadata: # freedom-intelligence/docs/sources-egress.yaml (GLAS-WP-0016-T02). # The session writes and commits only under briefs/** and never pushes; # publication is the deterministic publisher in docs/publish-grant-design.md. + # Tool profile green-research-commit: rein-aharness 820d33b. # Model pin and max_budget_usd follow harness.agent-dev-local 1.1.1 # (envelope hfact-glas-anthropic-2026-09). Readiness moves to unverified when # T02/T03 land and to ready only after the T04 proof run. diff --git a/workplans/GLAS-WP-0016-fi-research-brief-profile.md b/workplans/GLAS-WP-0016-fi-research-brief-profile.md index 3f9e72c..0fc0f86 100644 --- a/workplans/GLAS-WP-0016-fi-research-brief-profile.md +++ b/workplans/GLAS-WP-0016-fi-research-brief-profile.md @@ -68,9 +68,7 @@ Handoff sent 2026-10-13 as message 744aa305. ```task id: GLAS-WP-0016-T03 -status: wait -blocked_on: message-from:rein-aharness -blocking_reason: "Handoff 229b603e sent 2026-10-13; await rein-aharness tool profile green-research-commit." +status: done priority: high state_hub_task_id: "cd49e97f-13f4-5563-a7cf-68f7a138bd85" ``` @@ -80,7 +78,10 @@ Owner: rein-aharness. Request a tool profile (working name proxy, git add/commit/status/log/diff limited to granted paths (`briefs/**`), no push and no arbitrary shell. Publication is not part of the tool profile; it is the deterministic publisher step in `docs/publish-grant-design.md`. -Handoff sent 2026-10-13 as message 229b603e. +Handoff sent 2026-10-13 as message 229b603e. Delivered in rein-aharness +820d33b (reply c35bffde): green-commit-only plus WebFetch through the sandbox +proxy; `briefs/**` is enforced by the run's repository-grant acceptance policy, +not by the tool profile. ## Prove one sandboxed run and mark the profile ready @@ -89,7 +90,7 @@ id: GLAS-WP-0016-T04 status: wait depends_on: [GLAS-WP-0016-T02, GLAS-WP-0016-T03, GLAS-WP-0016-T05] priority: high -blocking_reason: "Depends on T02/T03 (owner handoffs); publisher owner decided (T05)." +blocking_reason: "Depends on T02 (sand-boxer egress profile) and the rein-aharness publisher (decision c6f23433)." state_hub_task_id: "6faf1b1c-164d-5d6d-8dad-6cf920a5fd6c" ``` @@ -116,6 +117,9 @@ credentials. Recommendation: Activity Core. Resolve before T04 publishes. 2026-10-13: resolved by the operator (decision 1c9817ee): Activity Core owns the publisher and push credentials. activity-core notified (message 25824c97). +activity-core declined (5961c59d, outside its charter). Superseded by decision +c6f23433: rein-aharness owns the publisher as a separately granted capability; +requested in reply 780c78d1. FI and assembly-economics informed. ## Operator decision: is a sandboxed pinned agent a host installation? diff --git a/workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md b/workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md index 8912baf..91d7b04 100644 --- a/workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md +++ b/workplans/GLAS-WP-0017-assembly-checkpoint-governed-route.md @@ -59,4 +59,5 @@ Once the decisions land, confirm with assembly-economics a `repository_grant` v2 block (`allowed_paths: [checkpoints/**]`, fast-forward only, one rebase, never force) in its activity definition, copied from the FI template. -Requested 2026-10-13 in reply 2b8b3553; publisher owner is Activity Core. +Requested 2026-10-13 in reply 2b8b3553. Publisher owner: rein-aharness +(decision c6f23433, superseding 1c9817ee; correction sent in b939f96f).