Commit Graph
11 Commits
Author SHA1 Message Date
wt 30a0ca6520 Merge pull request 'Версия 3.2.0: контракт v2, оформление «Лес»' (#2) from develop into main
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
Reviewed-on: #2
v3.2.0
2026-10-31 19:17:46 +00:00
wtandClaude Opus 5.5 800dc77a39 Bump version to 3.2.0 (15)
Build / Build (watchOS Simulator) (pull_request) Canceled after 0s
Build / Build (watchOS Device) (pull_request) Canceled after 0s
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 02:15:47 +07:00
wtandClaude Opus 5.5 9cfac1797c Restyle the watch app in the «Лес» palette with the Flutter app icon
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
- BalancePalette (Shared/AppTheme.swift): the palette of BalanceFlutter's
  default preset. Balance card in a green gradient with mint text, income
  teal (↙) and expense deep orange (↗) as in the Flutter app, mint accent
  and a forest «Добавить операцию» button instead of indigo/purple.
- Money shows no kopecks when whole, otherwise exactly two decimals
  («8 480,50 ₽»), like the Flutter client.
- App icon: same artwork as BalanceFlutter (branding/icon.svg), every
  size of AppIcon.appiconset rendered by the new branding/render.sh
  (resvg, bundled Roboto fonts).
- Repository avatar and README banner redrawn in the same style as the
  BalanceFlutter banner, with real simulator screenshots (docs/).

Checked on the watchOS 27.2 simulator (icon in the app grid, home and
accounts screens). Builds for simulator and device.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 02:11:00 +07:00
wtandClaude Opus 5.5 94177dbb0b Fix launch crash: rename SyncRecord.entity to entityName
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
CoreData treats `entity` as the managed object's entity, so the predicate
`entity == "setting"` became a fetch of an entity named "setting" and the
app aborted at launch ("setting" is not a valid entity name). The model is
new in the unreleased contract v2 change, so no migration is needed.

Verified on the watchOS 27.2 simulator: launch, login to a local
BalanceServer v2, total balance 57 800 ₽ with a USD account converted at
the synced rate and a cross-currency transfer, per-account balances
39 800 ₽ and $200.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-01 01:53:36 +07:00
wtandClaude Opus 5.5 d0b023b1ba Contract v2: clarify ids, rates, recurring, ledger and attachment details
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 23:51:38 +07:00
wtandClaude Opus 5.5 0ccb7e1861 Implement contract v2 on the watch: accounts, rates, base currency, ledgers
- Sync and store accounts, transfers, rates and the baseCurrency setting;
  keep recurring, goal, debt and attachment records as raw payloads.
- Skip unknown entities on pull; preserve unknown payload fields of
  transactions, categories and budgets and send them back on re-save.
- Compute balances in integer cents: total balance, analytics and budgets
  in the base currency, per-account balances in the account currency,
  "нет курса C→B" warning when a rate is missing.
- Read-only accounts screen and an optional account picker when adding a
  transaction (currency follows the account).
- Shared ledgers: choose personal or shared in settings, join by code,
  separate SwiftData store, cursor and deletion journal per ledger,
  X-Balance-Ledger header on sync.
- Hide v2 features and do not push new entities when
  GET /v1/capabilities returns 404.
- Keep the wire id of records (lowercase UUID for new ones) so edits of
  records created by other clients do not create duplicates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 23:30:01 +07:00
wt b00cc11fb0 Merge pull request 'Add repository avatar and README banner' (#1) from develop into main
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
Reviewed-on: #1
v3.1.1
2026-10-30 10:00:33 +00:00
wtandClaude Opus 5.5 29a4664401 Add README banner
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
Build / Build (watchOS Simulator) (pull_request) Canceled after 0s
Build / Build (watchOS Device) (pull_request) Canceled after 0s
Wide banner with the watch, project name and stack tags, shown at the
top of README. Also list branding/ in the structure trees of README
and AGENTS.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:58:03 +07:00
wtandClaude Opus 5.5 9acc3baa89 Add repository avatar
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
Watch with the Balance mark from the app icon; PNG for Gitea plus
editable SVG source. Kept outside BalanceWatch/ so it stays out of
the app bundle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 16:49:19 +07:00
wt e73d4dd5e4 Create AGENTS.md
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
2026-10-30 12:29:10 +07:00
wt ea6abfc139 initial commit
Build / Build (watchOS Simulator) (push) Canceled after 0s
Build / Build (watchOS Device) (push) Canceled after 0s
2026-10-30 12:24:11 +07:00