Skip to content

Calends 1.7.0

Choose a tag to compare

@imetn imetn released this 22 Oct 10:39
· 388 commits to main since this release

Calends 1.7 brings shared-plan billing rules into one place, makes member collections easier to manage, and adds renewal rules for advance charges and cancellation deadlines.

Highlights

  • One collection rule for each shared plan. Set the fee, currency, cycle and common collection date once. Members can follow the plan, use a custom rate or take an exempt seat. Dated changes preserve earlier coverage and receipts.
  • A clearer member and collection workflow. Shared-plan details show each member’s fee, follow/custom label, current coverage, collection status and days overdue. Open a member to adjust billing or choose a paid-period start and derive its end. Record receipts against independent member periods; received payments collapse by coverage and outgoing charges by year.
  • People and plan-specific accounts. Add private avatars, keep a separate member account for each plan, and use the compact people table with collection filters and sorting. Subscription editors show member billing summaries and overdue status.
  • Renewal rules. Track advance charging and cancellation deadlines separately from service coverage. Common-service presets help with setup; dated changes preserve earlier payments and feed the calendar, forecasts and reminders.
  • Editable price history. Correct effective dates and amounts or remove later price points in place. Actual payments stay intact, with confirmation when past estimates change.
  • 32 MCP tools. Manage shared-plan rules and member following, inspect overdue days, and maintain wallets, categories, people and ledger settings. Category assignments are validated; creating a missing category requires an explicit request. Writes retain scoped permissions and dry_run previews.
  • Isolated MCP release checks. The new scripts/mcp-release-check.mjs exercises real Worker requests with fictional data, covering schemas, permissions, previews, dated member fees and receipts, with optional provider-backed assistant checks.

Fixes

  • Kept shared-plan receipt amounts, currencies, notes and historical coverage intact when changing billing rules; hid first-period labels once that period was paid.
  • Fixed MCP member-fee handling at its effective date, preserved earlier fee history when switching back to the shared-plan rule, and kept former members unchanged when editing that rule. Members without a pending collection no longer appear overdue; MCP and assistant responses now use explicit collection dates and preview summaries.
  • Timeline loss labels now measure the actual text width and fall back to rounded amounts when the full amount does not fit.
  • Unified zero-decimal currency formatting and amount-input validation across the app.
  • Improved subscription details, calendar day cards, member tables and narrow-screen dialogs, with less repeated information and consistent keyboard focus rings. Inline delete actions now expand into an explicit confirmation step.
  • Kept the assistant welcome screen stable after history loads and restored subscription details when closing their editor.

Upgrading

There are no breaking changes and no new database migrations (the latest remains 0007). Upgrade directly from 1.6.0 using the same configuration and data volume. Existing shared plans remain compatible; stored collection rules, avatars and renewal settings are optional.

Images

The release workflow publishes multi-architecture images (linux/amd64, linux/arm64) to Docker Hub and GitHub Container Registry:

docker pull xizozhe/calends:1.7.0
docker pull ghcr.io/imetn/calends:1.7.0