Expand description
The wipe domain model.
These types map 1:1 onto the JSON files under .wipe/. Field order is
significant: serde_json serializes struct fields in declaration order, and we
rely on that (plus Vec ordering and no hash maps) to keep on-disk output
deterministic. Optional/empty fields are skipped so diffs stay minimal.
Structs§
- Activity
- A recorded change to a ticket, shown in the activity timeline alongside
comments. Kept deliberately small and pre-classified so any front-end can
render a phrase from
kind+detailwithout re-deriving it from diffs. - Attachment
- A file attached to a ticket.
- Board
- The board - the top-level object of a project. Holds ordered
Lists whosecardsreference ticket IDs. Ticket content lives in separate files undertickets/, so moving a card and editing a ticket never touch the same file. - Comment
- An inline comment on a ticket.
- Daemon
Settings - Configuration for the local daemon that serves the human UX.
- Definitions
- Project-wide registries: labels and priorities. (Tickets are categorized by labels only; there is no separate “type” or “tags” concept.)
- Identity
- A person or agent that can be assigned to tickets and author comments.
- Label
Def - A label definition.
- List
- A list (column) on the board.
cardsis the ordered set of ticket IDs it holds. - Post
- A single forum post: the root of a thread, or a reply at any depth. IDs are
dotted and self-describing (
F-1,F-1.1,F-1.1.2), so the tree is legible from the ID alone and a subtree is “every ID under this prefix”. - Relation
- A relation from one ticket to another.
- Settings
- Project settings, including how the local daemon is exposed.
- Thread
- A forum thread: a root
Postplus its nested reply tree. Stored as one file per thread under.wipe/forum/<id>.json, so replies to different threads never conflict and deleting a thread is deleting a file. - Ticket
- A ticket (card). Stored as its own file; comments are inline and short.
Enums§
- Attachment
Source - Where an
Attachment’s bytes live. - Exposure
- How the local daemon is reachable.
- Identity
Kind - Kind of an
Identity. - Relation
Kind - The kind of a
Relation. - Starter
- What to pre-populate a new board with (chosen during
wipe init).
Constants§
- DEFAULT_
PORT - Default port the local daemon listens on when the user hasn’t chosen one.
- FORMAT_
VERSION - On-disk format version. Bumped when the JSON schema changes in a backwards-incompatible way; every top-level file carries it for migration.
- LABEL_
PALETTE - The label color palette. New labels are auto-assigned the first unused entry;
colors can also be changed later. Matches the label set in
docs/DESIGN.md.
Functions§
- next_
label_ color - Pick the first palette color not already used by an existing label; if every palette color is in use, cycle deterministically by count.