Skip to content

UI Gap Implementation Plan

Sharp Ninja edited this page Oct 31, 2026 · 4 revisions

UI gap implementation plan

Current amendment persistence: 19-record QBrain readback confirms the current cap10 requirement amendment, stable IDs/native mappings and 28 changed criteria still unsatisfied. Original design provenance, case synchronization receipts, v2.7 before copies and execution history remain retained; current case/export reconciliation and exact-source execution are separate obligations. CAP15-LEGACY retains its historical ID with current10-player text. Documentation does not satisfy criteria or establish a passing game.

Historical plan for the inspected UI-DEC snapshot. Preserve its original scope, chronology and evidence. Current rules v2.8 (31 October 2026), guest-only public play and the owner GitHub admin-only PWA are specified in the current release design. The completion plan replaces its former 2 through 25 execution target with every count 2 through 10, 25 observers unchanged and 9 games/54 player participations/432 accepted solves. Public OpenAI registration, public installation and role delegation are inactive, not current execution blockers.

Implements the operator-authorized UI-DEC-01..08 and associated pending QBrain records. Preserve existing uncommitted work, independent authority, immutable catalog versions, command identities and prior evidence. Existing real OIDC/physical-phone prerequisites and the separate full live2..25 execution remain separately reported.

  1. Extend content domain/application/strict HTTP transport with reasoned request-changes, proposer-only resubmit, and independent moderator hold/resume. Keep existing pending records compatible; resubmission/resume use pending_review. Include both pending spellings and changes_requested in one-open checks. Held/changes-requested content is never future-eligible/playable; new nominations cannot unhold a case. Record actor, prior/new status, case version and previous/new proposal in the existing atomic audit transition. Reuse transactional repository, fresh roles, version and canonical retry checks. Add a forward migration for the projected status constraint and one-open unique index; no destructive data migration.

  2. Expose allowed controls, status filters and history through existing community/admin pages. Reason fields are required, resubmission has exactly three pairs and successful/uncertain operations use the existing canonical command mechanism. Forbidden attempts must not mutate content or accepted history.

  3. Add memory-only identity-bound draft primitives and a form wrapper for content/editor forms. Use client-side internal navigation so root lifecycle survives ordinary Back/route changes. Preserve safe draft fields and editor selection within the tab; clear on Cancel/Discard, successful save, reload, sign-out/profile switch and authorization loss. Pending writes retain exact command/payload across navigation; deny new or stale-context commands after identity changes. Clear privileged drafts and ignore late reads on denial. No web storage, credentials or cross-profile drafts. Profile edit has explicit Save/Cancel while existing immediate icon controls remain compatible.

    Profile controls inside the explicit edit session are draft-only until Save. Cancel makes no preference request and restores the last saved icon/alias; existing immediate controls remain outside that edit session and cannot be undone by Cancel. Test Cancel with a mutation-count assertion.

    Draft values and uncertain intents have separate lifecycles. Identify both by profile/session generation and form/resource key. Ordinary navigation retains the exact pending payload/command ID, including a shared in-flight lock; Cancel/Discard is unavailable for an uncertain submission until canonical resolution rather than dropping its ID. A known terminal response retires only the matching intent. A session/profile change or authorization denial invalidates its generation, clears private drafts and detaches old pending state; prior-generation completions cannot restore data, invoke current callbacks, or clear a newer intent. A reauthorized screen reloads authoritative state before accepting a fresh command. Add delayed-completion tests across navigation, identity switch and denial, plus a current-generation uncertain retry with exact payload equality.

  4. Make read loading/empty/unavailable states distinct, add safe explicit read retry and persistent canonical mutation retry, guard duplicate synchronous submission, consume bodies and never surface raw exceptions. Keep existing live authority and condition-based synchronization. Add polite score/stage announcements without moving focus; native dialogs/details restore opener focus when closed. Enforce contrast, primary44px targets, min-width0/wrapping, zoom and specified viewport/text-enlargement behavior through the full stylesheet.

  5. Author failing domain/application/transport checks before the state-machine repair. Add repeatable browser UI integration through actual React pages plus real domain/application command services; clearly disclose HTTP fixture seams. Exercise both staff/proposer and non-proposer clients, hold/resume counts, unchanged state after denial, idempotent uncertain retries, Back/Cancel/profile/draft isolation, denial/late-response handling, loading/error states, no-solver visible progression and viewport/keyboard/contrast/touch geometry. Add real disposable PostgreSQL regression for new statuses, uniqueness, audit and canonical retry; do not substitute service checks for UI cases.

  6. Run affected tests, required edit verification, production build, broader unit/browser regression and disposable SQL checks. Have the existing independent hostile reviewer assess plan and final source/evidence; repair findings. Update QBrain criteria only from matching evidence, retain unverified/blocked clauses explicitly, refresh linked case/docs/exports from readback and record the final review. No commit, push, deployment or public tunnel is implied.

Discovery recovery amendment (independently approved99/99): mark board links with UX-only from=discovery; return only a current authoritative unavailable/non-member result to /?seatLost=1#community. Retain and canonically resolve an uncertain join before redirecting; current members are never bounced because a room fills or counts down. Remount the board at its first page with fresh=1; keep refresh failure visible and retryable. Direct room/code/invitation links retain observation. Regress last-seat winner/loser, accepted-response-lost winner, direct-full observation and invalid/rate-limited code correction.

Review repairs: retain successful scoped results until a current consumer acknowledges them, including private room destinations and saved editor closure after navigation. Bind drafts/intents and component keys to a purpose-separated opaque verified session generation, including a new session for the same profile. Denied mutations invalidate pending read generations for content/admin/game/social/room so old bodies cannot restore private state. Regress actual stage/score/error live-region updates with unchanged focus; the native profile dialog supports Cancel/Escape and restores its opener while pending writes block dismissal.

Implementation discovery amendment: the existing no-solver summary selects a category but has no automatic deadline. Schedule the existing stage job at endedAt + 3000 for a summary with an automatic category. Three seconds is an automatic-advance delay, not a guaranteed minimum display: optional manual Continue remains compatible, and a late worker starts the next round at its current clock time to preserve the full first20-second stage. Validate exact due time, current version and elapsed deadline; keep system:deadline as actual command/audit actor, even when passing an original-roster representative to the existing domain continuation helper. The terminal eighth round schedules no further job. A catalog revision race on a system deadline returns retryable TEMPORARY_UNAVAILABLE, while obsolete aggregate versions retain terminal CONFLICT. Add early/exact/late timing, both manual/deadline orders, duplicate delivery/no ninth round and a real disposable SQL paused-catalog-read/revision-update regression proving eventual retry advancement.

Clone this wiki locally