Skip to content

feat(characters): wills and estates on Profile (stage 6b) - #218

Merged
ryanbarlow97 merged 6 commits into
mainfrom
stage6b/estates
Oct 13, 2026
Merged

ryanbarlow97 merged 6 commits into
mainfrom
stage6b/estates

Conversation

@ryanbarlow97

@ryanbarlow97 ryanbarlow97 commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Stage 6b gives the website wills and estates (design ~/stage6b/design.md, section W5 and Website; umbrella TF-Minecraft/RPCharacters#89).

The roster push now carries each character's death date, death id, will and estate. Wills are stored on the roster row and estates in a new character_estates table keyed by realm and death, which a roster push never deletes. An older will or estate revision never replaces a newer one; within one estate revision, the plugin's updated_at decides.

Profile can name an heir or revoke a will. The request goes into a new will_requests queue that RPCharacters pulls and acknowledges, like web creation. Both plugin routes require a realm and the ack is checked against the request's realm. A heir search lists living characters of the player's realm by name (three letters or more, ten results, rate-limited) with name, race and short id only, marking the player's own.

On Profile, living cards show "Heir: Kira" or "No will" with Change and Revoke, and a pending change until the server answers. Dead and missing cards open a read-only memorial: death date or "Before records began", heir, estate state and who received what. Wardrobe and kit pages, and their backend edits, refuse dead and missing characters.

Integrated the staff character cards and full sheets from #219 without changing will/estate routes or payloads. Profile alone passes the session token and will callbacks; staff cards and sheets stay read-only. Combined regressions cover Profile revoke/refresh, staff cards carrying living will data, staff full-sheet access checks, and historical portraits that remain available while wardrobe reads refuse dead/missing characters. The later AdminNav focus change from #220 combines cleanly and remains in main.

Routes and payloads are in the paired Docs guide: TF-Minecraft/Docs#216.

Validation on integration head 24cf8c4b: focused backend wills/roster/wardrobe-picture/staff tests 113 passed; focused frontend 118 passed; full frontend 192 files / 2199 passed + 1 skipped; formatting clean; lint passed with existing warnings; production Next build including TypeScript, static pages and search indexing passed. The earlier full backend 2282 passed + 1 skipped gate was on 64392171; no backend implementation conflict or new edit required repeating that whole suite. GitHub CI runs against the combined merge ref. Draft pending the coordinated stage 6b rollout; merging deploys Dev.

ryanbarlow97 and others added 3 commits October 13, 2026 14:04
…nges from Profile

The roster push now carries each character's death, will and estate.
Estates live in character_estates keyed by realm and death, so a push never
deletes them, and an older will or estate revision never replaces a newer one.

Profile can ask RPCharacters to name an heir or revoke a will through a
pull-and-ack queue like web creation. The plugin routes require a realm and
check it against the request's. A heir search lists living characters of the
player's realm by name, without saying who plays them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…haracters

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Living cards show the heir or No will, with Change (a name search) and
Revoke; a change shows as pending until the server answers. Dead and missing
characters open a read-only view with the death date, heir and where the
estate went. Wardrobe and kit pages turn the dead away.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

ryanbarlow97 and others added 2 commits October 13, 2026 15:40
…e-step applied ack

Same-revision estates now compare updated_at with milliseconds, so a push built
earlier in the same second cannot undo a decision. An applied ack updates the
stored will only at base_revision + 1; anything else waits for the roster push.
Negative counts and money read as zero.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ryanbarlow97
ryanbarlow97 marked this pull request as ready for review October 13, 2026 18:21
@ryanbarlow97
ryanbarlow97 merged commit 45a7c18 into main Oct 13, 2026
6 checks passed
@ryanbarlow97
ryanbarlow97 deleted the stage6b/estates branch October 13, 2026 18:22

This branch was successfully deployed

1 active deployment
preview — 24cf8c4b Deployed Oct 13, 2026 by ryanbarlow97 via deploy #385
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.

1 participant