Skip to content

Releases: PeiyuanQi/canwu

Canwu 0.13.0

Choose a tag to compare

@PeiyuanQi PeiyuanQi released this 27 Sep 22:00

Canwu 0.13.0 ships the second and final release group of the downstream grand-strategy gap set. Only the series-scale items (§29) remain proposals.

Kernel (canwu-api)

  • Transition manifests: a coordinating plugin registers a manifest naming participant plugins and expected record versions; participants stage their writes in phase 10, and the kernel audits the manifest before phase 11 commits. A partly missing participant or a version mismatch fails the whole boundary closed; a manifest nobody staged expires. Audits are readable in phase 12.
  • Evaluation traces: phase-7 and phase-12 systems can record how a rule produced a result (terms, contributions, evidence) as bounded, hash-chained boundary evidence, never state. The actor-relative viewer returns only traces whose subject the holder already knows about.
  • Seat succession for ticket lineage: a successor's ticket may name a cancelled ticket of the same controller seat as its parent.

New crate: canwu-movement

  • A movement lifecycle extension that owns transport executions and capacity pools, settles legs at their due times, allocates bookings deterministically, and publishes holder-relative movement reports. It never draws randomness; applications report incidents with evidence.
  • canwu-transport (canwu-transport.v5) adds capacity pools and a pure deterministic booking allocator, and a terminal seizure after which an execution can only be closed.

Extensions

  • canwu-resource: delegated access grants. A grantor custodian lets a grantee draw on its accounts up to a cap inside a window, with the grantee's own lease authorizing each debit.
  • canwu-correspondence: delegated carriers (the carrier issues its own delegation, recorded per carrier and sender) and a carrier-seizure incident that ends the delivery attempt.
  • canwu-information: authenticity findings on interpretations, bound to the exact representation version.
  • canwu-society: policy-pressure provenance and a cohort headcount rebase against an external stock version. canwu-culture: a CultureBoundaryPlugin that settles culture lifecycle monthly through the society plugin's single writer path. canwu-technology: an external transmission source for practice-based transmission.
  • canwu-law: weighted seats, unit-block stages with a block threshold and an explicit tie-break (status quo or casting seat), and advisory consultation stages.

Fixes included

  • Completing a production execution through a live command now settles its output (previously the credit could never match the version locked at the lease).
  • A late seat response to a law stage that already closed is recorded as rejected instead of failing the plugin boundary; stage work expires when a stage stops taking ballots.
  • A cohort transfer no longer makes later Daily society boundaries fail.
  • A demand amendment can no longer change a demand's status, which previously jammed every later boundary.
  • Snapshot restore accepts records and ingress that reference entities listed only in the scenario's entity list.

Compatibility. Pre-1.0 minor release: new enum variants and struct fields break exhaustive matches and struct literals. Snapshot format 8, commitment format 4, and checkpoint/evidence-journal format 4 are retained, and new serialized fields are omitted at their defaults. The exact engine version and plugin descriptors make 0.12.0 snapshots non-loadable; keep the previous engine or use an explicit application-owned export. Plugin semantic identities changed for resource, correspondence, information, society, technology, and law; canwu-movement and CultureBoundaryPlugin are new.

Registry. All 24 publishable library crates are published at 0.13.0, including the new canwu-movement.

Known gaps. Series-scale items remain proposals: a fiscal archive, configurable observer limits, batched consumption, larger production limits, and recurring timetables. Access grants are not archived and share a 4,096-grant bound. Carrier delegations cannot be revoked other than by replacement.

Verification. Workspace format, Clippy with warnings denied, the full locked test suite, the debug client, rustdoc, the Rust 1.88 MSRV check, and the four public examples passed locally, and CI passed on Windows, macOS, and Linux. Each gap has a public-API fixture that exercises save/load and exact replay where it adds persisted state. Every work package and every fix had an independent review, and an integration review of the merged tree found issues that were fixed before release; the website copy was reviewed in both languages. A downstream application compiled and passed its Canwu integration tests against the release before publication, and a clean registry-only consumer built and ran a public-API smoke test after publication.

Canwu 0.12.0

Choose a tag to compare

@PeiyuanQi PeiyuanQi released this 27 Sep 09:29

Canwu 0.12.0 ships the first release group of the downstream grand-strategy gap set: contracts that a historical grand-strategy application needs so it does not become a second owner of engine truth.

Kernel (canwu-api)

  • Person availability: life and custody state per person, changed only by a declared boundary system. Commands from an unavailable issuer are rejected (IssuerUnavailable). At the end of the boundary that makes a person unavailable, the kernel cancels open tickets whose decision maker is that person, or whose assigned controller acts for that person.
  • Runtime person creation with engine-allocated, replay-stable IDs returned in correlation-keyed receipts; the person becomes visible at the next boundary.
  • Cancellation of queued plugin ingress before its due time, by the host, a plugin permit, or the scheduling plugin's boundary system, recorded as a terminal journal entry.

Decisions (canwu-decision)

  • GuardedUtilityPolicy: ordered guard rules (select, defer, exclude), then utility scoring, then an opt-in random tie-break among near-equivalent options through the existing ResolveDecisionRandomly path; traces record the stage and fired guards.
  • Ticket lineage through parent_ticket.
  • Host-authored decision ingress may no longer carry random draw evidence.

Extensions

  • canwu-resource: account-level loss (RecordLoss), atomic two-leg exchange (BeginExchange) whose leg leases are bound to a digest of the agreed terms, and same-place acceptance (AcceptLocal) gated by a host-declared account place scope.
  • canwu-production: realized output at completion, bounded per process and justified by declared evidence kinds.
  • canwu-fiscal: an acting actor admitted while its authority basis record version is current.
  • canwu-transport (canwu-transport.v4): persons-group movement subjects, seizure handoffs, and external-condition reroutes.
  • canwu-correspondence: a public builder that turns one holder's knowledge into a routing planning snapshot without reading route truth.

Compatibility. This is a pre-1.0 minor release. New enum variants and struct fields break exhaustive matches and struct literals. Snapshot format 8, commitment format 4, and checkpoint/evidence-journal format 4 are retained. New serialized fields are omitted at their defaults, so records that do not use a contract keep their encoding and hashes. The exact engine version and plugin descriptors still make 0.11.1 snapshots non-loadable; keep the previous engine or use an explicit application-owned export. The resource, production, and fiscal plugin semantic identities change.

Registry. All 23 publishable library crates are published at 0.12.0 in lockstep, including canwu-law, canwu-military, and canwu-military-reference-content (the military crates were last published at 0.10.0). docs/releasing.md now lists every publishable crate.

Known gaps. The remaining gap-set sections (movement lifecycle extension, transition manifests, delegated resource access, evaluation traces, delegated carriers, culture boundary system, and others) are proposed for 0.13.0. Ticket lineage requires the exact same decision maker; a seat-successor rule is not included. Completing a production execution through a live command and then settling its output is still limited by the credit's pinned production record version, as in 0.11.

Verification. Workspace format, Clippy with warnings denied, the full locked test suite, the debug client, rustdoc, the Rust 1.88 MSRV check, and the four public examples passed locally, and CI passed on Windows, macOS, and Linux. Each gap has a public-API fixture that exercises save/load and exact replay where it adds persisted state. Independent reviews covered each work package and the integrated runtime; the website copy was reviewed in both languages. A downstream application compiled and passed its Canwu integration tests against the release before publication, and a clean registry-only consumer built and ran a public-API smoke test after publication.

Canwu 0.11.0

Choose a tag to compare

@PeiyuanQi PeiyuanQi released this 16 Sep 03:40

Canwu 0.11.0 adds explicit source-account selection for resource demands. A demand can retain pooled allocation or select a bounded, ordered set of accounts owned by its requester. Allocation validates the policy before reserving stock, and retained reservations prevent source rebinding.

This is a pre-1.0 breaking release: Rust ResourceDemand constructors now include source_policy, and exact engine/plugin identities reject older snapshots. Standalone serialized demands default to Pooled; that default is not a save migration.

All 21 public crates are published at 0.11.0. Canonical and English/Chinese website documentation describe the authority, persistence, and allocation contracts. Package license copies and notices for existing dependencies were corrected in a separate packaging commit.

Validation: resource/economy tests (55), independent resource review tests (34), workspace clippy and formatting, debug client, Rust 1.88 workspace checks/docs/public examples, and website build passed. The earlier complete workspace test run also passed; final affected suites were rerun after review fixes.

Canwu 0.10.1

Choose a tag to compare

@PeiyuanQi PeiyuanQi released this 15 Sep 21:52

Canwu 0.10.1

Canwu 0.10.1 generalizes typed resource consumption providers while preserving the existing force-supply path. The release adds bounded, certificate-bound consumption intents with deterministic replay, rollback, duplicate-settlement rejection, and restore coverage.

Validated with the locked workspace test suite, clippy, docs, MSRV check, package verification, and a registry-only canwu-api 0.10.1 consumer check.

Canwu 0.6.0

Choose a tag to compare

@PeiyuanQi PeiyuanQi released this 24 Aug 06:59

What's Changed

  • feat: add evidence-based technology simulation by @PeiyuanQi in #3
  • fix: exclude idempotent retries from mutation budget by @PeiyuanQi in #5
  • refactor: migrate reference world out of core model by @PeiyuanQi in #6

Full Changelog: v0.5.1...v0.6.0

Canwu 0.5.1

Choose a tag to compare

@PeiyuanQi PeiyuanQi released this 23 Aug 03:09
6ec06f3

Canwu 0.5.1 is the first format-5 registry release. Applications should use the supported facade:

[dependencies]
canwu-api = "=0.5.1"

Highlights

  • Adds deterministic routing and transport mechanisms, decision tickets and policies, generic actor-relative knowledge, canonical plugin ingress, evidence-aware persistence, and format-5 replay contracts.
  • Organizes the repository crates into explicit architectural layers and documents the exact direct-dependency DAG.
  • Refactors canwu-sim into responsibility-focused runtime modules without changing its exported Rust API surface.
  • Publishes canwu-decision, canwu-routing, and canwu-transport for the first time as implementation dependencies of canwu-api.

Snapshot compatibility

The 0.5.1 runtime writes snapshot format 5 and typed loading accepts engine 0.5.1 format-5 values. Engine 0.4.0 format-4 snapshots, replay journals, and checkpoint-journal bundles must use the strict JSON migration entry points. Older format 2 and 3 values must first be upgraded by the 0.4 runtime. The public Rust and wire changes are documented in docs/versioning.md.

Known gaps

Canwu remains a headless engine. It does not include rendering, production multiplayer services, complete campaigns, hosted agent services, curated historical datasets, or model-validation frameworks. Experimental canwu-information and canwu-society extensions and the canwu-debug reference client are not registry packages.

Verification

  • Formatting, clippy with warnings denied, workspace tests, rustdoc warnings, debug-client check, and Rust 1.88 MSRV check
  • Checked-in public and reference examples
  • Standalone API-delta and performance-harness resolution/checks
  • Astro diagnostics and static build, followed by production Pages verification
  • Package inventory and legal-file checks for every published crate
  • Independent Cargo-path/DAG, documentation-link, and release-package audits
  • GitHub CI on Windows, macOS, and Ubuntu in push and pull-request contexts

The 0.4.0 release remains valid and is not yanked.