Notes field per entry #14
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/13-notes-field"
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?
Closes #13 (will be manually closed on merge).
Summary
Optional free-text notes on every entry: budget-side and month-side. Snapshot copies notes through to the month. Notes changes do not count as "edited" deviation since they are annotation, not plan drift.
notes TEXT NULL (String(1024))added toentryandmonth_entryvia alembicbatch_alter_tablecreate_monthcopiesentry.notesinto each freshmonth_entry.notesPOST /entries/{id}/notesendpoint for editing an existing budget entry's notes without delete-and-recreatePOST /month/{year_month}/entries/{id}now accepts anotesfield alongside name / planned / appliedTest plan
uv run pytestpasses (82/82, +14 new)uv run alembic upgrade headapplies the new migration anddowngrade -1rolls back cleanlyPOST /entries/{id}/notesupdates the budget notes (verified with URL-encoded form data)create_monthcarries notes into the month snapshotstate-unchangedtostate-editedOut of scope
Each entry row gains a secondary notes row with an inline-editable text input. Budget entries post to a new /entries/{id}/notes endpoint; month entries reuse the existing update route. Add forms gain an optional "notes (optional)" input that spans the form row. Notes render muted with a dashed underline on hover to signal editability without cluttering the layout. Changing notes on a month row does not flip the deviation state since the financial values are unchanged. Refs #13 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>