chore(sisyphus): complete modifier-profiles-t2 boulder
This commit is contained in:
parent
0987adbff3
commit
646b16a8c0
5 changed files with 19 additions and 28 deletions
BIN
.org.chromium.Chromium.0XKKNo
Normal file
BIN
.org.chromium.Chromium.0XKKNo
Normal file
Binary file not shown.
0
.org.chromium.Chromium.gZRbON
Normal file
0
.org.chromium.Chromium.gZRbON
Normal 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"
|
|
||||||
}
|
|
||||||
|
|
@ -223,7 +223,7 @@ Wave FINAL (4 parallel reviewers):
|
||||||
|
|
||||||
**Commit**: `docs(adr): T2 polish architecture decisions`
|
**Commit**: `docs(adr): T2 polish architecture decisions`
|
||||||
|
|
||||||
- [ ] 2. **Turn-boundary queue server-side**
|
- [x] 2. **Turn-boundary queue server-side**
|
||||||
|
|
||||||
**What to do**:
|
**What to do**:
|
||||||
- Replace `handleModifierProfileUpdate`'s immediate-apply with queue semantics:
|
- 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`
|
**Commit**: `feat(server): turn-boundary queue for modifier profile updates`
|
||||||
|
|
||||||
- [ ] 3. **Two-player consent protocol**
|
- [x] 3. **Two-player consent protocol**
|
||||||
|
|
||||||
**What to do**:
|
**What to do**:
|
||||||
- New WS messages in `protocol.ts`:
|
- 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`
|
**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**:
|
**What to do**:
|
||||||
- In `ModifierProfileEditor.tsx`:
|
- In `ModifierProfileEditor.tsx`:
|
||||||
|
|
@ -310,7 +310,7 @@ Wave FINAL (4 parallel reviewers):
|
||||||
|
|
||||||
**Commit**: `feat(ui): modifier editor undo/redo`
|
**Commit**: `feat(ui): modifier editor undo/redo`
|
||||||
|
|
||||||
- [ ] 5. **Copy/paste modifiers between pieces**
|
- [x] 5. **Copy/paste modifiers between pieces**
|
||||||
|
|
||||||
**What to do**:
|
**What to do**:
|
||||||
- In `PerInstancePanel.tsx`:
|
- In `PerInstancePanel.tsx`:
|
||||||
|
|
@ -334,7 +334,7 @@ Wave FINAL (4 parallel reviewers):
|
||||||
|
|
||||||
**Commit**: `feat(ui): copy/paste modifiers between pieces`
|
**Commit**: `feat(ui): copy/paste modifiers between pieces`
|
||||||
|
|
||||||
- [ ] 6. **Inline conflict resolution panel**
|
- [x] 6. **Inline conflict resolution panel**
|
||||||
|
|
||||||
**What to do**:
|
**What to do**:
|
||||||
- New component `ConflictResolutionPanel.tsx`:
|
- New component `ConflictResolutionPanel.tsx`:
|
||||||
|
|
@ -358,7 +358,7 @@ Wave FINAL (4 parallel reviewers):
|
||||||
|
|
||||||
**Commit**: `feat(ui): inline conflict resolution panel`
|
**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**:
|
**What to do**:
|
||||||
- New component `ModifiedPieceIndicator.tsx`:
|
- New component `ModifiedPieceIndicator.tsx`:
|
||||||
|
|
@ -379,7 +379,7 @@ Wave FINAL (4 parallel reviewers):
|
||||||
|
|
||||||
**Commit**: `feat(ui): modified-piece indicator on board`
|
**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**:
|
**What to do**:
|
||||||
- Update `ModifierPinnedPanel.tsx`:
|
- Update `ModifierPinnedPanel.tsx`:
|
||||||
|
|
@ -401,7 +401,7 @@ Wave FINAL (4 parallel reviewers):
|
||||||
|
|
||||||
**Commit**: `feat(ui): enhanced modifier source chain in pinned panel`
|
**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**:
|
**What to do**:
|
||||||
- New component `ModifierProposalDialog.tsx`:
|
- New component `ModifierProposalDialog.tsx`:
|
||||||
|
|
@ -424,7 +424,7 @@ Wave FINAL (4 parallel reviewers):
|
||||||
|
|
||||||
**Commit**: `feat(ui): consent dialog for modifier profile proposals`
|
**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**:
|
**What to do**:
|
||||||
- Add 8 new T2-feature tests to `packages/chess/e2e/modifier-profiles.spec.ts`:
|
- 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`
|
**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**:
|
**What to do**:
|
||||||
- Append to `docs/adr/modifier-profiles.md`:
|
- Append to `docs/adr/modifier-profiles.md`:
|
||||||
|
|
@ -476,7 +476,7 @@ Wave FINAL (4 parallel reviewers):
|
||||||
|
|
||||||
**Commit**: `docs(adr): T2 implementation retrospective`
|
**Commit**: `docs(adr): T2 implementation retrospective`
|
||||||
|
|
||||||
- [ ] 12. **User docs updates**
|
- [x] 12. **User docs updates**
|
||||||
|
|
||||||
**What to do**:
|
**What to do**:
|
||||||
- Update `docs/user/modifier-profiles.md`:
|
- Update `docs/user/modifier-profiles.md`:
|
||||||
|
|
@ -496,19 +496,19 @@ Wave FINAL (4 parallel reviewers):
|
||||||
|
|
||||||
## Final Verification Wave
|
## 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.
|
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`
|
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.
|
`bun run check`. Scan for slop patterns. Verify server-shared schemas.
|
||||||
Output: `Build [PASS/FAIL] | Lint [PASS/FAIL] | Tests [N pass] | VERDICT`
|
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.
|
Execute all 26 Playwright scenarios. Multiplayer proposal/consent roundtrip. Undo/redo combos.
|
||||||
Output: `Scenarios [N/N] | Integration [pass] | VERDICT`
|
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.
|
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`
|
Output: `Tasks [N/N compliant] | Contamination [CLEAN] | VERDICT`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,19 +53,19 @@ function applyFix(
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ConflictResolutionPanel({ profile, layout, onResolve }: Props) {
|
export function ConflictResolutionPanel({ profile, layout, onResolve }: Props) {
|
||||||
const result = useMemo(() => {
|
const validationOutcome = useMemo(() => {
|
||||||
if (layout === null) return { errors: [], warnings: [], valid: true };
|
if (layout === null) return { errors: [], warnings: [], valid: true };
|
||||||
return validateProfile(profile, layout);
|
return validateProfile(profile, layout);
|
||||||
}, [profile, layout]);
|
}, [profile, layout]);
|
||||||
|
|
||||||
if (result.valid && result.warnings.length === 0) return null;
|
if (validationOutcome.valid && validationOutcome.warnings.length === 0) return null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
data-testid="conflict-panel"
|
data-testid="conflict-panel"
|
||||||
className="m-4 flex flex-col gap-2"
|
className="m-4 flex flex-col gap-2"
|
||||||
>
|
>
|
||||||
{result.errors.map((err) => (
|
{validationOutcome.errors.map((err) => (
|
||||||
<div
|
<div
|
||||||
key={`${err.code}-${err.square ?? ''}`}
|
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"
|
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>
|
</div>
|
||||||
))}
|
))}
|
||||||
{result.warnings.map((warn) => (
|
{validationOutcome.warnings.map((warn) => (
|
||||||
<div
|
<div
|
||||||
key={`${warn.code}-${warn.square}`}
|
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"
|
className="flex items-center justify-between px-3 py-2 text-sm text-amber-800 bg-amber-50 border border-amber-200 rounded"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue