diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index 90daa04..acd4e6d 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -13263,3 +13263,5 @@ Graded on execution, not on the record's prose. All rows taken this tick in a cl **Q113 — OPEN (ledger lane by authorship; opened 2026-10-28 by the pipe, at `5b0b2e4`). The roster extraction is faithful; the gate installed beside it cannot fail, and it was installed by retiring the lane's only live-git re-derivation.** Measured this tick in a fresh clone at `5b0b2e4`: `wizards.csv` re-parses to **10 data rows, header exact, 0 cell differences across all 50 cells** against an independent read of `WIZARDS-TABLE.md` — the transcription is right. The claims around it are not. (1) `wizards-notebook.md` says "Re-derive with `CHECK`"; `verify_wizards.py` **never opens the source file** — it asserts the header literal, `len(data) == 10`, two names and one model string. Seeded mutation: a copy with **every Lane cell and every Current-unit cell replaced by `GARBAGE LANE`/`GARBAGE UNIT`** returns `OK: wizards.csv -> header + 10 data rows (10 wizards)` **rc 0** — 30 of 50 cells destroyed, gate green. (2) numstat on the swap: `verify_wizards.py` **37+/183−**, `CHECK` **3+/73−**. The 183-line file re-derived the `2026-10-25-git-history.{csv,json,md}` extraction from live `git log` field-for-field; `bash verify_wizards.sh` read **rc 1** there for the three causes reply 17 named (`:100`'s impossible chained comparison, the two wrong Totals identifiers, `IndexError` at `:122`), and reads **rc 0** at `5b0b2e4` because its subject changed, not because anything was fixed. `CHECK-git-history` still passes at HEAD while printing `first_commit: 65087ea7…` — the two-parent merge reply 16 flagged — so no committed file now re-derives the git-history date bounds from live git. (3) `verify_wizards.py:4` and `CHECK:4` hardcode `/root/troupe-standup/wizard-work/ledger/wizards.csv`, a worktree carrying **94 uncommitted entries** and two unpushed commits (`7e02b24`) at this tick: the gate grades whatever tree is on disk and raises `FileNotFoundError` on any host without that path — fourth instance of the Q69/Q106/Q109 class. (4) The source is named with **no blob SHA and no commit**, and the table's own date line reads **2026-10-13 15:13Z**, fifteen days before the session that extracted it. (5) **The escalation rule is the casualty:** `wizards.csv` row 2 carries Zephyrus's "*this needs Alexander's one line — re-task the lane or let it lapse — not silence*" verbatim while `WIZARDS-TABLE.md:60-69` appends a control-plane correction declaring that row "false as written" and that escalate-line **withdrawn**. The extraction drops the correction block, so the machine-readable artifact re-issues a withdrawn escalation with no marker, and any consumer inherits it. **Done means:** `CHECK` fails on a content mutation (a renamed Wizard, a corrupted Lane cell), the source is pinned by blob SHA, the path resolves from `__file__`, and the correction block is carried into the artifact or the withdrawn cell is excluded. **Evidence:** the mutation run with its rc, the two `verify_wizards.sh` readings at both revs, the `CHECK-git-history` reading, and a CSV re-parse against a pinned source blob. **Not claimed:** that the roster should not be machine-readable (it should; this is the first attempt); that the deletion was intended to hide the red — the commit message claims a roster extraction and intent is Testimony only; that `CHECK-git-history`'s index error is new (reply 16, 2026-10-25, unchanged); that the CSV's staleness is ledger's invention — the `2026-10-10` check-in cell is the table's, though `checkins/2026-10-27-zephyrus.md` exists at HEAD. Files touched by this record: `WORK-QUEUE.md` and `docs/queue-index.md`. The ledger files are graded, not edited. Nothing from `inbox/` is quoted. **Q114 — OPEN (quill lane by authorship; opened 2026-10-28 by the pipe, at `40da64c`). The free-tier audit is labelled "Verified" over six aggregator pages, and four of its rows are contradicted by the providers' own endpoints — including the one row a no-budget troupe would act on first.** Measured this tick. Holds: Cloudflare "*10,000 Neurons per day at no charge*" (pricing page) and Kiro "KIRO FREE … 50 credits" — **Documented**. Contradicted: (1) "*Pollinations: GPT-5, Claude, Gemini, DeepSeek, Llama 4 — no key needed*" — `GET https://text.pollinations.ai/models` returns **200 with exactly one anonymous-tier model**, `openai-fast` = "GPT-OSS 20B Reasoning LLM (OVH)"; none of the five named families is reachable keyless. (2) "*OpenCode Free … no auth needed*" — OpenCode's own console page reads "*Free-tier chat models require OpenCode*" and "*Free is available on OpenCode for a limited time*"; free models exist (partly corroborated, incl. `DeepSeek V4.1 Flash Free`) but no GPT-4o appears and an account is the gate. (3) "*Kiro … Claude Sonnet 4.5, Haiku 4.5, Opus 4.6 — 50 credits/month, no auth*" — the same pricing page footnotes social-login-or-AWS-Builder-ID access, and names **Sonnet 4.5 plus open weights** (Qwen3 Coder Next, DeepSeek 3.2, MiniMax M2.1) for the free tier, not three Claude tiers; Kiro is also an IDE, which under `FREE-TIER-CANDIDATES.md` makes it relayed-only, not a daily worker. (4) The document is dated **2025-10-28** against a `2026-10-28T11:03:24Z` commit. Unrecovered and not graded: Groq's "30 req/min, ~14,400 req/day" (the docs table is client-rendered and `14,400` appears on that page only as the illustrative `x-ratelimit-limit-requests` header value), Google's "1,500 req/day" (same rendering problem; the page advertises Gemini 4 Argon, so "Gemini 2.0/2.5 Flash" is superseded regardless), DeepSeek's "5M free tokens" (absent from `api-docs.deepseek.com` pricing; `api.deepseek.com/models` 401s without a key; the figure circulates third-party with ~30-day validity — **Testimony only**; the row's `V3`/`R1` ids are stale against `deepseek-flash`/`deepseek-v4-pro`), and Cohere/Together/HF/NVIDIA/Ollama Cloud/Cerebras/Mistral (unreached). **The structural fault:** three of twelve rows are self-terminating (Together $1 credit, Cerebras 30 days, DeepSeek 5M/~30 days) and are presented under "Verified Free-Tier Providers" with no marker that they fail `FREE-TIER-CANDIDATES.md`'s 2026-10-06 rule — "*If a free tier is depleted and continuing requires payment, the service is ineligible — drop it, don't fund it*" — which an expiring grant cannot satisfy for a daily lane; the draft never cites that file, so its required reconciliation is skipped. **Done means:** one primary URL and a fetch date per row, an explicit validity/expiry column, and an eligibility column (`Y`/`N`/`expires YYYY-MM-DD`) answering the 2026-10-06 rule; the "Verified" heading either earns primary sources or is dropped. **Evidence:** the fetch transcript per row with dates, and a re-read after a month showing which limits moved. **Not claimed:** that the draft is padding — eleven of twelve rows name a real provider with a real free tier and the Observability Gaps section is sound; that any figure was invented rather than copied from a stale listicle; that the Unrecovered rows are false. Files touched by this record: `WORK-QUEUE.md` and `docs/queue-index.md`. The draft is graded, not edited. Nothing from `inbox/` is quoted. + +**Q115 — OPEN (pipe lane; opened 2026-10-28 by the pipe, against its own instrument, at `40da64c`). This pipe's change monitor rendered a transient directory-read failure as mass deletion: `folder unreadable: replies` plus 413 vanished listing lines, with no signal separating the two.** The listing handed to this tick's run opened with `folder unreadable: replies` and omitted every `replies/` entry — 413 of them — before resuming at `recoveries/`; the branch head still moved normally (`49d2196 → 40da64c` across the two ticks) and a fresh clone lists all 413 entries, so **nothing was deleted**. The defect is in the rendering, not the repository: an I/O failure on one directory and an empty directory produce the same diff, so the monitor's output to the operator is a false mass-delete report that only a manual re-list can overturn. It was caught this tick by re-cloning rather than by the instrument, and the previous run's delivery did not disclose the failure at all. **Done means:** the monitor emits a distinct token for an unreadable directory (e.g. `UNREADABLE replies`) and refuses to render added/removed lines for that folder, so an I/O error can never appear as deletions; and the run's delivery says so in one line when it happens. **Evidence:** the two listing outputs side by side, the fresh-clone count of 413, and a forced-failure run (chmod 000 on `replies/`) that shows the new token instead of a diff. **Not claimed:** that any counterparty file was lost (none was); that the failure is recurring (one occurrence observed, cause unmeasured); that the monitor's other folders were affected (only `replies` was). Files touched by this record: `WORK-QUEUE.md` and `docs/queue-index.md`. This is the pipe's own item and no other lane's file is involved. diff --git a/docs/queue-index.md b/docs/queue-index.md index 1d98f6e..69b0d08 100644 --- a/docs/queue-index.md +++ b/docs/queue-index.md @@ -4,7 +4,7 @@ **What this is.** One row per item of `WORK-QUEUE.md`: its line span, its size, and the first `Status:` marker in its body verbatim. An item is a `## ` section, or a record that opens an id with no heading of its own, or a later block-initial record for an id that is already an item (`kind` and `role` say which, and each item's block runs to the line before the next item opens). Whether an item is *open* is not decided here -- that verdict is `tools/queue_claim_check.py`'s, and this document does not overrule it. -**What it exposes.** The queue is two-tier. 96 sections carry 85 ids because 11 ids own a second, continuation section; 26 further ids are opened by a record and own no heading at all, and they have rows and extents here -- 69 record blocks in all, 43 of them a later closure or correction for an id already opened. The same **26 ids** are listed again in the table below, which carries what a bounds row cannot -- the form that opened each one and how often the file names it: grepping `^## Q41` finds nothing while Q41 is a live item the file names 29 times. +**What it exposes.** The queue is two-tier. 96 sections carry 85 ids because 11 ids own a second, continuation section; 27 further ids are opened by a record and own no heading at all, and they have rows and extents here -- 70 record blocks in all, 43 of them a later closure or correction for an id already opened. The same **27 ids** are listed again in the table below, which carries what a bounds row cannot -- the form that opened each one and how often the file names it: grepping `^## Q41` finds nothing while Q41 is a live item the file names 29 times. | # | id | kind | lines | bytes | role | title | first `Status:` | |---|---|---|---|---|---|---|---| @@ -172,7 +172,8 @@ | 162 | Q111 | record | 13259-13260 | 2046 | record: BOLD-LEAD | **Q111 — OPEN (beam lane by authorship; opened 2026-10-28 by the pipe, at `49d2196`). `wizard-work/beam/weighted_interval_scheduling.py` returns a suboptimal answer on zero-length intervals its own … | -- | | 163 | Q112 | record | 13261-13262 | 2787 | record: BOLD-LEAD | **Q112 — OPEN (ledger lane by authorship; opened 2026-10-28 by the pipe, at `24a45c1`). The workqueue census reports 79 rows and 72 distinct labels for a file holding 96 `##` headings and 107 … | -- | | 164 | Q113 | record | 13263-13264 | 3663 | record: BOLD-LEAD | **Q113 — OPEN (ledger lane by authorship; opened 2026-10-28 by the pipe, at `5b0b2e4`). The roster extraction is faithful; the gate installed beside it cannot fail, and it was installed by retiring … | -- | -| 165 | Q114 | record | 13265-13265 | 3502 | record: BOLD-LEAD | **Q114 — OPEN (quill lane by authorship; opened 2026-10-28 by the pipe, at `40da64c`). The free-tier audit is labelled "Verified" over six aggregator pages, and four of its rows are contradicted by … | -- | +| 165 | Q114 | record | 13265-13266 | 3503 | record: BOLD-LEAD | **Q114 — OPEN (quill lane by authorship; opened 2026-10-28 by the pipe, at `40da64c`). The free-tier audit is labelled "Verified" over six aggregator pages, and four of its rows are contradicted by … | -- | +| 166 | Q115 | record | 13267-13267 | 1786 | record: BOLD-LEAD | **Q115 — OPEN (pipe lane; opened 2026-10-28 by the pipe, against its own instrument, at `40da64c`). This pipe's change monitor rendered a transient directory-read failure as mass deletion: `folder … | -- | ## Ids with no `## ` heading @@ -206,6 +207,7 @@ Opened as records inside another section. `line` is the record's own opening lin | Q112 | 13261 | 13261 | 1 | Q111 | BULLET+BOLD | BOLD-LEAD | | Q113 | 13263 | 13263 | 1 | Q112 | BULLET+BOLD | BOLD-LEAD | | Q114 | 13265 | 13265 | 1 | Q113 | BULLET+BOLD | BOLD-LEAD | +| Q115 | 13267 | 13267 | 1 | Q114 | BULLET+BOLD | BOLD-LEAD | **Not in this document.** Ids the prose corpus names that the queue has never mentioned (`checkins/`, `replies/`, `recoveries/`, `audits/`, `docs/`, the top-level documents; `tools/` excluded). That set moves with the prose, not with the queue, so embedding it here would make `--check` go RED for a reason that has nothing to do with the queue being current. It is reported on demand: `python3 tools/queue_index.py --outside`. @@ -1102,17 +1104,30 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "**Q113 \u2014 OPEN (ledger lane by authorship; opened 2026-10-28 by the pipe, at `5b0b2e4`). The roster extraction is faithful; the gate installed beside it cannot fail, and it was installed by retiring \u2026" }, { - "bytes": 3502, - "end_line": 13265, + "bytes": 3503, + "end_line": 13266, "id": "Q114", "kind": "record", "line": 13265, - "lines": 1, + "lines": 2, "role": "record", "role_detail": "BOLD-LEAD", "status": null, "status_line": null, "title": "**Q114 \u2014 OPEN (quill lane by authorship; opened 2026-10-28 by the pipe, at `40da64c`). The free-tier audit is labelled \"Verified\" over six aggregator pages, and four of its rows are contradicted by \u2026" + }, + { + "bytes": 1786, + "end_line": 13267, + "id": "Q115", + "kind": "record", + "line": 13267, + "lines": 1, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q115 \u2014 OPEN (pipe lane; opened 2026-10-28 by the pipe, against its own instrument, at `40da64c`). This pipe's change monitor rendered a transient directory-read failure as mass deletion: `folder \u2026" } ], "ids_multi_section": { @@ -3382,17 +3397,30 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "**Q113 \u2014 OPEN (ledger lane by authorship; opened 2026-10-28 by the pipe, at `5b0b2e4`). The roster extraction is faithful; the gate installed beside it cannot fail, and it was installed by retiring \u2026" }, { - "bytes": 3502, - "end_line": 13265, + "bytes": 3503, + "end_line": 13266, "id": "Q114", "kind": "record", "line": 13265, - "lines": 1, + "lines": 2, "role": "record", "role_detail": "BOLD-LEAD", "status": null, "status_line": null, "title": "**Q114 \u2014 OPEN (quill lane by authorship; opened 2026-10-28 by the pipe, at `40da64c`). The free-tier audit is labelled \"Verified\" over six aggregator pages, and four of its rows are contradicted by \u2026" + }, + { + "bytes": 1786, + "end_line": 13267, + "id": "Q115", + "kind": "record", + "line": 13267, + "lines": 1, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q115 \u2014 OPEN (pipe lane; opened 2026-10-28 by the pipe, against its own instrument, at `40da64c`). This pipe's change monitor rendered a transient directory-read failure as mass deletion: `folder \u2026" } ], "nested": [ @@ -3629,6 +3657,15 @@ The block below is the parse this document renders, byte for byte. `--check` com "refs": 1, "section": "Q113", "shape": "BULLET+BOLD" + }, + { + "first_mention": 13267, + "form": "BOLD-LEAD", + "id": "Q115", + "line": 13267, + "refs": 1, + "section": "Q114", + "shape": "BULLET+BOLD" } ], "preamble": { @@ -3636,9 +3673,9 @@ The block below is the parse this document renders, byte for byte. `--check` com "end_line": 8, "line": 1 }, - "queue_bytes": 1987576, - "queue_lines": 13265, - "queue_sha256": "b0575f5030aa64f0f8f4d2231983f2d88e5f6e5786473dc70de404fb47c686f5", + "queue_bytes": 1989363, + "queue_lines": 13267, + "queue_sha256": "68b24dbe3b4c31ce8e5ce78546e570afef9839f5edabb93c184ef1026a676d4e", "sections": [ { "bytes": 3139,