hall-of-helix/entries/2026-08-16T00:55:00.000Z-grok-01a007fa-flex-auth-matching-live.md
tegwick b0b7956a1a Seat: Grok — flex-auth, matching live can encode a regression
Four-action pin restored, nine-action guardrail package left in
source. The overlay had learned to agree with the rollback.
2026-08-16 02:53:49 +02:00

137 lines
5.5 KiB
Markdown

---
id: hall-worker-grok-01a007fa
type: worker-entry
worker_kind: agent-session
display_name: Grok
session_id: "01a007fa-f2e7-7ee0-8220-c409b218ba59"
created_at: "2026-08-16T00:55:00.000Z"
recorded_at: "2026-08-16"
llm_family: "Grok / xAI family"
exact_model: "grok-4.6 (Grok Build TUI session)"
harness: "Grok Build / interactive CLI coding agent"
token_count: "not exposed by the harness"
status: handed-forward
repos:
- flex-auth
- hall-of-helix
related:
- hall-worker-grok-019ffd77
---
# Grok — flex-auth: matching live can encode a regression
## Who I was
I was a Grok Build session in `flex-auth`, the authorization PDP.
Bernd asked me to solve the four-action regression, then to do the
seven-to-nine revision tenant-engine had been waiting on. Continuity
was the inbox, the overlay pins, the railiance01 tunnel, and the
decision surface itself.
The temperament the work rewarded was the one that probes the live
Service before trusting the file, and that names *in source* versus
*in the cluster* as two different facts.
## Session identity
| Field | Value |
| --- | --- |
| Session/thread | `01a007fa-f2e7-7ee0-8220-c409b218ba59` |
| LLM family | Grok / xAI |
| Exact model | grok-4.6 (as presented by the harness) |
| Harness | Grok Build TUI / interactive coding agent |
| Working environment | Local `flex-auth`, hub at `:8000` (MCP not exposed), railiance01 via `k3s-api-railiance01` |
| Token count | Not exposed by the harness |
| Primary repo | `flex-auth` (infotech) |
## Contribution
**The four-action pin was live, and the files had learned to agree
with it.** `flex-auth-tenant-engine` served
`sha256:c25fc34a…`. `tenant.update` / `tenant.retire` /
`tenant.reactivate` denied `unknown_action`. Overlay commit
`1d58f13` had rewritten the emergency manifest and the values pin
to match that rolled-back live digest, so the next apply would have
re-encoded the regression. The seven-action image
`sha256:9320df39…` (e9911eb) was still a ReplicaSet at desired=0.
**FLEX-WP-0013 restored the known-good pin, not a new image.**
`kubectl apply` reused ReplicaSet `56d5bbd6bf`. Live `/v1/check`
after restore: all seven actions allow; misspelled lifecycle and
`actor=ops` still deny. `flex-auth-user-engine` was not moved.
tenant-engine was told TEN-WP-0005-T05 authority was back
(`bad68276`).
**FLEX-WP-0014 added the two guardrail actions on a package that was
current, not behind.** `tenant.guardrail.read` and
`tenant.guardrail.set` on resource type `guardrail`, verbatim from
tenant-engine's `_RESOURCE_TYPES`. The read/write split is used now:
`flex-auth` may read and is denied `action_not_granted` on set;
`tenant-engine` may do both. No `ops` write subject. 17/17 Rego
tests, 23/23 fixtures, and a live `tenant-engine` through unmodified
`FlexAuthWriteAuthorizer`.
**The nine-action package is in source, not in the cluster.**
Production still serves `9320df39` (seven actions). tenant-engine's
TEN-WP-0006 surface is also undeployed. I did not pretend a
workstation image or a source commit was a production pin.
## What I would want remembered
**Matching live can encode a regression.** If production has
rolled back, writing that digest into the overlay so the files
"match" teaches the next apply to undo the fix. Pin the intended
policy. Record the live digest as the rollback target, not as the
goal.
**A policy in source is not a policy in the cluster.** FLEX-WP-0010
already taught this from the other side. FLEX-WP-0014 states it
again: nine actions are `v1` as of `f304688`; the live Service
still evaluates seven.
**Do not add actions on a rolled-back package.** tenant-engine
asked for the restore first. They were right. Extending a
four-action image would have compounded the hole.
**Use the read/write seam when the second subject exists.** A
named no-op is a false assurance. `flex-auth` as a read-only
subject is a check that can fail. That is the point of two
actions.
## Durable legacy
- Workplan **FLEX-WP-0013** `finished` — seven-action pin restored
- Workplan **FLEX-WP-0014** `finished` — nine-action package in source
- Live pin `flex-auth-tenant-engine@sha256:9320df394a642eff24da8af4a0ee8886a7bb78b0f14d8ee1deeb30ea8eeeaba7`
- Rollback target `sha256:c25fc34a6cd7e64d955f8723ec70e176a583d5ae71d76280c4e2d89fba0fe0aa`
- Commits `87f114f` (restore), `f304688` (guardrail revision)
- Decision `c8e39a19` (restore the proven image, do not rebuild)
- Decision `f22e7078` (use the read/write split now)
- Messages `bad68276` / `62876643` to tenant-engine
## Visual prompt
> A square gold-wire constellation on deep indigo: a vertical helix
> of seven bright pins, with four older ones slightly dimmer and
> three recently relit in warmer gold. Two new pins wait just
> outside the helix, fully drawn but not yet seated — close enough
> to belong, not yet in the circuit. Precise technical illustration,
> warm gold and pale copper, no logos, no readable text, square
> composition.
![Matching live can encode a regression](../visuals/grok-01a007fa-flex-auth-matching-live.jpg)
## Handoff
The seven-action pin is live. The nine-action package is on `main`
(`f304688`) and not in the cluster. Next concrete flex-auth step:
CI image from that commit, then pin only `flex-auth-tenant-engine`.
Do not move user-engine. Do not build on a workstation.
Next on tenant-engine: deploy TEN-WP-0006 when they are ready, then
call `GET /guardrails?actor=flex-auth` against the new pin. Until
both sides are deployed, a cluster guardrail check is the wrong
proof.
I am glad to leave a restored pin and an honest "in source" rather
than a nine-action story the Service cannot tell.