feat: personal and private packing categories#961
Open
robbedekien wants to merge 2 commits intomauriceboe:devfrom
Open
feat: personal and private packing categories#961robbedekien wants to merge 2 commits intomauriceboe:devfrom
robbedekien wants to merge 2 commits intomauriceboe:devfrom
Conversation
422507b to
ad98f3e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds shared/personal/private packing categories so trip members can keep
items personal to themselves (own check state, visible to others) or
fully private (owner-only). Templates round-trip shared and personal
categories; private items stay with their owner.
Server:
packing_items.categorytext → typedpacking_categoriestable withtype ∈ {shared, personal, private},adds
packing_item_checksfor per-user check state on non-sharedcategories, and re-keys
packing_category_assigneesfrom categoryname to
category_id.typetopacking_template_categoriessoapplyTemplate can recreate personal categories as personal owned by
the applying user.
/packing/categories. Per-user checktoggles broadcast actor-only (Option B) so personal/private state
doesn't leak to other clients.
list/create/update/delete_packing_categorytools.Client:
menu items, type picker on Add Category, hint line under Save as
Template explaining private exclusion.
tracks their own checks." etc) localised in 15 languages.
/categorieswhen itemsreference unknown ids (covers post-applyTemplate flow); category
delete mirrors the server-side cascade in the store.
Documentation:
wiki/Packing-Lists.mdwith the new category types andtemplate behavior.
wiki/MCP-Addon-Tools.mdwith the 4 new tools.Tests:
category CRUD, type validation, duplicate-409, private-category
isolation, per-user check state, shared→personal conversion, and
the save→apply round-trip preserving personal type for the applying
user. All 36 integration + 30 unit packing tests pass.
category_idpercategory name; existing 67 PackingListPanel tests pass plus updated
assertions for the new POST/PATCH/DELETE category endpoints.
Related Issue or Discussion
https://discord.com/channels/1488298068427411591/1491808813240684615
Type of Change
Checklist
devdevbranch, notmain(wiki-only PRs are exempt)Demo
Below are 2 screenshots of different users viewing the same trip. Showcasing separate checked state and private categories

