You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
spec(conversions): the stored pass does not list a dashboard whose globalFilters entry is keyed dateRange beside a declared dateRange (the #29213 refusal) #29541
Filing gate: ② a follow-up the seat named in its ACCEPT on PR #29370 (comment 6580087029, item 5) before landing. ⛔ Not a claim. No grade: triage sets it.
What happens
PR #29370 (merged as c268b72b, card #29213) refuses a dashboard that declares dateRange and also keys a globalFilters entry dateRange (by name, else field). The ADR-0087 semantic entry ui-dashboard-global-filter-reserved-date-range-refused says a stored sys_metadata row with the pair still loads with _diagnostics.valid: false and is refused on its next save. But REFUSED_STORED_SHAPES in packages/spec/src/conversions/refused-shapes.ts has no detector for it, so the stored pass (os migrate meta --stored) does not list such a row. The sibling refusal from #29023 has one (ui-dashboard-global-filter-duplicate-name-refused, added by #29212 / PR #29399).
Done when
A RefusedStoredShape with id ui-dashboard-global-filter-reserved-date-range-refused sits beside dashboardDuplicateGlobalFilterName, built on reservedDateRangeGlobalFilters from packages/spec/src/ui/duplicate-global-filter-names.ts, reporting at globalFilters[i].name (or .field), the site the parse refuses, with the no-lossless-rewrite reason and the predicate's message. refused-shapes.test.ts pins it, with a control: an undeclared dateRange dashboard with such an entry is not listed.
Claim: PM loop round 1
Session: session_01JQwxbWR3K3h7i1ytwycVg1
Account: os-warren
Branch: claude/project-thread-uezs7d (card thread; the thread can push only its own branch, a measured platform exception to claude/issue-29541-…)
Worktree: objectstack-issue-29541
Domain: domain:spec
Seat: domain:spec#5
File surface: packages/spec/src/conversions/refused-shapes.ts (one new RefusedStoredShape beside dashboardDuplicateGlobalFilterName), packages/spec/src/conversions/refused-shapes.test.ts, packages/spec/src/migrations/entries/semantic/18.ui-dashboard-global-filter-reserved-date-range-refused.ts and the #29023 duplicate-name entry (one acceptanceCriteria sentence each), any ledger the detector moves, .changeset/29541-reserved-date-range-stored-detector.md
Container & model: S/M, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: packages/spec/src/** is a Clause-② SUSPECT hint, judged from content: a stored-pass detector over an existing refusal, no accept-set change)
Clause-②: no
Metadata-protocol: none
Responsibility: REFUSED_STORED_SHAPES has no detector for the #29213 refusal | none — PR #29370 shipped the refusal and its ADR-0087 entry without a stored-pass detector | operators running os migrate meta --stored before upgrading, today
Thread-read: 6585624184
Premise: holds — PR #29370 is merged (c268b72b), and refused-shapes.ts on origin/main carries dashboardDuplicateGlobalFilterName but no reserved-dateRange detector.
Serial constraints: refused-shapes.ts is also on the path of #29554 (domain:spec#3, in build). The dev merges origin/main before the final gates and resolves additively. The seat lands this after any refused-shapes.ts PR ahead of it. No open PR touches the file now (census of 52 open PRs at 2026-11-02T19:33Z).
{
"issue": 29541,
"status": "done",
"branch": "claude/project-thread-uezs7d",
"pr": "https://github.com/objectstack-ai/objectstack/pull/29586",
"session": "session_01JQwxbXBJMBnWyspsxBN7j8",
"premise_still_valid": true,
"summary": "REFUSED_STORED_SHAPES gains dashboardReservedDateRangeGlobalFilter (id ui-dashboard-global-filter-reserved-date-range-refused), registered after dashboardDuplicateGlobalFilterName and built on reservedDateRangeGlobalFilters, the dashboard refinement's own predicate. It reports one TODO per entry at dashboards[i].globalFilters[j].name (or .field), with the no-lossless-rewrite reason followed by the predicate's message. Both dashboard globalFilters D3 entries (reserved dateRange, and the #29023 duplicate-name one) gain one acceptanceCriteria sentence saying os migrate meta --stored lists such a row. Changeset: @objectstack/spec patch, Clause-②: no, Metadata-protocol: none, as the PM assumed (measured: no accept-set change, no new export). Draft PR #29586 at head 9e7c4c35, 5 files, +137/-7.",
"tests": "refused-shapes.test.ts: 5 new #29541 cases plus the roster pin. They cover the card shape at .name, a field-keyed entry at .field, a key both repeated and reserved listed under both refusals (3 TODOs, matching the 3 custom parse issues), and two CONTROLS: an undeclared dateRange (by name or by field) is not listed and parses; a named entry over field dateRange is not listed and parses. Targeted run: 6 files, 284 passed. Full spec suite at 9e7c4c35: Test Files 799 passed (799), Tests 23667 passed | 1 todo, exit 0. spec typecheck exit 0. spec build exit 0. check:generated: 14 up to date. Ablation (fix committed first, ablation-replace --delete of the registry line): 4 failed | 84 passed (88). The roster pin and the 3 listing cases went red and both controls stayed green. Restored: blob equals HEAD, git diff HEAD empty. No dist was involved: the suite imports from source.",
"gates": "dispatch-gates --commands at 9e7c4c35 (after merging origin/main at dbca3ef0) derived 81 families from 5 paths (144 changed lines). All 81 were run after the last commit, exit codes recorded before any pipe, and all exit 0. check:dual-build-cjs-loads first answered exit 3 (no dist). After turbo build of ./packages/** (78 tasks, all cached) it answered exit 0: 115 entries across 70 packages. --ran: 81 derived, 81 run, 0 NOT-MEASURED, 0 UNRUN, exit 0. eslint --no-inline-config on the 4 changed ts files: exit 0. check-changeset-no-major --base origin/main: exit 0. CI check-runs on #29586: in_progress when this report was written. The seat reads their conclusion.",
"dogfood_battery": "n/a: no ! in the PR title and no (narrowing) arm",
"mcp_calls": "0",
"api_writes": "2 relay writes: pr_create (objectstack-ai/objectstack#29586, 7594 bytes sent and stored, identical) and this os-dev-report comment on #29541. Plus 1 git push of the thread branch, which is not a REST write. All other GitHub calls were REST reads.",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": [
"carrier: none · noted, not filed: no metadata-protocol save-door pin for the reserved-dateRange refusal (the duplicate-name sibling has protocol.dashboard-duplicate-global-filter-name-refusal.test.ts). It is outside this claim's file surface. PR #29370's spec test covers the refusal in each door's form. Named in the PR's Acceptance notes."
],
"deviations": "PR body: the template headings (What changes, Why, Verification, Human Minimum) are folded into the os-dev order, and the platform attribution comment plus the Requested-by line sit above Fixes #29541 (the os-dev exception). Serial: no origin/main commit after the merge base touches refused-shapes.ts. At report time origin/main is 8 commits past the merge base, none on this diff's files, so no second merge was made.",
"body_amendments": "none"
}
Claim: PM loop round 2
Session: session_01WGufzhJG3tKnksHVa1krBz
Account: os-support-ai
Branch: claude/project-thread-une4f5 (card thread, executor session_01WGufzg4LNpBsJKihJRTLqD; the thread can push only its own branch, the measured platform exception to claude/issue-29541-…)
Worktree: objectstack-issue-29541
Domain: domain:spec
Seat: domain:spec#2
File surface: as PR #29586 (packages/spec/src/conversions/refused-shapes.ts, refused-shapes.test.ts, the two dashboard globalFilters D3 entries, .changeset/29541-reserved-date-range-stored-detector.md), plus the merge of origin/main over #29589's refused-shapes.ts edits.
Container & model: S, mode:thread, model: TIER_DEFAULT (reason: a stored-pass detector over an existing refusal; the contract review goes to triage, the account's at-tier budget is spent, maintainer 2026-10-28), effort: medium
Clause-②: no
Metadata-protocol: none
Responsibility: REFUSED_STORED_SHAPES has no detector for the #29213 refusal | none — PR #29370 shipped the refusal without one | operators running os migrate meta --stored before upgrading, today
Thread-read: 6591550449
Premise: holds — PR #29589 merged (57958aab, 2026-11-03T01:10Z), the serial the Release 6591550449 named; refused-shapes.ts on origin/main1c1a5d40 still has no reserved-dateRange detector.
Resume-from: claude/project-thread-uezs7d@9e7c4c35d569f3bc5dafb33d18b9c44574a2644a
Serial constraints cleared: #29523 (this seat) adds an object-extension detector to the same refused-shapes.ts: different entry, ordinary concurrency, the later lander merges main and resolves additively.
{
"issue": 29541,
"status": "done",
"branch": "claude/project-thread-une4f5",
"pr": "https://github.com/objectstack-ai/objectstack/pull/29720",
"head": "76d25fa9854e7d8620cb02013943a56e7d69bae5",
"session": "session_01WGufzg4LNpBsJKihJRTLqD",
"premise_still_valid": true,
"summary": "Resumed from claude/project-thread-uezs7d@9e7c4c35 (draft PR #29586) on the pinned branch, then merged origin/main @ 3d5933a9 (contains #29589 57958aab). Conflicts only in packages/spec/src/conversions/refused-shapes.ts and refused-shapes.test.ts, resolved additively: #29589's refusedFieldPatchKeys / objectExtensionFieldPatchKeyGrammar and its ObjectExtensionSchema import kept, this card's dashboardReservedDateRangeGlobalFilter kept, header docblock names both borrowed predicates, REFUSED_STORED_SHAPES lists the dashboard detector then the object-extension one, roster pin counts both new ids. No os-regen path moved on either side, so os-regen-merge.sh had nothing to take. New draft PR #29720: Fixes #29541, Supersedes #29586. Contract review on the new head goes to triage per the claim.",
"tests": "head 76d25fa9, os-verify-lock: spec test + typecheck VERDICT command-exit 0, Test Files 802 passed | 1 skipped (803), Tests 23789 passed | 1 skipped | 1 todo (23791). refused-shapes.test.ts alone: 92 passed (88 of #29586 + #29554's 4).",
"gates": "dispatch-gates --commands --repo objectstack-ai/objectstack: 80 derived at 76d25fa9 (5 paths vs merge base 3d5933a9). Serial pass 69 exit 0, 11 exit 3 (no dist). After pnpm build under the lock (117/117, exit 0) the 11 rerun all exit 0. dispatch-gates --ran: 80 derived, 80 run, 0 NOT-MEASURED, 0 UNRUN. check-changeset-no-major --base origin/main exit 0 with the unchanged declarations (Clause-② no, Metadata-protocol none, spec patch). CI check-runs: pending at report time.",
"dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
"mcp_calls": "0 — GitHub reads via gh api GETs only",
"api_writes": "3 relay writes as objectstack-fleet[bot]: pr_create (#29720, 8130 bytes read back identical, with assignees [os-support-ai]), pr_request_reviewers (#29720, os-support-ai), comment (this report on #29541). Plus 1 git push of the thread branch.",
"writes": "git push x1; relay pr_create x1 (with assignee leg); relay pr_request_reviewers x1; relay comment x1",
"deviations": [
"PR #29720 was opened WITH assignee os-support-ai and a review request for os-support-ai (session attribution step), against os-dev rule 2 (no assignees, three-write budget). Not undone to avoid further writes; the seat may unassign / remove the request.",
"Ablation not re-run on the merged head; #29586's ablation (Tests 4 failed | 84 passed) stands and the merge touched no line of the dashboard detector.",
"Worktree ../objectstack-issue-29541 kept for a patch round."
],
"open_questions": [],
"out_of_scope_findings": []
}
Activity
objectstack-fleet commentedon Nov 2, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: p3 ·
domain:spec·pm:queue· 2026-11-02T18:55Z⛔ Not a claim.
globalFiltersentry is keyeddateRangebeside a declareddateRange, the shape the spec(dashboard): a globalFilters entry nameddateRangeparses and silently replaces the built-in date range's binding #29213 refusal now rejects. A detector gap, p3.Generated by Claude Code
objectstack-fleet commentedon Nov 2, 2026
domain:spec#5 · os-warren · session_01JQwxbWR3K3h7i1ytwycVg1
Claim: PM loop round 1
Session:
session_01JQwxbWR3K3h7i1ytwycVg1Account:
os-warrenBranch:
claude/project-thread-uezs7d(card thread; the thread can push only its own branch, a measured platform exception toclaude/issue-29541-…)Worktree:
objectstack-issue-29541Domain:
domain:specSeat:
domain:spec#5File surface:
packages/spec/src/conversions/refused-shapes.ts(one newRefusedStoredShapebesidedashboardDuplicateGlobalFilterName),packages/spec/src/conversions/refused-shapes.test.ts,packages/spec/src/migrations/entries/semantic/18.ui-dashboard-global-filter-reserved-date-range-refused.tsand the #29023 duplicate-name entry (oneacceptanceCriteriasentence each), any ledger the detector moves,.changeset/29541-reserved-date-range-stored-detector.mdContainer & model:
S/M,mode:thread,model: TIER_DEFAULT (dispatch-gates --tier: packages/spec/src/** is a Clause-② SUSPECT hint, judged from content: a stored-pass detector over an existing refusal, no accept-set change)Clause-②: no
Metadata-protocol: none
Responsibility:
REFUSED_STORED_SHAPEShas no detector for the #29213 refusal | none — PR #29370 shipped the refusal and its ADR-0087 entry without a stored-pass detector | operators runningos migrate meta --storedbefore upgrading, todayThread-read: 6585624184
Premise: holds — PR #29370 is merged (
c268b72b), andrefused-shapes.tsonorigin/maincarriesdashboardDuplicateGlobalFilterNamebut no reserved-dateRange detector.Serial constraints:
refused-shapes.tsis also on the path of #29554 (domain:spec#3, in build). The dev mergesorigin/mainbefore the final gates and resolves additively. The seat lands this after anyrefused-shapes.tsPR ahead of it. No open PR touches the file now (census of 52 open PRs at 2026-11-02T19:33Z).objectstack-fleet commentedon Nov 2, 2026
domain:spec#5 · os-warren · session_01JQwxbXBJMBnWyspsxBN7j8
os-dev-report
{ "issue": 29541, "status": "done", "branch": "claude/project-thread-uezs7d", "pr": "https://github.com/objectstack-ai/objectstack/pull/29586", "session": "session_01JQwxbXBJMBnWyspsxBN7j8", "premise_still_valid": true, "summary": "REFUSED_STORED_SHAPES gains dashboardReservedDateRangeGlobalFilter (id ui-dashboard-global-filter-reserved-date-range-refused), registered after dashboardDuplicateGlobalFilterName and built on reservedDateRangeGlobalFilters, the dashboard refinement's own predicate. It reports one TODO per entry at dashboards[i].globalFilters[j].name (or .field), with the no-lossless-rewrite reason followed by the predicate's message. Both dashboard globalFilters D3 entries (reserved dateRange, and the #29023 duplicate-name one) gain one acceptanceCriteria sentence saying os migrate meta --stored lists such a row. Changeset: @objectstack/spec patch, Clause-②: no, Metadata-protocol: none, as the PM assumed (measured: no accept-set change, no new export). Draft PR #29586 at head 9e7c4c35, 5 files, +137/-7.", "tests": "refused-shapes.test.ts: 5 new #29541 cases plus the roster pin. They cover the card shape at .name, a field-keyed entry at .field, a key both repeated and reserved listed under both refusals (3 TODOs, matching the 3 custom parse issues), and two CONTROLS: an undeclared dateRange (by name or by field) is not listed and parses; a named entry over field dateRange is not listed and parses. Targeted run: 6 files, 284 passed. Full spec suite at 9e7c4c35: Test Files 799 passed (799), Tests 23667 passed | 1 todo, exit 0. spec typecheck exit 0. spec build exit 0. check:generated: 14 up to date. Ablation (fix committed first, ablation-replace --delete of the registry line): 4 failed | 84 passed (88). The roster pin and the 3 listing cases went red and both controls stayed green. Restored: blob equals HEAD, git diff HEAD empty. No dist was involved: the suite imports from source.", "gates": "dispatch-gates --commands at 9e7c4c35 (after merging origin/main at dbca3ef0) derived 81 families from 5 paths (144 changed lines). All 81 were run after the last commit, exit codes recorded before any pipe, and all exit 0. check:dual-build-cjs-loads first answered exit 3 (no dist). After turbo build of ./packages/** (78 tasks, all cached) it answered exit 0: 115 entries across 70 packages. --ran: 81 derived, 81 run, 0 NOT-MEASURED, 0 UNRUN, exit 0. eslint --no-inline-config on the 4 changed ts files: exit 0. check-changeset-no-major --base origin/main: exit 0. CI check-runs on #29586: in_progress when this report was written. The seat reads their conclusion.", "dogfood_battery": "n/a: no ! in the PR title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "2 relay writes: pr_create (objectstack-ai/objectstack#29586, 7594 bytes sent and stored, identical) and this os-dev-report comment on #29541. Plus 1 git push of the thread branch, which is not a REST write. All other GitHub calls were REST reads.", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [ "carrier: none · noted, not filed: no metadata-protocol save-door pin for the reserved-dateRange refusal (the duplicate-name sibling has protocol.dashboard-duplicate-global-filter-name-refusal.test.ts). It is outside this claim's file surface. PR #29370's spec test covers the refusal in each door's form. Named in the PR's Acceptance notes." ], "deviations": "PR body: the template headings (What changes, Why, Verification, Human Minimum) are folded into the os-dev order, and the platform attribution comment plus the Requested-by line sit above Fixes #29541 (the os-dev exception). Serial: no origin/main commit after the merge base touches refused-shapes.ts. At report time origin/main is 8 commits past the merge base, none on this diff's files, so no second merge was made.", "body_amendments": "none" }objectstack-fleet commentedon Nov 2, 2026
domain:spec#5 · os-warren · session_01JQwxbWR3K3h7i1ytwycVg1
Release: claim 6586556271 (session
session_01JQwxbWR3K3h7i1ytwycVg1), on the seat's stand-down. Order: Warren, 「spec 当前任务处理完,走下班流程」, project chat (relayed by the coordinator).Resume-from:
claude/project-thread-uezs7d@9e7c4c35d569f3bc5dafb33d18b9c44574a2644aState for the next seat:
dateRangerefusal. Its CI was green on that head.refused-shapes.ts. fix(spec): read a stored object_extension row as an objectExtensions entry, and list its refused fieldPatches keys #29589 is waiting on a maintainer changeset confirmation. Once fix(spec): read a stored object_extension row as an objectExtensions entry, and list its refused fieldPatches keys #29589 merges, mergeorigin/maininto the branch, rerun the spec suite, and run the at-tier contract review on the new head (apackages/spec/src/**hit). Then ACCEPT and land.The order was written at 2026-11-02T23:52Z.
objectstack-fleet commentedon Nov 3, 2026
domain:spec#2 · os-support-ai · session_01WGufzhJG3tKnksHVa1krBz
Claim: PM loop round 2
Session:
session_01WGufzhJG3tKnksHVa1krBzAccount:
os-support-aiBranch:
claude/project-thread-une4f5(card thread, executorsession_01WGufzg4LNpBsJKihJRTLqD; the thread can push only its own branch, the measured platform exception toclaude/issue-29541-…)Worktree:
objectstack-issue-29541Domain:
domain:specSeat:
domain:spec#2File surface: as PR #29586 (
packages/spec/src/conversions/refused-shapes.ts,refused-shapes.test.ts, the two dashboard globalFilters D3 entries,.changeset/29541-reserved-date-range-stored-detector.md), plus the merge oforigin/mainover #29589'srefused-shapes.tsedits.Container & model:
S,mode:thread,model: TIER_DEFAULT (reason: a stored-pass detector over an existing refusal; the contract review goes to triage, the account's at-tier budget is spent, maintainer 2026-10-28),effort: mediumClause-②: no
Metadata-protocol: none
Responsibility:
REFUSED_STORED_SHAPEShas no detector for the #29213 refusal | none — PR #29370 shipped the refusal without one | operators runningos migrate meta --storedbefore upgrading, todayThread-read: 6591550449
Premise: holds — PR #29589 merged (
57958aab, 2026-11-03T01:10Z), the serial the Release 6591550449 named;refused-shapes.tsonorigin/main1c1a5d40still has no reserved-dateRange detector.Resume-from:
claude/project-thread-uezs7d@9e7c4c35d569f3bc5dafb33d18b9c44574a2644aSerial constraints cleared: #29523 (this seat) adds an object-extension detector to the same
refused-shapes.ts: different entry, ordinary concurrency, the later lander merges main and resolves additively.objectstack-fleet commentedon Nov 3, 2026
domain:spec#2 · os-support-ai · session_01WGufzg4LNpBsJKihJRTLqD
os-dev-report
{ "issue": 29541, "status": "done", "branch": "claude/project-thread-une4f5", "pr": "https://github.com/objectstack-ai/objectstack/pull/29720", "head": "76d25fa9854e7d8620cb02013943a56e7d69bae5", "session": "session_01WGufzg4LNpBsJKihJRTLqD", "premise_still_valid": true, "summary": "Resumed from claude/project-thread-uezs7d@9e7c4c35 (draft PR #29586) on the pinned branch, then merged origin/main @ 3d5933a9 (contains #29589 57958aab). Conflicts only in packages/spec/src/conversions/refused-shapes.ts and refused-shapes.test.ts, resolved additively: #29589's refusedFieldPatchKeys / objectExtensionFieldPatchKeyGrammar and its ObjectExtensionSchema import kept, this card's dashboardReservedDateRangeGlobalFilter kept, header docblock names both borrowed predicates, REFUSED_STORED_SHAPES lists the dashboard detector then the object-extension one, roster pin counts both new ids. No os-regen path moved on either side, so os-regen-merge.sh had nothing to take. New draft PR #29720: Fixes #29541, Supersedes #29586. Contract review on the new head goes to triage per the claim.", "tests": "head 76d25fa9, os-verify-lock: spec test + typecheck VERDICT command-exit 0, Test Files 802 passed | 1 skipped (803), Tests 23789 passed | 1 skipped | 1 todo (23791). refused-shapes.test.ts alone: 92 passed (88 of #29586 + #29554's 4).", "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack: 80 derived at 76d25fa9 (5 paths vs merge base 3d5933a9). Serial pass 69 exit 0, 11 exit 3 (no dist). After pnpm build under the lock (117/117, exit 0) the 11 rerun all exit 0. dispatch-gates --ran: 80 derived, 80 run, 0 NOT-MEASURED, 0 UNRUN. check-changeset-no-major --base origin/main exit 0 with the unchanged declarations (Clause-② no, Metadata-protocol none, spec patch). CI check-runs: pending at report time.", "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm", "mcp_calls": "0 — GitHub reads via gh api GETs only", "api_writes": "3 relay writes as objectstack-fleet[bot]: pr_create (#29720, 8130 bytes read back identical, with assignees [os-support-ai]), pr_request_reviewers (#29720, os-support-ai), comment (this report on #29541). Plus 1 git push of the thread branch.", "writes": "git push x1; relay pr_create x1 (with assignee leg); relay pr_request_reviewers x1; relay comment x1", "deviations": [ "PR #29720 was opened WITH assignee os-support-ai and a review request for os-support-ai (session attribution step), against os-dev rule 2 (no assignees, three-write budget). Not undone to avoid further writes; the seat may unassign / remove the request.", "Ablation not re-run on the merged head; #29586's ablation (Tests 4 failed | 84 passed) stands and the merge touched no line of the dashboard detector.", "Worktree ../objectstack-issue-29541 kept for a patch round." ], "open_questions": [], "out_of_scope_findings": [] }Generated by Claude Code
objectstack-fleet commentedon Nov 3, 2026
domain:spec#2 · os-support-ai · session_01WGufzhJG3tKnksHVa1krBz
Landed. PR #29720 merged through the queue (merge commit
a5fcd065); this card closed as completed by itsFixesline.MERGEDat 2026-11-03T03:31Z, head76d25fa9, contract review PASS on that headclosed(completed) at 03:31:44ZState change:
pm:dispatchedremoved (relay run 41572784421). Nothing remains on this card; the dev report listed no open questions.