Repository navigation
Conversation
Platform primitives for transactional verticals (issue #57): - Move core.currency from addons/geo to addons/base so the catalog, its rates, and the UoM master data ship as one always-on platform unit. - Add core.currency.rate (currency, rate, date_from, active) with (currency, date_from) natural keys for idempotent data syncs. - Add uom.category and uom.uom (factor, rounding) with (name, category) natural keys. - Add sdk.ConvertCurrency / sdk.ConvertUom / sdk.ConvertMoneyField: ConvertMoneyField resolves the currency=<field> tag from the model registry, so ORM float/money fields tagged as currency convert via the newest effective rate for the requested date. - Seed data + admin views/menus/actions in addons/base (no accounting app): 8 currencies with bootstrap rates, 5 UoM categories, 16 units. - Tests: pure math unit tests, addon registration tests, integration tests for conversions, and an isolated Addon.SyncToDB regression test covering cross-record refs and natural-key upserts. Co-Authored-By: Claude Code <noreply@anthropic.com>
test/module/integration/install_closure_test.go no longer compiled (orm.InitDB returns no value) and, with kernel models registered, searches on sys.module without a bypass context fail access checks. Give both integration smoke tests the model registry and a bypass context so they pass against an initialized database. Co-Authored-By: Claude Code <noreply@anthropic.com>
Date-sensitive bootstrap rates are business data, not master data: a fresh production database should not be born with stale 2026-01-01 rates. The currency catalog and UoM data stay core; core.currency.rate rows are now created by verticals or rate providers, and the (currency, date_from) natural keys remain so verticals can ship their own rate data files idempotently. - Rename data/core_currency_rate_data.xml to core_currency_data.xml and drop the rate records (catalog only). - Document the non-seeding policy on the core.currency.rate model. - SyncToDB regression test now asserts the catalog and UoM data load with zero seeded rate rows. - Conversion tests load the i18n addon so schema sync can ensure the sys.translation index on already-installed databases. Co-Authored-By: Claude Code <noreply@anthropic.com>
Keep base small, following the geo/i18n/im pattern: each core concern ships as its own addon on top of the kernel. - addons/currency: core.currency + core.currency.rate, catalog data, views, actions, and a Currencies menu section. - addons/uom: uom.category + uom.uom, seed data (5 categories, 16 units), views, actions, and a Units of Measure menu section. - base keeps only the kernel: currency/uom models, data files, views, actions, and menu entries move out of its manifest. - cmd/sumeru/zimports.go and model registrations regenerated; model names are unchanged, so sdk.ConvertCurrency/ConvertUom and the data-sync natural keys keep working untouched. - Tests: addon registration tests split per addon, integration tests load the new addons, and the SyncToDB regression test now syncs the install closure base -> currency -> uom. Co-Authored-By: Claude Code <noreply@anthropic.com>
The govulncheck job went red on every PR after GO-2026-6599/6600 were published: go1.26.6's standard library carries 12 reachable vulnerabilities (html/template, net/http) fixed in the go1.26.9 patch release. Bump the go directive and all CI go-version pins; patch releases keep API compatibility, so no code changes are needed. Verified locally with go1.26.9: govulncheck reports 0 vulnerabilities, build/vet/lint clean, test suite green, coverage 42.5% (min 42). Co-Authored-By: Claude Code <noreply@anthropic.com>
Close SUM-PLAT-18: currency rates and UoM platform models
…ction UI Wire record.created/updated/deleted to sys.server.action with unlink-safe domains, depth cap 5, 60s cooldown via sys.server.action.log, and https-only webhooks. Run actions as the event actor without bypass; reject sensitive write: fields. Add activity: server actions and form fields for model, event, domain, and code.
Introduce sys.property.definition seeding, domain support for field.key, ORM properties handling, and SWC PropertiesField registration with tests.
Add mail addon for mail.activity and mail.message, board grouping (overdue/today/later), done/snooze actions, parent deep links, shell Activities link, and calendar arch date_start behavior. Outbound SMTP unchanged; no inbound routing.
Stop pagehide GET /web/logout from shell tabs; make GET /web/logout redirect-only. Portal sign-out uses POST with CSRF. RpcService and HttpService send unauthenticated clients to /web/login on 401.
…ating Add shell tab lease and POST /web/session/touch, browser_seen_at on sys.session, grace checks in resolveSession, and config keys in sumeru.conf.example.
…SWC/CSS Add addons/digest README and compute test coverage; LinkOAuthUser edge cases; drop unused sum template parser path, debug aliases, and orphaned message CSS.
Update x/crypto to v0.58.0 and vitest/jsdom patch releases; refresh package-lock.json (source-map-js audit fix).
Wire currency_field through arch and MonetaryField; add platform.pricing.sample. Add sys.property.definition views, partner extra_properties, and PropertiesField polish. Group activity board by type; link activities from the messages panel; extend tests.
Platform batch: PLAT-18/19/21/24, session reload fix, tab session touch, deps (-> dev)
CHINMAYVIVEK
approved these changes
Oct 12, 2026
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.
Platform batch: PLAT-18/19/21/24, session reload fix, tab session touch, deps (-> main)