Skip to content

Latest commit

 

History

History
171 lines (142 loc) · 20.6 KB

File metadata and controls

171 lines (142 loc) · 20.6 KB

Product Plans

Keep this checklist aligned with repository behavior. Check off work in the same change that implements it.

Characters: Available

  • Add Brisshell as a Tier 5 Earth Assassin with her catalog images.
  • Stage Vivian and her signature artifact as hidden catalog records outside local development, with local-development catalog counts, until official metadata is available.
  • Filter owned and selectable characters by Tier 4 and Tier 5.
  • Sort owned characters by name or awakening level in either direction.
  • Show owned/total roster progress and disable additions when every character is owned.
  • Highlight max-level skills in green so awakening styling never obscures a stored level 12.
  • Place Characters first in the Inventory navigation section.
  • Add portrait-selectable Mina, Jiwon, and Ophelia costumes with hidden-catalog development navigation details.

Monsterlings: Available

  • Search owned monsterlings by name and filter them across Tier 1 through Tier 5.
  • Track one shared, editable Link Chain Level per capable Monsterling species across owned copies, forms, portraits, loadouts, local migrations, and Drive backups; saving a species corrects its exact level (with level one implicit), levels survive copy deletion and owned-data resets, with verified names, triggers, and effects.
  • Manage every Link Chain-capable species on a dedicated searchable, level-filterable page, with portrait-driven level editing independent of Monsterling ownership.
  • Group Link Chain rows by immutable unlock level in ascending order after search and upgrade-level filters, using optional in-game sort order before alphabetical fallback within each row.
  • Pin Link Chain Monsterlings into a dedicated section before Level 1, with a clear empty state and Drive-backed persistence.
  • Show the shared Link Chain badge in the Monsterling form preview for eligible species without mutating shared levels.
  • Group Monster Codex and Link Chains under a Monsterlings navigation section after Inventory.
  • Open accessible Monster Codex detail dialogs from cards with mutation-first navigation and source-only fallback, show published abilities and dialog-contained, independently scrollable, drag-to-pan reverse-hierarchy mutation trees with occurrence-based shared-ingredient duplication, automatically framed selected recipes, subtree centering, final mutations above their paired ingredients, straight connectors, and stacked navigation, use full-width source accordions with capture-only location placeholders, hide unavailable mutation tabs, and filter by multiple source categories with OR semantics.
  • Show a detached close-all control for stacked Monster Codex dialogs while keeping X and Escape navigation level-aware.

Loadouts: Available

  • Expose Loadouts in production navigation.
  • Create, edit, duplicate, delete, and copy team loadouts; preview them from any non-button card area and keep the currently unused image-download action hidden.
  • Offer detailed and compact monsterling stat-label share previews.
  • Toggle Monsterlings between cropped stat-icon cards and full stat strips while keeping portraits aligned with visible equipment.
  • Save loadout-specific notes from direct card and preview actions, with the loadout name shown in the notes dialog and a notification dot on card and preview actions when meaningful notes are saved; keep the More dropdown deferred until it has additional actions.
  • Record eight character build stats, pin up to five per character in canonical editor order (ATK, HP, Crit Rate, Crit DMG, DMG Boost Boss, Special Skill CD, Elemental Weakness, Element ATK), defaulting pins to ATK, Crit Rate, Crit DMG, Special Skill CD, and Element ATK, and show pinned values beside element, awakening, and skill levels in previews.
  • Require three unique owned characters selected through searchable, filterable character cards.
  • Assign three regular and one legendary owned monsterling per character through searchable, multi-tier-filterable cards, with regular-slot swapping and moving within a character.
  • Auto-name new loadouts from their first character and brand generated images with the site URL.
  • Render variant badges with export-safe solid backgrounds in generated loadout images while preserving transparent blurred badges in the app.
  • Keep character skill icons and levels aligned in loadout previews and generated images with a shared two-column layout and non-wrapping values.
  • Persist loadouts locally and through Google Drive sync.
  • Hide unfinished Artifact and Equipment slots outside development.
  • Open owned character and assigned monsterling portraits in their editors from saved loadout cards without triggering preview, and from the loadout preview modal.
  • Return to the originating loadout preview after canceling or saving an edit opened from that preview.
  • Show tier portrait frames and tier-colored backgrounds behind assigned artifacts and Monsterlings in saved loadout cards.
  • Keep saved loadout character tiles focused on portraits while preserving detail in previews, pickers, and editors.
  • Add a persisted Loadout Card Visibility setting for saved cards, with local and Google Drive defaults and accessible responsive controls.
  • Default-hide equipment in loadout previews and exports with a one-row character/artifact/Monsterling layout toggle.
  • Keep dialog state, selectors, previews, and saved-card tiles in focused feature-owned files without changing loadout behavior (verified with focused tests, repository checks, and a production build).
  • Track loadout editing, picker, slot, preview, entity-editor, image-copy, and image-download actions in GA4 without names, IDs, search text, or raw errors.
  • Preselect the current character class when opening the loadout artifact picker while keeping all artifact filters editable.
  • Match selection picker height to the 888px loadout editor height while keeping shorter viewports bounded and scrollable.
  • Capture immutable, tagged loadout snapshots with frozen build data; list, search, filter, sort, preview, copy, delete, reset, and Drive-sync them with creation metadata, tier-framed character portraits, and read-only preview hover styling distinct from editable loadouts.
  • Search saved loadouts by loadout or assigned character name while preserving alphabetical ordering, style snapshot category badges consistently in rows/previews/exports/dialogs, keep new snapshot names trimmed and separate from tag metadata, and prefix names only when an existing snapshot changes tags.
  • Add loadout notes during creation/editing and category-aware snapshot metadata, including multi-select RES Element metadata for Conquest categories, editable compact snapshot rows, direct saved-loadout actions, immutable frozen builds, and Drive-compatible legacy normalization.
  • Record required Conquest bosses with canonical portraits, use a fixed segmented clear-time format, and default new snapshot names to the trimmed source loadout name.
  • Require Rift clear times with the shared segmented control, normalize legacy Rift snapshots, and allow Normal Conquest levels through 15 while retaining level 10 caps elsewhere.
  • Filter snapshot lists by conditional Legendary Conquest elements or Conquest bosses with multi-select OR semantics, single-select Conquest difficulty banners, tag-aware reset behavior, extracted toolbar/predicate modules, and focused verification.
  • Paginate filtered and sorted loadout snapshots with selectable page sizes and accessible boundary navigation.
  • Emphasize loadout snapshot field values while keeping creation timestamps only in interactive preview headers.
  • Arrange Conquest snapshot metadata responsively in a two-column mobile, three-column small-and-up, two-row grid across saved cards, previews, and generated images, preserving reserved RES Element space and accessible Difficulty labels (verified with focused snapshot tests and repository formatting).
  • Add Drive-synced Settings control for equipment set-name captions and show active equipment sets with notification dots and portal effect tooltips in loadout previews.
  • Add Drive-synced defaults for hiding equipment and compact Monsterlings in loadout and snapshot previews and exports, with temporary preview overrides.
  • Show complete published equipment set effects in delayed hover/focus tooltips on picker cards, assigned editor buttons, and saved-card equipment tiles while keeping preview tooltips active-only.

Loadout Code Sharing: Deferred

Implementation is intentionally deferred. Keep every item unchecked until the complete vertical slice is implemented and verified.

  • Define a portable, versioned MSDTL1.<base64url-json> envelope with kind, version, loadout snapshot, and preserved extension fields. Export catalog IDs and build values—character awakening and skills, Monsterling tier, traits, and Link Chain level, and artifact fusion level—without local inventory-instance IDs or user-supplied image URLs.
  • Add bounded decoding and validation that rejects malformed, oversized, wrong-kind, and unsupported-major-version codes before state mutation. Preserve unknown catalog IDs and opaque future slot or equipment extensions through local normalization, duplication, Drive sync, and re-export; migrate supported older versions while requiring an app update for newer major versions.
  • Extend loadout slots with optional portable targets alongside existing owned references. Keep legacy loadouts inventory-backed, imported targets snapshot-backed, and imports independent from owned collections. Saving, editing, deleting, resetting, and importing must update backupUpdatedAt; Drive backup selection, legacy download normalization, conflict summaries, and local migrations must remain backward compatible.
  • Add an Import Loadout Code dialog that validates pasted input, previews it without mutating state, allows renaming, then saves a new editable target loadout with a generated ID and collision-safe Name (2) naming before opening its preview.
  • Add Copy Loadout Code actions to saved cards and previews. Export regular loadouts from current owned data, preserve imported snapshots and extensions, and refuse export with a precise error when a non-null dangling local reference cannot be reconstructed.
  • Render known unowned targets with canonical portraits, encoded target stats, grayscale/reduced opacity, and accessible “Not owned” text. Determine ownership by catalog identity rather than exact stats, continue showing shared target stats, prefer exact owned copies and then a deterministic compatible copy for editor links, and render unknown IDs with safe generic visuals and fallback names until catalog data becomes available.
  • Keep imported targets editable without creating fake inventory: unresolved targets remain intact until explicitly cleared or replaced, replacing one with owned inventory converts only that slot to an owned reference, and duplication, image export, deletion, and code re-export preserve unresolved targets.
  • Add import/export attempt, success, and failure analytics without codes, names, catalog contents, clipboard values, or raw errors. Cover codec round trips, Unicode, invalid input, unknown IDs/extensions, migrations, Drive round trips, backup timestamps, preview-before-save, collision naming, ownership resolution, target editing, dangling exports, clipboard failures, image rendering, and accessibility; finish with focused suites, pnpm test, pnpm run check, pnpm build, git diff --check, and owned/partially-unowned/unknown-target screenshots.

Home Dashboard: Available

  • Welcome users and link the available tracker features.
  • Show linked counts for owned characters, owned monsterlings, cleared codex entries, and loadouts.
  • Hide the optional roadmap section when no upcoming features are configured.

SEO: Available

  • Add player-focused titles, descriptions, canonicals, social metadata, and visible H1 copy for public tracker pages.
  • Use <Page> - Mongil: Star Dive Tracker route titles with concise page-specific H1 copy.
  • Prevent unfinished and account routes from being indexed.
  • Publish a sitemap, crawler directive, branded manifest, and home WebSite structured data.

Shared UI: Available

  • Provide clear buttons and Escape-to-clear behavior for standalone search inputs.
  • Use reusable FilterButtonGroup and FilterToggleButton controls for selectable collection dimensions, with labelled plain button groups for sort and standalone Clear actions.
  • Focus the active collection or picker search with Ctrl+K or Cmd+K and show the platform shortcut in its placeholder.
  • Copy or download fixed-layout images of the filtered Characters, Monsterlings, Artifacts, and pinned Link Chains collections with filter context and site branding.
  • Standardize character, Monsterling, codex, and picker collections on fixed-width, left-to-right product grids with consistent gaps and left-aligned incomplete rows across breakpoints.

Account

  • Serialize Google Drive uploads with latest-state-wins queuing, bounded retry, recoverable failure status, monotonic local revisions, unload protection, and generation-safe conflict handling.
  • Renew expired Google access tokens for Drive requests, replay one unauthorized request, refresh before manual Retry Sync, harden invalid session responses, and expose the Cloudflare diagnostic marker in Account failure state (verified with focused sync/auth tests and repository checks).
  • Highlight the newer backup date and larger serialized size independently when choosing between local and Google Drive copies during a sync conflict.
  • Resolve Google Drive conflicts atomically with transient conflict state, guarded Drive responses, deduplicated sync lifecycle, and exact remote-copy restoration.
  • Confirmation dialogs for destructive data-clearing actions are implemented; automated behavior verification is pending.
  • Link to the public GitHub repository from the Account page.

Chunk 1: Checklist and Event Tracking

  • Keep checklist orchestration, focused row and page components, task-form conversion, fixed-daily reset anchors at 00:00 UTC by default with published reset exceptions, and persisted normalization colocated under the checklist feature without changing rolling, weekly, interval, sync, completion, analytics, or accessibility behavior (verified with focused tests, repository checks, and a production build).

  • Use single-check completion indicators, switch completed actions to undo, hide disabled category filters while keeping All available, and align toolbar controls with shared page button styling.

  • Define typed limited events with non-displayed notice-title metadata, UTC source timestamps, recurring reset schedules, expiry behavior, and player-created UTC Start/End times verified across daily and weekly UTC boundaries.

  • Version completion keys independently from schedule changes, add the Monster Race permanent reset, and mark Discord participation on its two notice entries.

  • Share the current game version between Dimensional Rift, seasonal activities, and rebuildable stat-option caches; increment it manually for official refreshes without adding seasonal recurrence or countdown behavior.

  • Default new player-created Task and Event starts to the current UTC date at 00:00 while preserving saved times when editing.

  • Add the 100-Day Anniversary Check-In Pass and Bonus Time daily event schedules using their published UTC periods.

  • Add the First Summer Dive event set and Cool Summer Vacation login reward using their published UTC periods and explicit daily-reset behavior.

  • Retire the July 28 event set and add the Mabel and Discord events using the completed maintenance time and published UTC periods.

  • Import official checklist notices, including the Brisshell event set with official source links and verified metadata, using the project skill; preserve published non-midnight reset boundaries; and remove expired limited events during each import without changing completion records.

  • Show Event alongside Daily or Weekly badges when an event also has a recurring reset, and hide expired events at the shared checklist view boundary.

  • Distinguish event rows with daily teal, weekly violet, one-time fuchsia, and Discord blue gradients; align their badges while reserving amber row styling for ending-soon status and destructive styling for overdue items.

  • Show player-created Task and Event notes beneath item names with a compact two-line limit.

  • Add editable 500-character notes to permanent checklist items, persisted locally and through Google Drive.

  • Track Request Board as a permanent daily activity resetting at 00:00 UTC.

  • Keep single occurrence checks and grouped full-event checks, sort non-completed before completed and then by event > permanent > custom and weekly > daily > other, and show reset/End countdowns beside status.

  • Sort same-group checklist events by upcoming start time, then active or ending-soon end time, before alphabetical fallback.

  • Show occurrence and full-event completion controls for daily events, while non-daily events use only one full-event completion control for their full duration.

  • Design the durable checklist data model and evaluate local and Google Drive persistence.

  • Build an accessible, responsive Checklist page with compact horizontal event and task rows, plus relevant tests.

  • Separate incomplete and completed checklist items with a labeled divider that follows the Show completed preference.

  • Hide expired official and player-created events at the shared checklist view boundary while preserving stored tasks and completion keys.

  • Independently control ordinary and fully completed checklist visibility, with legacy local and Drive preferences defaulting to visible.

  • Expose the Checklist navigation item after the feature is release-ready.

  • Use the shared compact collection empty state titled “No ongoing or upcoming items.” for history-only, hidden-history, and disabled-category empty results, with a visible “Completed” separator before retained completed history.

Chunk 2: Artifacts Inventory

  • Add Brisshell's Tier 5 Earth Assassin artifact, Monstrous Longing.
  • Define typed artifact data, owned-artifact fields, images, and validation from the game source.
  • Add owned-artifact create, edit, delete, reset, local persistence, and mutation timestamps.
  • Build the Artifacts page with cards, search, filters, empty states, and accessible forms.
  • Keep artifact cards fixed-size with tier frames and fusion shields; use card-driven editing with a shared add/edit form and compact controls.
  • Add Drive backup selection, legacy defaults, conflict metadata/UI, and behavioral tests.
  • Expose the Artifacts navigation item after the page is release-ready.
  • Sort artifact catalogs, owned copies, and loadout picker results with Tier 5 artifacts first.

Chunk 3: Equipments Inventory

  • Define typed equipment data, owned-equipment fields, slot categories, images, and validation from the game source.
  • Add owned-equipment create, edit, delete, reset, local persistence, and mutation timestamps.
  • Build the Equipments page with cards, search, filters, empty states, and accessible forms.
  • Add Drive backup selection, legacy defaults, conflict metadata/UI, and behavioral tests.
  • Expose the Equipments navigation item after the page is release-ready.

Chunk 4: Loadout Inventory Integration

  • Show exact-instance loadout usage on owned Monsterling and Artifact cards with deduplicated character portrait stacks and complete hover/focus details, without affecting pickers, forms, previews, exports, snapshots, or persisted data.
  • Assign one unique owned-artifact copy per character slot, with legacy local and Drive defaults.
  • Add artifact filtering, assignment, replacement, clearing, cards, previews, exports, safe missing-record handling, and editor links.
  • Show completed Artifact slots in production.
  • Add four equipment references to each character slot, with legacy local and Drive defaults.
  • Add catalog equipment filtering, assignment by part type, replacement, clearing, cards, previews, exports, validation, analytics, and behavioral tests.
  • Show completed Equipment slots in production while keeping owned Equipment inventory deferred.
  • Add the 14 Prime equipment variants and published set effects from the catalog reference.

Release Checklist

  • Update this roadmap and relevant tests in the implementation change.
  • Verify pnpm test, pnpm run check, and pnpm build.