Skip to content

Implement persistent Explorer drafts and remove obsolete NPC progression UI

Idan Cohen requested to merge skill-draft-system into skill-selection-command

Replace the fixed draft triple with three uniformly random unlearned Explorer choices at level 1 and every five levels. Exact copies share one entry and satisfy the same prerequisite at its required level; different skills remain distinct. Existing offers persist without rerolls, learned skills cannot be downgraded, and picks/queue/skills save together while excluding concurrent autosave snapshots.

Keep the quest draft lightbulb and defer/reopen flow. Remove the obsolete NPC SP allocation and automatic keybinding UI; native client controls remain authoritative through the existing server protocol.

Add the repeatable, additive queststatus.draft_data migration and fail startup when draft storage is unavailable. A separately reviewed manual draft-record reset is provided; neither shared reset nor deployment has been executed.

Validation: Java 8 build; 16 real MySQL migration/reset, 67 Nashorn, 226 WZ draft/SP, 55 offline classless and 136 isolated running-server assertions passed, plus six character-info cases. The running server exercises production character creation, actual NPC script/Java helpers, SQL reloads and intentional failed-commit rollback. The automated suites use fixture client sessions. Independent real OpenStory verification also passed 28 recorded-evidence checks: initial offers, defer/reopen, cross-class Bahamut in the native skillbook, and pending/completed persistence across server restarts. The initial client lightbulb gap is corrected in client commit 92fd9b5 (https://gitlab.mapplestrudel.com/idanc/mapplestrudel-client/-/merge_requests/2): the original transparent lightbulb follows the player's head through walking, jumping and camera scrolling. The final client passed 75 UI assertions, 16 validator tests and 16 recorded-evidence checks; click/defer, pending reconnect and a saved Bow Expert pick were verified in real OpenStory on an isolated non-GM Beginner. The earlier boxed HUD icon is superseded. The development client build matches the tested binary. Production schema migration and coordinated rollout remain pending; no shared reset or deployment was performed. See docs/draft-openstory-verification.md. See docs/real-skill-draft.md for migration/reset steps and evidence limits.

Enable validation-only merge-request pipelines to satisfy the required CI gate: run Java compilation and Helm validation, exclude publication/deployment, and suppress duplicate branch push pipelines while a merge request is open. GitLab CI lint passed without warnings.

Edited by Idan Cohen

Merge request reports