chore(sisyphus): complete modifier-profiles-t2 boulder

This commit is contained in:
Joey Yakimowich-Payne 2026-04-19 10:20:26 -06:00
commit 646b16a8c0
No known key found for this signature in database
5 changed files with 19 additions and 28 deletions

Binary file not shown.

View file

View file

@ -1,9 +0,0 @@
{
"active_plan": "/home/joey/Projects/rules/.sisyphus/plans/modifier-profiles-t2.md",
"started_at": "2026-04-19T14:42:06.329Z",
"session_ids": [
"ses_267b9d7a2ffeFkGcPFn1iv223J"
],
"plan_name": "modifier-profiles-t2",
"agent": "atlas"
}

View file

@ -223,7 +223,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `docs(adr): T2 polish architecture decisions`
- [ ] 2. **Turn-boundary queue server-side**
- [x] 2. **Turn-boundary queue server-side**
**What to do**:
- Replace `handleModifierProfileUpdate`'s immediate-apply with queue semantics:
@ -252,7 +252,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `feat(server): turn-boundary queue for modifier profile updates`
- [ ] 3. **Two-player consent protocol**
- [x] 3. **Two-player consent protocol**
**What to do**:
- New WS messages in `protocol.ts`:
@ -285,7 +285,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `feat(server): two-player consent for modifier profile swaps`
- [ ] 4. **Editor undo/redo snapshot stack**
- [x] 4. **Editor undo/redo snapshot stack**
**What to do**:
- In `ModifierProfileEditor.tsx`:
@ -310,7 +310,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `feat(ui): modifier editor undo/redo`
- [ ] 5. **Copy/paste modifiers between pieces**
- [x] 5. **Copy/paste modifiers between pieces**
**What to do**:
- In `PerInstancePanel.tsx`:
@ -334,7 +334,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `feat(ui): copy/paste modifiers between pieces`
- [ ] 6. **Inline conflict resolution panel**
- [x] 6. **Inline conflict resolution panel**
**What to do**:
- New component `ConflictResolutionPanel.tsx`:
@ -358,7 +358,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `feat(ui): inline conflict resolution panel`
- [ ] 7. **Modified-piece indicator on live board**
- [x] 7. **Modified-piece indicator on live board**
**What to do**:
- New component `ModifiedPieceIndicator.tsx`:
@ -379,7 +379,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `feat(ui): modified-piece indicator on board`
- [ ] 8. **Enhanced source-chain in pinned panel**
- [x] 8. **Enhanced source-chain in pinned panel**
**What to do**:
- Update `ModifierPinnedPanel.tsx`:
@ -401,7 +401,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `feat(ui): enhanced modifier source chain in pinned panel`
- [ ] 9. **Consent UI (proposal notification + buttons)**
- [x] 9. **Consent UI (proposal notification + buttons)**
**What to do**:
- New component `ModifierProposalDialog.tsx`:
@ -424,7 +424,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `feat(ui): consent dialog for modifier profile proposals`
- [ ] 10. **Playwright e2e additions (8 feature scenarios + solo regression guards)**
- [x] 10. **Playwright e2e additions (8 feature scenarios + solo regression guards)**
**What to do**:
- Add 8 new T2-feature tests to `packages/chess/e2e/modifier-profiles.spec.ts`:
@ -460,7 +460,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `test(e2e): T2 polish vertical slice + solo regression guards`
- [ ] 11. **ADR updates — Implementation Retrospective T2 addendum**
- [x] 11. **ADR updates — Implementation Retrospective T2 addendum**
**What to do**:
- Append to `docs/adr/modifier-profiles.md`:
@ -476,7 +476,7 @@ Wave FINAL (4 parallel reviewers):
**Commit**: `docs(adr): T2 implementation retrospective`
- [ ] 12. **User docs updates**
- [x] 12. **User docs updates**
**What to do**:
- Update `docs/user/modifier-profiles.md`:
@ -496,19 +496,19 @@ Wave FINAL (4 parallel reviewers):
## Final Verification Wave
- [ ] F1. **Plan Compliance Audit** — `oracle`
- [x] F1. **Plan Compliance Audit** — `oracle`
Verify all 12 tasks' deliverables exist. Verify T1 simplifications resolved. Check evidence files.
Output: `Must Have [N/N] | Must NOT Have [N/N] | ADR Decisions [3/3] | VERDICT: APPROVE/REJECT`
- [ ] F2. **Code Quality Review** — `unspecified-high`
- [x] F2. **Code Quality Review** — `unspecified-high`
`bun run check`. Scan for slop patterns. Verify server-shared schemas.
Output: `Build [PASS/FAIL] | Lint [PASS/FAIL] | Tests [N pass] | VERDICT`
- [ ] F3. **Manual QA** — `unspecified-high` (+ `playwright`)
- [x] F3. **Manual QA** — `unspecified-high` (+ `playwright`)
Execute all 26 Playwright scenarios. Multiplayer proposal/consent roundtrip. Undo/redo combos.
Output: `Scenarios [N/N] | Integration [pass] | VERDICT`
- [ ] F4. **Scope Fidelity** — `deep`
- [x] F4. **Scope Fidelity** — `deep`
No T3 features smuggled (no custom authoring, no auras, no multi-profile stacking). No breaking WS changes.
Output: `Tasks [N/N compliant] | Contamination [CLEAN] | VERDICT`

View file

@ -53,19 +53,19 @@ function applyFix(
}
export function ConflictResolutionPanel({ profile, layout, onResolve }: Props) {
const result = useMemo(() => {
const validationOutcome = useMemo(() => {
if (layout === null) return { errors: [], warnings: [], valid: true };
return validateProfile(profile, layout);
}, [profile, layout]);
if (result.valid && result.warnings.length === 0) return null;
if (validationOutcome.valid && validationOutcome.warnings.length === 0) return null;
return (
<div
data-testid="conflict-panel"
className="m-4 flex flex-col gap-2"
>
{result.errors.map((err) => (
{validationOutcome.errors.map((err) => (
<div
key={`${err.code}-${err.square ?? ''}`}
className="flex items-center justify-between px-3 py-2 text-sm text-red-800 bg-red-50 border border-red-200 rounded"
@ -83,7 +83,7 @@ export function ConflictResolutionPanel({ profile, layout, onResolve }: Props) {
)}
</div>
))}
{result.warnings.map((warn) => (
{validationOutcome.warnings.map((warn) => (
<div
key={`${warn.code}-${warn.square}`}
className="flex items-center justify-between px-3 py-2 text-sm text-amber-800 bg-amber-50 border border-amber-200 rounded"