docs(queue): Gitea milestone-name issue filter silently no-ops on ':'/'+' names
Build ErsatzTV Image / decisions.md append-only (push) Has been skipped
Build ErsatzTV Image / Docs update reminder (push) Has been skipped
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (push) Successful in 5m15s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (push) Has been skipped
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (push) Has been skipped
Build ErsatzTV Image / Build & test (.NET) (push) Successful in 6m26s
Build ErsatzTV Image / Functional E2E (curl contracts) (push) Successful in 6m2s
Build ErsatzTV Image / Build & push image (amd64) (push) Successful in 6m34s
Build ErsatzTV Image / decisions.md append-only (push) Has been skipped
Build ErsatzTV Image / Docs update reminder (push) Has been skipped
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (push) Successful in 5m15s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (push) Has been skipped
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (push) Has been skipped
Build ErsatzTV Image / Build & test (.NET) (push) Successful in 6m26s
Build ErsatzTV Image / Functional E2E (curl contracts) (push) Successful in 6m2s
Build ErsatzTV Image / Build & push image (amd64) (push) Successful in 6m34s
The `?milestones=<name>` filter returns the whole open-issue list (not a filtered set) when the milestone title contains special chars, mis-tiering issues during queue selection. Recipe: fetch open issues once, filter locally on `.milestone.title`. Also notes the dependencies-API owner/repo/index form. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -248,6 +248,18 @@ HARD CONSTRAINTS:
|
||||
|
||||
- READ docs/README.md → the convention docs FIRST; point recon/implementer agents at specific
|
||||
doc sections. Only recon the task-specific delta.
|
||||
- **Gitea milestone-name issue filter silently NO-OPS on names with special chars (2026-07-17,
|
||||
#77 selection)**: `GET /issues?milestones=<name>` returns the WHOLE open-issue list — not a
|
||||
filtered set — when the milestone title contains `:` or `+` (e.g. `Scheduling: refactor +
|
||||
distribution`), because the raw name doesn't round-trip through Gitea's filter. A selector that
|
||||
trusts that response will mis-tier issues (it made #72 look like a milestone-10 member when it's
|
||||
unmilestoned, and hid #77's true sibling set). **Robust recipe: fetch all open issues once and
|
||||
filter LOCALLY on each issue's `.milestone.title`** (`?state=open&type=issues&limit=50`, then
|
||||
`[i for i in issues if (i['milestone'] or {}).get('title')==NAME]`) — do not rely on the
|
||||
server-side `milestones=` name filter. If a count looks suspiciously like "all open issues," that
|
||||
filter silently failed; re-derive membership locally. (Dependencies API is fine: `POST
|
||||
/issues/{n}/dependencies` with `{"owner","repo","index"}` sets blocked-by; the bare `{index}`
|
||||
form 201s but may not attach — verify with the GET.)
|
||||
- **Codex cheap-worker launch (tested 2026-07-14)**: the native `spawn_agent` interface currently
|
||||
has no model/effort selector, so it provides parallelism but not cost savings. For bounded,
|
||||
tool-bearing selector/recon work, launch a separate worker with
|
||||
|
||||
Reference in New Issue
Block a user