Core
Composition, billing, and Resource Reference updates
Composition date-time normalization, billing and Agent pricing updates, and paged effective-range Resource References.
Fixed
-
Rich-text plain-text projection preserves multibyte characters when splitting lines, preventing UTF-8 storage failures for Korean document content.
-
Agent composition tools declare aggregate field targets, numeric null handling, result types, and sort options explicitly. Invalid numeric aggregates return the precise correction path, and rejected measures appear as request failures instead of system failures.
-
Reject USD calls with missing billing conversion rates before dispatch even when reservations are disabled. Recover historical missing-rate settlements with
nexia-agent:resolve-credit --actual-cost=... --currency=USD --usd-to-krw=..., preserving the original cost. An administrator, reason, evidence and executor fencing are required; rates are never selected automatically. -
Composition catalogs normalize App provider
date-timefields to Core's canonicaldatetimetype so declared day, month, quarter, and year buckets remain usable.
Changed
-
Link context menus can open a destination in a new split pane or Space and prepare an Agent question about the link without sending it. Shared context menus size to their longest item, including shortcuts, and wrap labels at the viewport limit.
-
Public Event catalog lookups reuse compiled immutable definitions and refresh when descriptor registrations change, reducing repeated work during bulk imports without caching tenant authorization.
-
MYTEC seed bundles accept historical Core content and General Ledger journals. Content is imported as restricted drafts; historical journals retain functional amounts without replaying upstream effects. New MYTEC tenants initialize their functional currency to KRW. Existing tenant currency is never changed automatically; expanded receivables/payables imports require the source-backed General Ledger fixture and a KRW functional currency.
-
MYTEC seeding includes sample data across People, Time & Absence, Payroll, Recruiting and Talent. Existing synthetic people are linked to leave balances, KRW payroll results, candidates and qualifications, without adding legal entities or operating units or executing payments.
-
Billing overview shows a 30-day credit chart, registered original file size, actual database size, and subscription allowances. Storage figures are informational, without extra billing or historical storage trends. Initial default plans are published during seeding; ordinary reseeding preserves operator closures, while explicit defaults replacement publishes the replacement version. Prices show VAT excluded after the amount.
-
Administrator and tenant credit history groups call-level debits into one row per user request. Model breakdowns remain administrator-only and are excluded from the tenant API. Underlying ledger entries and total debits remain unchanged.
-
Administrators can grant extra credits from Credits by selecting a tenant, amount, expiration and reason, without requiring a subscription. Grants retain administrator attribution and reason, reject duplicate-request mismatches, and may repay outstanding usage first. Requires the new Central migration.
-
Use
nexia-platform:replace-defaults --applyto replace billing plans, billing policy, Agent catalog and runtime settings. Tenant policy exceptions and scheduled changes are canceled; existing subscriptions and ledger history are preserved. Billing changes are attributed to the first existing administrator as system CLI work. Usenexia-agent:replace-catalog --applyfor Agent-only replacement. Both commands preview without--applyand require no actor or reason arguments. Provider credentials and tenant business data remain untouched. -
Model pricing fields, including cache and long-context rates, are always visible, with currency and billed categories first. Catalog seeds include reviewed standard token prices dated 2026-09-18 for 18 models; three unresolved models remain unpriced. Reseeding fills only entirely empty USD pricing without operator billing revisions, and initializes a missing Router with Claude Sonnet 5 and GPT-5.6 Terra. Configured prices, provider keys, grade assignments and existing Router choices are preserved. This is not live price synchronization.
-
Central Agent navigation follows setup order: provider keys, models, grades, roles, settings, usage, then analysis executions.
-
Effective-range Resource Reference providers can expose paged population searches for server workloads that must process every authorized record without truncation.
-
Demo tenant seeding includes a paid annual subscription, settlement history, and monthly credit grants without contacting a payment provider. Resetting the demo tenant also clears its billing records before recreating the fixtures.
-
Show actually deducted total and current-month credits, plus pending settlement, in per-user Agent usage. Temporarily hide token quantities in usage and operations views, and disable the Agent tools settings menu and its direct URL. Runtime tool execution remains available. Billing empty states use subscription terminology without the internal "local" qualifier.
-
Convert Agent usage costs with each Work's frozen customer rate and credit price, charging cumulatively in 0.1-credit increments. Each physical platform call receives one-shot Central approval. By default, calls require positive credits and debit actual usage without advance reservation; overages remain a negative effective balance and are repaid from later grants. Optional reservation mode preserves strict bounds and holds. Unknown usage still requires explicit recovery. Gateway billing HTTP and bounded tenant DB pools reuse connections.
-
Group billing policy history, scheduled changes and tenant exceptions under Usage and billing. Preserve invoice-time terms, retry failed subscription application and credit grants, and hand invoice, activation and expiry notices to the existing notification/email pipeline. Simulation never sends email. Refund deduction settings are retained for later refund execution.
-
Central operators can version and publish KRW plan prices and allowances without a payment provider. Customers can request monthly/yearly initial subscriptions and read invoices, settlement status and PDFs. Operators supply tax and issuer details, issue invoices and record manual receipts; fully paid subscriptions are applied with retryable recovery. Intake is disabled by default, and simulation is restricted to local/testing environments. Renewals and refunds remain follow-up work.
-
Subscription credits have an immutable monthly grant/expiry ledger with tenant and operator views. Annual subscriptions receive monthly grants without rollover. Set an explicit grant-start cutoff in the billing policy (bootstrapped from
BILLING_CREDIT_GRANTS_START_AT); duplicate and delayed processing is recoverable. -
Central operators can record manual monthly reporting exchange rates. Corrections append immutable revisions without changing customer credits or invoices. Profit-report calculations remain follow-up work.
-
Agent selection now requires operator-confirmed billed token categories and complete prices, including explicit zero rates. Existing catalog rows remain unreviewed after migration and cannot serve new requests until their pricing is confirmed. Tenant BYOK selection and management are disabled; stored keys and historical usage attribution are retained.
-
Agent usage preserves decimal price snapshots and fixed-decimal costs through Gateway calculation and Central aggregation. Apply the compatible Core schema/ingestion changes and confirm model pricing before adopting the Gateway changes; existing numeric usage deliveries remain recoverable. Complete non-token cost coverage is not included.
Compatibility
-
Cut over Core and Gateway together after applying Central and Tenant billing migrations. No billing Redis instance or new dependency is required.
BILLING_CREDIT_RESERVATION_ENABLEDdefaults tofalse; the administrator call-ceiling field is hidden and ignored while its value is preserved. Existing Works keep their admitted mode. Reservation-only model/input bounds do not gate new post-use Works; pricing and existing Provider capabilities still apply. Model pricing changes require an administrator change reason. -
Existing provider declarations remain accepted; no App changes are required.
-
Stored reports and widgets that selected an affected provider field may need a preview refresh and resave when their field fingerprint is recalculated.