feat: per-occurrence recurring-series title suggestions (#191) #223
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/191-series-titles"
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?
Suggest titles for the next occurrence of a recurring session series, sourced from the previous occurrence's summary, with an always-available manual entry.
Backend
series_titlesworkbench tool: params{session_id}; a context builder finds the most recent prior summarised occurrence in the same series and folds its recap into the prompt; output{suggestions: [{title, description}]}. Tolerant parser (never raises).SessionResponsenow exposesseries_id+series_occurrence_date(additive; frontend response only — not the bot contract, noBOT_CONTRACT_VERSIONbump) so the planning UI can identify series occurrences.Frontend
SeriesTitleSuggesterpanel: pick an upcoming series occurrence → "Suggest titles" → each{title, description}has "Use this title" which writes it onto the occurrence via the existingupdateSessionPATCH. An always-present manual title/description block is the fallback.suggestionsis not an error).Criterion 1 already holds
Per-occurrence titles already survive series-level edits:
materialize_session_seriesinserts occurrences withon_conflict_do_nothing, so it never overwrites an edited title.SessionUpdatealready carriestitle+description. So the only new work was the suggestion generation + wiring.Notes
SeriesManager; deeper inline series-UI integration could be a follow-up.Verification (Docker)
test_workbench_series_titles.py— previous-summary grounding, no-previous graceful path, 422, GM-only, parser tolerance)ruff check+ruff format --checkclean; eslint 0 errorsCloses #191.
Suggest titles for the next occurrence of a recurring session series, sourced from the previous occurrence's summary, with an always-available manual entry. - series_titles workbench tool: params {session_id}; a context builder folds the most recent *prior* summarised occurrence in the same series into the prompt; output {suggestions: [{title, description}]}. Tolerant parser. - SessionResponse now exposes series_id + series_occurrence_date (additive; not the bot contract) so the planning UI can identify series occurrences. - SeriesTitleSuggester panel: pick an upcoming series occurrence, suggest titles, "Use this title" writes title+description onto the occurrence via the existing session PATCH — or type your own. Degrades to manual with no error when there's no prior summary or the LLM is unconfigured. Per-occurrence titles already survive series edits: materialize_session_series inserts occurrences with on_conflict_do_nothing, so it never clobbers an edited title (criterion 1). No new models or migrations. Backend 735 passed; frontend 397 passed; ruff + eslint clean; build OK. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>