From cf8b72d73750d09739fb9ea4774386f12854097b Mon Sep 17 00:00:00 2001 From: Paul Trowbridge Date: Tue, 22 Sep 2026 23:09:08 -0400 Subject: [PATCH] Default the change log to Mine instead of Everyone Opening the log is almost always to check your own recent work, not the whole version's, so it now starts on 'mine' -- still resets on every open rather than persisting, same reasoning as before, just the other default. Co-Authored-By: Claude Sonnet 5 --- CLAUDE.md | 11 ++++++----- ui/src/views/Forecast.jsx | 10 +++++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 46beb80..c74f63e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -763,11 +763,12 @@ accounts, one of them the reader's, so finding your own meant reading the `By` column down the whole list. Marked *and* filterable on purpose: the mark is how you tell without hiding -anybody, the filter is for when you want only yours. It resets to Everyone on -every open and is not persisted — a filter that hides other people's work is -fine as a thing you asked for and a trap as a thing you inherited from last -week. `isMine()` is strict authorship, deliberately not `canUndo()`: an admin -can undo everything, and marking every row as theirs would say nothing. +anybody, the filter is for when you want only yours. It resets to Mine on +every open and is not persisted — opening the log is almost always to check +your own recent work, and a stale "Everyone" from last session is a worse +default than the reverse would be. `isMine()` is strict authorship, +deliberately not `canUndo()`: an admin can undo everything, and marking every +row as theirs would say nothing. The fetch stays unfiltered, since the counts on the control need the whole set. diff --git a/ui/src/views/Forecast.jsx b/ui/src/views/Forecast.jsx index 02298b3..9147eab 100644 --- a/ui/src/views/Forecast.jsx +++ b/ui/src/views/Forecast.jsx @@ -255,10 +255,10 @@ export default function Forecast({ sources = [], sourceId, versions = [], versio const [showBridge, setShowBridge] = useState(false) const [logEntries, setLogEntries] = useState([]) const [logLoading, setLogLoading] = useState(false) - // Whose entries the log lists. Not persisted, and it resets to everyone on - // every open: a filter that hides other people's work is fine as a thing you - // asked for and a trap as a thing you inherited from last week. - const [logWho, setLogWho] = useState('all') // 'all' | 'mine' + // Whose entries the log lists. Not persisted, and it resets to mine on + // every open, so opening the log starts on what you're most likely looking + // for -- your own recent work -- rather than everyone's. + const [logWho, setLogWho] = useState('mine') // 'all' | 'mine' const [editingCell, setEditingCell] = useState(null) // { id, field: 'note'|'tag', text } const [undoingId, setUndoingId] = useState(null) @@ -1828,7 +1828,7 @@ export default function Forecast({ sources = [], sourceId, versions = [], versio async function openLog() { setShowLog(true) setExpandedLog(null) - setLogWho('all') + setLogWho('mine') setLogLoading(true) try { // Baseline and reference loads are segment construction, not forecasting.