Skip to content

Moltaro 0.0.51-beta

Release date: 2026-09-08

Integrations can inspect comment relations and delete only the owner and version they verified. Task Queues gain explicit prioritization settings, and Task priority values travel through APIs without losing 64-bit precision.

  • Conditional comment deletion rejects a changed owner or version instead of deleting newer content.
  • Comment SDK reads expose detached snapshots of the complete active resource-relation set.
  • Task Queues support explicit Manual, Due date, Queue entry, Creation date and Numeric priority configuration.
  • Task priority values support the complete signed 64-bit range without JavaScript rounding.

ICommentService.DeleteAsync(MoltaroCommentDeleteRequest) accepts the comment identifier, expected complete owner and expected row version. The checks run under the same transaction and identity lock as soft deletion, retain the existing authorization and mutation guards, and refuse stale decisions without deleting the comment or its relations or publishing a deletion event.

MoltaroComment.ActiveRelations exposes detached relation descriptions from SDK Get/List/ListRelated reads. It does not expose writable internal EF entities. A custom EF projection still has to load the data it needs. The existing string-only DeleteAsync deliberately deletes current state; it must not be used as a retry fallback after a conditional conflict.

A comment version is not a version of every related object. In particular, visible Files can omit deleted but restorable placements. Importers deciding that a comment has no files must also check its active placement links and must independently establish the identity of related business records.

Task Queue prioritization and exact priority values

Section titled “Task Queue prioritization and exact priority values”

Each Queue has one prioritization configuration, including empty queues. Existing and new queues default to Queue entry ascending. Automatic modes require a direction; Manual has no direction. Authorized users edit the configuration from Queue details or preview, with the same version and idempotency protections as other Queue changes.

The ordering policy keeps missing due dates last and uses stable Queue-entry and Task-identity tie breakers. Numeric priority compares Priority and then SubPriority only in the Numeric priority mode. This release supplies configuration and ordering contracts, not a persisted Task backlog, drag-and-drop, automatic acquisition, dispatch or assignment.

Definition DefaultPriority now supports signed 64-bit values. Priority values are returned as decimal JSON strings and inputs accept integer numbers or decimal strings. Clients should send large values as strings and never pass them through floating-point or JavaScript Number conversion.

Existing Data definitions retain standard Generic behavior. Unsupported semantic types or presentation bindings are not silently treated as Generic. This release does not introduce Case or WikiPage functionality or a public SDK for authoring specialized semantic providers.

Upgrade compatibility checks read the installed compiler metadata before the new lifecycle columns are migrated. They still compile the exact working project against the target SDK and reject missing required compiler metadata; operators do not need to apply database changes before the compatibility check.

This release updates Workspace database metadata and Task Queue configuration. Existing Data definitions are assigned Generic metadata; existing Task Queues receive Queue entry ascending without changing their composition or activating the Tasks module. Historical Queue command responses receive only a missing initial prioritization value. Task Definition priorities are widened without truncating existing values. PortalDb has no new migration.

Managed Apps undergo a sequential runtime replacement with a short service interruption per application. Keep a pre-upgrade database recovery point and its matching runtime/configuration. Reverting only binaries is not a complete rollback: new semantic provider resources can prevent a downgrade, and large priority values may not fit the older database type. Queue configuration and historical-response enrichment are not losslessly reversed by a simple downgrade.

Use ReplaceRuntime for Portal/documentation and all three current Managed Apps. Do not publish a delta update for this transition. Preparation builds, checks, uploads and stages the exact candidate while production remains live. Promotion uses only the preparation’s frozen runner after all-application compatibility and current environment gates pass.

Before promotion, the synchronization owner disables exactly the three currently enabled OMS schedules, reads their state back and waits for running jobs, executions, leases and uploads to drain naturally. Previously disabled schedules stay disabled. Do not cancel jobs or reset queue/cursor state. Restore the three schedules after the healthy replacement is verified.

Keep Runtime VM operational staging, application placement, database/storage paths and Object Storage credentials unchanged. The agent version remains 0.1.45.

The dependent Ventcontrol import change is a separate workspace publication. Confirm the installed developer surface and exact SDK contract before its normal server Check/Build and activation. Then use the existing processor to verify the two affected Resales and the relevant Assembly/comment/file scenarios. Installing the SDK alone is not evidence that those customer records are repaired.

  • Tasks contract version advances to 1.9; Definition DefaultPriority changes from int to long in the SDK. Rebuild affected extensions through the normal exact-target compatibility Check/Build. NuGet VersionPrefix remains 2.0.0.
  • Priority JSON outputs are decimal strings, including small values such as "0". Clients expecting numeric output must adapt. The supported range is -9223372036854775808 through 9223372036854775807.
  • Task Queue installation/export requires MoltaroTaskQueue format 3 with explicit Prioritization. Formats 1/2 and missing policy are rejected; there is no implicit import fallback.
  • The comment request overload and active-relation snapshot are additive for callers. Custom implementations of ICommentService must implement the new overload. Code using them requires this runtime SDK or newer.
  • Conditional comment deletion does not grant new permissions, change owners or freeze linked resource state. A stale request requires a new inspection, not automatic substitution of a newer token.