chore(series): fully remove series tags (destructive)#1918
Merged
Conversation
Series tags — a tag attached to a recurring series that was materialized
onto its member transactions as system-provenance inherited copies — are
deprecated and removed end-to-end. They added a second tagging surface
that overlapped transaction tags and the rules substrate without earning
its keep; membership + enrichment now live entirely in assign_series
rules and the per-transaction tag layer.
Destructive: drops the series_tags table (migration). Member transactions
keep whatever tags they currently carry — this only removes the series→tag
links and stops future inheritance.
Removed:
- DB: series_tags table (drop migration) + its sqlc queries/model.
- Service: AddSeriesTag/RemoveSeriesTag/ListSeriesTags, the link/unlink
tag inheritance (backLinkAndTag → backLinkMembers), SeriesResponse.Tags,
and the 'tags' series field selector.
- MCP: add_series_tag / remove_series_tag tools (+ reworded list/get/unlink
descriptions that referenced inherited tags).
- REST: POST /series/{id}/tags, DELETE /series/{id}/tags/{slug}.
- Admin UI: the series-detail Tags panel + its props, admin wiring, and
the tag-picker JS in series_detail.js.
- openapi.yaml paths + schema 'tags'; docs (data-model, api-endpoints,
mcp-tools-reference).
NOT touched: transaction tags, the add_tag/remove_tag rule actions, and
the series / in_series rule condition fields — those are separate.
Build matrices (default/headless/lite) + unit + integration green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012fRHZ1CTjEZ1xFwQmW27jU
canalesb93
added a commit
that referenced
this pull request
Jun 24, 2026
Pull in main (#1907–#1919). Two changes interact with this PR: - #1918 fully removed series tags (AddSeriesTag/RemoveSeriesTag service methods gone). Reverted this PR's update_series tag fold: update_series is back to name/type only, and the tags_to_add/tags_to_remove input + handler loops are removed. Series no longer have a tag dimension. - #1913 added four series/counterparty workflow preset prompts written against main's older tool surface. Scrubbed their stale refs to match the consolidated tools: breadbox://overview → get_overview; batch_create_rules → create_transaction_rule rules array; set_series_type / split_series / review_series / explain_series_candidates (all removed upstream) → update_series / unlink_series_transactions / get_series. Resolved the docs/mcp-tools-reference.md conflict by taking main's series-unlink description (no tags). The counterparty create→assign fold and unlink rename from the prior commit are preserved. Verified: go build ./..., go vet ./..., and the full internal/mcp integration suite green on a clean DB. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y7qg4TN9ZPcHsXR714UrjG
4 tasks
canalesb93
added a commit
that referenced
this pull request
Jun 24, 2026
…1923) The reference documented ~15 tools that no longer exist (drift inherited from main, predating the consolidation). Align it with the registry: - Remove phantom sections: categorize_transaction, reset_transaction_category, batch_categorize_transactions, bulk_recategorize, import_categories, add_transaction_tag, remove_transaction_tag, add_transaction_comment, list_transaction_comments, create_session, trigger_sync, and the whole account-link + match family. - Drop the stale "call create_session first" Sessions guidance (sessions are automatic now) and the series `tags` mentions (series tags removed in #1918). - Add the missing set_transaction_metadata section. Documented tools now match the registry exactly (35/35). Docs-only. Claude-Session: https://claude.ai/code/session_01Y7qg4TN9ZPcHsXR714UrjG Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fully removes series tags — a tag attached to a recurring series that was materialized onto its member transactions as system-provenance "inherited" copies. The feature added a second tagging surface overlapping transaction tags and the rules substrate without earning its keep; series membership + enrichment now live entirely in
assign_seriesrules and the per-transaction tag layer.20260624120000_drop_series_tags.sqldrops theseries_tagstable. Member transactions keep whatever tags they currently carry — this only removes the series→tag links and stops future inheritance; it does not strip already-materialized tags from transactions. Merging tomainauto-deploys and runs this on live data.Removed end-to-end
series_tagstable (drop migration) + its sqlc queries/model.AddSeriesTag/RemoveSeriesTag/ListSeriesTags, the link/unlink tag inheritance (backLinkAndTag→backLinkMembers),SeriesResponse.Tags, and thetagsseries field selector.add_series_tag/remove_series_tagtools (+ rewordedlist_series/get_series/unlink_series_transactionsdescriptions that referenced inherited tags).POST /series/{id}/tags,DELETE /series/{id}/tags/{slug}.series_detail.js.openapi.yamlpaths + schematags;data-model.md,api-endpoints.md,mcp-tools-reference.md.NOT touched (separate concepts)
Transaction tags, the
add_tag/remove_tagrule actions, and theseries/in_seriesrule condition fields all stay — those are distinct from series tags.Validation
Default / headless / lite builds,
go vet, the unit suite, and the integration suite (db/service/api/mcpagainstbreadbox_test, which applies the drop migration via goose) all pass.🤖 Generated with Claude Code