fix(ui): key user-editable lists by index, not value #102
No reviewers
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_archipelagos!102
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/dup-key-101"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
User-editable lists (tags, acceptance criteria, deliverables) used each item's string value as its Dioxus
key. Duplicate values collided and Dioxus 0.7's keyed-diff hard-asserts on unique keys, crashing the WASM with anunreachabletrap on the next re-render (e.g. when deleting a story with duplicate acceptance criteria). Switch those loops to enumerate-based keys.Related Issue
Closes #101
Changes
archipelagos/productivity/stories/src/views/story_detail_view.rsarchipelagos/productivity/sprints/src/views/milestone_detail_view.rsarchipelagos/productivity/tasks/src/views/task_detail_view.rsarchipelagos/productivity/tasks/src/views/task_item.rsarchipelagos/productivity/projects/src/views/project_detail_view.rsTest Results
cargo check -p hero_archipelagos_{tasks,stories,projects,sprints}: passcargo fmt: passUI-only change; logic covered by manual verification below.
Manual verification
acceptance_criteria = ["a", "b", "a"], open detail, click Delete — no panic, story removed["bug", "ui", "bug"], open detail — renders without console errordeliverables = ["x", "x"], open detail — renders cleanly