docs(tasks-plan): umermjd11 task plan 051026-1 — contract follow-ups: DINTaskAuditor size (#201 A4), #180 dual-role guard, #193 cross-model S5 - #219
Conversation
…nfiniteZeroFoundation#201 A4), InfiniteZeroFoundation#180, InfiniteZeroFoundation#193, dincli DevNet 2.0 gaps (BL-27/BL-28), docs drift Six items pending maintainer review, written against develop @ 740a613: - TP-1: DINTaskAuditor getter-visibility size review (prototype -320 B recommended set, -666 B max). - TP-2: InfiniteZeroFoundation#180 per-address cross-role guard in registerDINAuditor (+103 B) + amendment-4 NatSpec. - TP-3: InfiniteZeroFoundation#193 two-level S5 (time-based global ring) in DinValidatorStake. - TP-4: BL-27/BL-28 dincli deploy modelId + setDinToken, approval mismatch check, gi release-slots, harness on foundry artifacts. - TP-5: dincli rewards / encryption-key / dispute commands. - TP-6: Documentation/public drift. Five decisions requested; deferred table updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…w 6/11 test flips in sequencing Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…oFoundation#201 A4, InfiniteZeroFoundation#180, InfiniteZeroFoundation#193); dincli/suite/docs moved to 051026-2 TP-4 (BL-27/BL-28), TP-5 (dincli DevNet 2.0 commands) and TP-6 (public docs drift) moved to task-plan-051026-2 (PR No. 229), which orders that work as contracts check -> dincli -> integration suite -> docs. Adds a coordination section (getter set vs plan-2 reads, DINShared.sol, DINTaskAuditor ABI, InfiniteZeroFoundation#180 vs suite accounts); drops decisions 4-5; deferred table points at plan 2 and issue No. 228. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Split into two plans:
Decisions 4–5 moved to #229 with the items they belonged to. Each plan has a coordination section (getter set, 🤖 Generated with Claude Code |
Review: deep verificationReviewed against 1. Status check and referencesVerified:
2. TP-1 getter readers
So the "switch the one foundry test from 3. Sizes, prototypedVerified — matches the plan to the byte, or within 1 B. Scratch edits on
So the recommended four plus the guard leave 4. Interplay
5. Discussion No. 216 follow-upDiscussion No. 216 closed task_021026_19, but Amendments
Everything else checks out at |
Files changed (1) — as of
|
| Field | Value |
|---|---|
| Change | New |
| Lines | +173/-0 |
| Diff (what exactly is in this PR) | A three-item contract plan: TP-1 DINTaskAuditor size review (issue No. 201 Part A item 4: four getters → internal, plus a fold review), TP-2 the issue No. 180 dual-role guard in registerDINAuditor, TP-3 the issue No. 193 two-level S5 (a per-validator timestamp ring alongside the per-slasher GI ring). It also has a status check at 740a613, a sequencing table, coordination with task-plan-051026-2 (PR No. 229), three decisions, and a deferred list. |
| Functionality — how & why | How: TP-1 changes visibility only, with no storage, event or state-changing changes. TP-2 is one external view call on the coordinator's existing isDINAggregator mapping, placed on the auditor side because aggregator registration always comes first. TP-3 appends storage before __gap and escalates when either ring reaches its threshold. Why: DINTaskAuditor sits in the CI warn band (1,858 B margin) and later work adds bytes. Dual-role registration was ruled not intended (PR No. 182, Judgment call 2). S5 is defined per validator across roles and models but counted per slasher contract. Sizes were re-measured: 22,398 B with TP-1, 22,820 B with the guard alone, 22,500 B together. |
Diff vs current develop HEAD |
None — new file |
| Recommended merge proposal | Merge after the amendments in the verification comment. (1) The forwarding PR sets task_021026_19's **Status:** to closed (Discussion No. 216). (2) auditBatches has no test reader, so drop the test-switch step. (3) Note the thin 28 B above the warn line after TP-1 + TP-2, and add plan 2's commitment-check bytes to the budget. (4) Fix the Developer/design/MECHANISM_DESIGN.md path. |
| Actual merge proposal | Soon |
| Pending proposal | Decisions 1–3 (separate comment), then forwarding as one Developer/tasks/task_DDMMYY_n.md. |
| Local merge conflict | No |
| GitHub merge conflict | No |
Verification
Full detail is in the verification comment above. In short: all file:line references resolve at 740a613. The getter reader counts match except auditBatches (0, not 1). Prototype sizes on a real via_ir build: TP-1 −320 B, guard +102 B, together 22,500 B (2,076 B margin). The S5 storage, __gap and the MECHANISM_DESIGN.md discrepancy are confirmed. check_doc_links.py Developer resolves. GitHub CI is green.
Local vs. GitHub agree: both report a clean merge.
Reviewer decisions: options and recommendationsThese are the plan's three "Decisions requested". Each lists the options and a recommendation, using the sizes measured in the verification comment above. @umermjd11, answer per decision; the plan gets amended to match. Decision 1: TP-1 getter set
Recommended: A, with C's accounting. Report one size table with TP-1, then TP-1 + TP-2, plus an estimate for plan 2's commitment check. If Decision 2: No. 180 dual-role registration
Recommended: A. It matches the PR No. 182 ruling (dual-role not intended) and threat-model Judgment call 2. Include the three tests listed, and flip PR No. 218's Decision 3: No. 193 cross-model S5
Recommended: A. Confirm defaults of |
Task plan for review:
Developer/tasks-plan/umermjd11/task-plan-051026-1.md. It's written againstdevelop@740a613. Same flow as before: review here, I apply amendments, then it's forwarded as onetasks/spec.Narrowed to the contract follow-ups. The dincli, integration-suite and docs items moved to the companion plan #229 (task-plan-051026-2: contracts check + richer GI states → dincli → full-GI suite on foundry → docs). The plan has a section on how the two coordinate.
DINTaskAuditorsize review, changing getter visibility only. Prototype: −320 B for the recommended set of four, which moves the margin from 1,858 to 2,178 B (out of the warn band). Up to −666 B if all seven go. The getters plan 2's commands read stay publicregisterDINAuditor. Aggregators always register first, so the guard goes on the auditor side. +103 B, measured. Also the amendment-4 NatSpec fixblock.timestamp. Timestamps are monotonic, so the trim stays safe. Also closes the S1/S2 split within one modelDecisions requested:
PR #218 (
P3Adversarial.t.sol) encodes Row 6 and Row 11 as known gaps. Whichever lands second flips them; see Sequencing.Size figures come from scratch builds on
740a613(via_ir, 200 runs). Docs-only PR.check_doc_links.py Developeris green, and it merges cleanly with #229.🤖 Generated with Claude Code