Skip to content

ux(copy): label watch-list portability, cue broadcast export stripping - #84

Open
KevinBigham wants to merge 1 commit into
mainfrom
fix/ux-trust-copy
Open

ux(copy): label watch-list portability, cue broadcast export stripping#84
KevinBigham wants to merge 1 commit into
mainfrom
fix/ux-trust-copy

Conversation

@KevinBigham

Copy link
Copy Markdown
Owner

Two small trust-copy wins (C7 label-only + C30)

No behavior changes — copy + test assertions only.

1. Watch List portability label (C7 / decision D4, label-only option)

The Watch List source panel already said pins were "browser-local" but left the portability implication ambiguous next to trust-oriented backup copy. It now states the decision explicitly:

pins stay on this browser only and are not included in .mfd cartridges or Combined Backup exports. After moving browsers or machines, re-pin your targets.

2. Broadcast portability cue (C30)

Exports intentionally strip generated broadcast commentary payloads from played games (dynasty-cartridge.ts) to keep files small — but players had no in-product cue for that. The Portable Backup panel now discloses it, alongside the assurance that scores, stats, standings, records, and dynasty history all export normally.

Verification

  • Updated WatchListScreen.test.tsx and DynastyCartridge.test.tsx lock both copy contracts.
  • Focused web tests ✅ 33/33 · web typecheck ✅
  • No GameState, save schema, RNG, engine, or route changes.

Rollback

Revert; copy returns to previous wording.

Two small trust-copy wins, no behavior changes:

- Watch List: source panel now states explicitly that pins are
  browser-local convenience state by design, stay on this browser
  only, and are not included in .mfd cartridges or Combined Backup
  exports - with re-pin guidance after moving browsers/machines.
  This implements the label-only side of the watch-list portability
  decision instead of leaving it ambiguous next to backup copy.
- Dynasty Cartridge: Portable Backup panel now discloses that exports
  intentionally strip generated broadcast commentary payloads from
  played games to keep files small, while scores, stats, standings,
  records, and dynasty history all export normally. Players previously
  had no in-product cue for the stripped broadcast payloads.

Tests updated to lock both copy contracts. Focused web tests 33/33
green; web typecheck green. No GameState, schema, RNG, engine, or
route changes.
@KevinBigham
KevinBigham enabled auto-merge (squash) August 3, 2026 00:45

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4d959449e1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Use Advanced .mfd actions only when you need the old current-save-only cartridge format.
</span>
<span style={{ ...monoSm, color: 'var(--mfd-text-dim)' }}>
One thing does not travel: exports intentionally strip generated broadcast commentary payloads from played games to keep backup files small.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Disclose removal of the full broadcast payload

When a player relies on this backup copy, describing the stripped data as only “broadcast commentary” understates the loss: sanitizeSaveForExport deletes the entire result.broadcast, including quarters, play-by-play, highlights, momentum swings, and ghost lines. Although selectors can regenerate a broadcast after import, it may not preserve the original presentation details, so the portability warning should identify the full broadcast/replay payload rather than commentary alone.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants