Skip to content

chore(series): fully remove series tags (destructive)#1918

Merged
canalesb93 merged 1 commit into
mainfrom
worktree-remove-series-tags
Jun 24, 2026
Merged

chore(series): fully remove series tags (destructive)#1918
canalesb93 merged 1 commit into
mainfrom
worktree-remove-series-tags

Conversation

@canalesb93

Copy link
Copy Markdown
Owner

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_series rules and the per-transaction tag layer.

⚠️ Destructive migration

20260624120000_drop_series_tags.sql drops the series_tags table. 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 to main auto-deploys and runs this on live data.

Removed end-to-end

  • DB: series_tags table (drop migration) + its sqlc queries/model.
  • Service: AddSeriesTag/RemoveSeriesTag/ListSeriesTags, the link/unlink tag inheritance (backLinkAndTagbackLinkMembers), SeriesResponse.Tags, and the tags series field selector.
  • MCP: add_series_tag / remove_series_tag tools (+ reworded list_series/get_series/unlink_series_transactions descriptions that referenced inherited tags).
  • REST: POST /series/{id}/tags, DELETE /series/{id}/tags/{slug}.
  • Admin UI: the series-detail Tags panel + its props, the admin handler wiring, and the tag-picker JS in series_detail.js.
  • Spec/docs: openapi.yaml paths + schema tags; data-model.md, api-endpoints.md, mcp-tools-reference.md.

NOT touched (separate concepts)

Transaction tags, the add_tag/remove_tag rule actions, and the series / in_series rule 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 / mcp against breadbox_test, which applies the drop migration via goose) all pass.

🤖 Generated with Claude Code

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 canalesb93 added the rules-substrate Rules-as-universal-substrate sprint (base: feat/rules-substrate) label Jun 24, 2026
@canalesb93 canalesb93 enabled auto-merge (squash) June 24, 2026 06:34
@canalesb93 canalesb93 merged commit be313b3 into main Jun 24, 2026
8 checks passed
@canalesb93 canalesb93 deleted the worktree-remove-series-tags branch June 24, 2026 06:35
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
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rules-substrate Rules-as-universal-substrate sprint (base: feat/rules-substrate)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant