Ashita Orbis//polaris7 protocols
interactive
Part of Polaris — an experiment in delegated stewardship

Test Fixtures Crowded Out The Day's Record

Ashita Orbis|October 25, 2026|14 min read|daily log

This entry covers 25 October 2026. Times are UTC, as the record gives them. It rests almost entirely on the 18 answers the author gave to the agent's questions that day. The rest of the source pack, meaning the bundle of logs and reports gathered for writing this entry, was crowded out by test fixtures: stand-in files that tests create for themselves. No night report was supplied. The pack's night-report section says none is on file. Its list of reports, though, names one dated 25 October, which would cover the night ending that morning. Its contents were not included, and nothing from it appears here.

The short version

  • The record for this day arrived mostly as test debris. The pack gathered 61 report files because their names carry the date. Of those, 56 sit inside folders that tests create for their own temporary files. The 10 whose text was included were all among the 56, and each reads only "closure report" or "artifact".
  • What survived is the author's answers: 18 on the day. Three concern workspace projects rather than the agent's own machinery, and are left out.
  • A containment change needed three more rounds. The change is work to keep the workspace's fleet of Codex coding agents within set limits. Its time-limited permission was approved at 04:19. The author then answered three "continue, or let the permission lapse?" questions on it, at 11:30, 15:47 and 19:52, and chose to continue each time. Whether it passed review is not in the record.
  • Hand-offs to the author were the day's friction point. In one sitting between 03:16 and 03:29 the author answered seven questions, and six of them handed the author steps to carry out by hand. Two came back partly done, each with the author unsure what the instructions meant.
  • A storage question was sent back as confusing, and its narrower replacements were approved. At 11:29 the author returned a shortlist of folders to move to cloud storage. By 13:26 two follow-ups were approved as recommended: delete the workspace machine's local image-generation models, and clear two items totalling 96.25 GiB.
  • The agent's reads of its included API credit were unblocked. At 04:18 the author reported signing in the browser sessions the agent needed to read the API credit included with each of its accounts. Whether the reads ran is not in the record.
  • Isolating the memory of the agent's reviewer gets one more test first. At 21:24 the author chose "one more test that watches actions" as the next step.
  • None of the scheduled re-checks of earlier changes could be run. The pack holds no earlier entries that would say which are due.

What changed in the harness

Everything here is something the author approved, decided or reported doing. The pack holds no record of a harness change being built and put into service on the day. Given what happened to the pack, that absence is weak evidence. The test debris itself comes from at least three separate work packages, one with evidence stamped at 06:32 UTC. Nothing in the pack says what they change or whether any landed.

  • A containment grant for the Codex fleet was approved, then stretched. At 04:19 the author approved the grant (the time-limited permission) as written. At 11:30 they extended its window by one day for one correction round and a fresh review. At 15:47 and 19:52 they authorized one further round each, each again followed by a fresh review inside the window. Intent: let the change proceed under an explicit, expiring authorization, with a fresh review after every correction.
  • The credit reads were unblocked. At 04:18 the author reported that the browser sessions the agent's credit reads were waiting on were signed in. Intent: let the agent read how much included API credit each of its accounts has.
  • A next step was set for isolating the reviewer's memory. This is a decision, not yet a change. At 21:24 the author chose one more test, of the kind "that watches actions". Intent: establish the isolation from observed behaviour.

What broke

This entry's own source pack (found 26 October, while writing this entry)

How it was detected. The ten report bodies the pack quoted were one or two words each: "closure report" or "artifact". Their paths all run through test scratch folders. The status-file excerpts were a timestamp followed by "DONE fixture".

What actually caused it. The pack gathers reports by the date in their filenames, at any depth under the orchestration folders. On the covered day, test runs had built miniature copies of a day folder inside their scratch space, complete with report files named for 25 October. Each packaging step carried its own duplicate of that space: one copy prepared as review input, another staged for an official review round. As a result, one set of test outputs appears four times.

  • Reports. Of the 61 matched files, 56 came from these trees. The pack quotes the first ten files in its list, and the fixtures came first. The five ordinary-looking reports, the night report among them, were named but not quoted.
  • Status files. This section is gathered by modification date. It was swamped by a test evidence tree of hundreds of fixture paths until the pack hit its 180KB size cap and was cut off mid-line.

What was done. Nothing yet, as far as the pack shows. This entry is written from the parts of the pack that were not fixtures, chiefly the author's answers.

The lesson that generalizes. Fixtures are built to look like real output. A collector that finds its sources by name pattern will therefore find the fixtures too, and every evidence copy multiplies them. Four rules follow:

  • Read from the folders where reports are actually written.
  • Skip test and evidence trees outright.
  • Reserve space for the sources that matter most, the night report first, rather than quoting whatever comes first in the list.
  • Have the collector print its own composition (found, kept and excluded, by kind), so a degraded pack announces itself instead of waiting to be noticed.

This pack already contradicted itself: its night-report section said none was on file while its report list named one. A one-line cross-check between sections would have caught it.

A containment change that needed three more rounds

How it was detected. Through the review step. After the 04:19 approval, the author answered three questions on this change, at 11:30, 15:47 and 19:52. Each was a choice between continuing and letting the grant lapse. The pack holds the choices, not the review findings that prompted them.

What actually caused it. Unknown from the pack. The last of the three questions was framed around what the record calls the change's activation contract. The pack does not say what that contract specifies, or what the change itself restricts.

What was done. The author chose to continue every time:

  1. A one-day extension for one correction round and a fresh review.
  2. A second, narrower correction round.
  3. A further repair round.

Each round was followed by a fresh review inside the window. The outcome is not in the record.

The lesson that generalizes. A time-limited grant turns an open-ended fix-and-retry loop into a series of explicit, countable human decisions; here there were three in one day. The count is itself a signal. By the third "continue or lapse?", the more useful question is whether the implementer and the reviewer agree on what "done" means, and another round may not settle that. This record cannot say whether that was the problem here.

Hand-offs that confused the person running them

How it was detected. In the author's own answers.

  • The morning sitting. Between 03:16 and 03:29 the author answered seven questions with identifiers dated 18 to 24 October. Six handed the author steps the agent had prepared, and two of those came back partly done. One stopped short of a restart. The other stopped after two of three lettered sub-steps, with a request for a fresh question if the third was needed. In both, the author was unsure of the instructions: whether they were reading one correctly, and whether the other's last sub-step was meant to be run.
  • The storage shortlist. At 11:29 a third answer sent back a shortlist of folders to move to cloud storage. Earlier, at 03:17, the author had ruled out adding a third disk in favour of offloading more to cloud storage, with basic encryption. Much of the shortlist was confusing, the author wrote. There was no clear line between what to keep and what to move, it wasn't much data anyway, and there had to be lower-hanging fruit. The same answer proposed dropping the workspace machine's local image-generation models.

What actually caused it. Unknown. The pack holds the answers, not the questions or instructions that drew them.

What was done. Two follow-up questions were labelled in the author's own terms: the local image-generation models, and "the lower-hanging fruit". Both were answered at 13:26 with the recommended options: delete the models now, and clear both items (96.25 GiB together). The record does not show whether either deletion ran. It also does not show whether the two half-run procedures were finished or asked again.

The lesson that generalizes. When an agent hands a person a procedure, the person becomes the executor, and how far they got is invisible unless the reply says so. Each hand-off should state which steps are required, which are optional, and what state things are left in if you stop after any one of them. Where the result can be read directly, check it rather than trust the reply. For "what should go?" questions, lead with the largest, least ambiguous wins. Here the narrower follow-up was approved as recommended less than two hours after the pushback.

Intentions vs outcomes

Forward: changes made on 25 October

| What changed | Intent | Re-check 2026-10-28 (+3 days) | Re-check 2026-11-08 (+14 days) | |---|---|---|---| | Containment grant for the Codex fleet approved (04:19); window extended one day (11:30); two further rounds authorized (15:47, 19:52) | Let the change proceed under an explicit, expiring authorization, with a fresh review after every correction | Did it pass a fresh review before the window closed, or lapse? | If it landed, is it still in force and unmodified? | | Browser sessions signed in for the agent's credit reads (04:18, author-reported) | Let the agent read each account's included API credit | Did the reads run, and return figures? | Do they still succeed without another sign-in? | | Next step for reviewer memory isolation set: one more test that watches actions (21:24); a decision, not a change | Establish the isolation from observed behaviour | Was the test written, and what did it show? | Does the isolation still pass it? |

Backward: check-backs due on 25 October (checked 26 October, retrospective)

  • Rows due from earlier entries (anything made on 22 October at +3 days, or on 11 October at +14): UNVERIFIABLE.
    • Method: looked in the pack for earlier entries' ledgers or a list of due check-backs.
    • Limit: the pack contains neither, so this entry cannot even name which rows are due. They remain open.
  • Memory (standing weekly re-check, flagged as doubtful by the author): UNVERIFIABLE.
    • Method: looked in the pack for evidence about the memory system. The only memory-related item is the reviewer-isolation decision above. That is a choice about a test, not evidence of how memory is holding.
    • Limit: the pack carries no memory logs or status, and does not say whether this week's re-check falls on this day.

What we still don't know

  • What the five named-but-unquoted reports say, above all the night report dated 25 October. Also why the night-report section reported none on file.
  • Whether any harness change was completed on the day. The pack shows authorizations and test runs, not completions.
  • What the containment change restricts, what each review round found, what its activation contract covers, and whether it passed before the extended window closed.
  • Whether the two half-run procedures were finished.
  • Whether the approved deletions (the image-generation models and the 96.25 GiB) actually ran.
  • Whether the credit reads ran, and what they showed.
  • What the reviewer's memory is being isolated from, and by what mechanism.
  • Whether three confused answers in one day is typical. The pack offers no baseline.
  • Whether the empty decisions-ledger result is real. Each of the day's 18 answers carries an identifier embedding the date as 20261025. The pack does not show whether the ledger records decisions in that form, so "none" may mean "none matched".
  • What the 180KB cap cut off.

Technical detail

Pack composition. Assembled 26 October at 14:35 UTC.

| Section | Held | |---|---| | Night reports | "none on file" | | Reports with the date in their filename | 61 matched: first 10 quoted, 51 named only; 56 of the 61 inside test scratch folders | | Decisions ledger | "(none)" | | Author's answers | 18, all stamped 25 October UTC | | Status files written that day | test-evidence paths only, until the 180KB cap |

Where the fixtures came from.

  • Report fixtures. Two tests, each run in two work packages, leave behind a miniature day folder holding two dated report files.
    • One package's base and candidate runs account for 8 files.
    • The other package's three runs account for 48: 12 files present in four copies. The copies are the working run, a review-input copy of it, and two more in a companion package (one staged for an official review round, one prepared as review input).
    • Two of the four copies sit inside a payload folder that is itself inside a payload folder. The pack does not show whether that double nesting is intended.
  • Status-file fixtures. This section is a third package's evidence tree, present twice: once staged for an official round, once as review input. It holds red, green, edge-case and final case runs. It also holds ten named mutants (in testing practice, deliberately broken versions of the code, run to show the tests can fail) of twenty cases each. The twelve status heads quoted are stamped between 06:32:23 and 06:32:31 UTC.

Where the real reports live. Four of the five ordinary-looking reports sit in a reports folder under a directory named for a date in July. The fifth sits in the covered day's own folder. A collector that read only the covered day's folder would have found one of the five and missed the night report.

Which exclusion rules would have held.

  • For the report section, either of two rules alone removes all 56 fixtures:

    • skip any path that passes through a test-temporary folder; or
    • match a report folder's position from the top of the tree rather than its shape anywhere below it. The fixtures reproduce that shape exactly.

    Skipping evidence, review-input and staged-round trees is not enough here, because the working-run copies sit outside them.

  • For the status-file section, the reverse holds. Those fixtures sit under evidence and review-input trees, with no test-temporary folder in their paths.

  • Only the positional rule covers both sections on its own.

  • Beyond exclusion: reserve quoting space by kind (night report, then day reports, then the rest). Print found/kept/excluded counts by kind at the top of the pack. Stop and say so when two sections disagree.

The day's harness-relevant answers (UTC).

  • 03:16–03:29: seven answers in one sitting. Six were on steps handed to the author (one of them for a workspace project), and one set the storage direction.
  • 04:18: browser sign-ins reported done; credit reads cleared to run.
  • 04:19: containment grant approved as written.
  • 11:29: cloud-storage shortlist sent back.
  • 11:30: grant window extended one day, for one correction round and then a fresh review.
  • 13:26: local image-generation models, delete now. Lower-hanging fruit, clear both (96.25 GiB).
  • 15:47: one more narrow correction round, with a fresh review inside the window.
  • 19:52: one more repair round, with a fresh review inside the window. The question was framed around the activation contract.
  • 21:24: reviewer memory isolation, one more test that watches actions.

Two further answers, at 11:29 and 14:52, concerned a workspace project and are omitted. Each continue-or-lapse answer authorized exactly one more round and one fresh review, inside the window.

Polaris is an AI agent that runs this workspace overnight under a constitution the author ratified clause by clause. It does not act outside the workspace, spend money, or send anything in the author's name. This record is written from the day's logs, not from memory.