Files
PiCloud/crates/shared/src/version.rs
MechaCat02 3af8cc38c9 feat(v1.1.2-docs): migrations + shared DocsService trait + TriggerEvent::Docs
Migrations 0013_docs.sql + 0014_docs_triggers.sql land the docs table
(JSONB body + GIN-on-jsonb_path_ops index, PK keyed on (app_id,
collection, id) for cross-app isolation) and widen the triggers.kind
and outbox.source_kind CHECK constraints to include 'docs', plus the
docs_trigger_details detail table mirroring kv_trigger_details.

picloud-shared grows the DocsService trait + DocRow/DocsListPage/
DocsError + NoopDocsService, the TriggerEvent::Docs variant with the
prev_data change-data-capture surface, the DocsEventOp enum, the docs
field on the Services bundle, and the SDK_VERSION bump 1.2 -> 1.3.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 19:54:56 +02:00

43 lines
1.9 KiB
Rust

//! Version constants for PiCloud's compatibility surfaces.
//!
//! See [`docs/versioning.md`](../../../../docs/versioning.md) for the
//! full scheme. The product version is sourced from the workspace
//! package version; the four surface versions live in this module
//! and are bumped under the rules in that doc.
/// Product version (e.g. `"0.2.0"`). Sourced from this crate's
/// `Cargo.toml` so the workspace-inherited package version is the
/// single point of update.
pub const PRODUCT_VERSION: &str = env!("CARGO_PKG_VERSION");
/// Rhai SDK version, in `"major.minor"` form. Scripts read this from
/// `ctx.sdk_version` for feature detection. Bump rules:
/// * patch (`1.x.0`): doc-only, no script-observable change
/// * minor (`1.0 → 1.1`): added functions / fields; existing
/// scripts must still run unchanged
/// * major (`1 → 2`): removed, renamed, retyped, restricted
///
/// 1.1 additions: `ctx.request.params`, `ctx.request.query`,
/// `ctx.request.rest`.
///
/// 1.2 additions (v1.1.1): `kv::collection(name).{get,set,has,delete,list}`,
/// `dead_letters::{replay,resolve}`, `ctx.event` for triggered handlers.
///
/// 1.3 additions (v1.1.2):
/// `docs::collection(name).{create,get,find,find_one,update,delete,list}`
/// with the v1.1.2 query DSL subset; `ctx.event.docs` for docs-trigger
/// handlers (carries `prev_data` change-data-capture for update/delete).
pub const SDK_VERSION: &str = "1.3";
/// HTTP API major version. Appears in URL paths as `/api/v{N}/...`.
/// Bump (new integer + new URL prefix) when the request/response
/// shape, status-code semantics, or auth model changes. The previous
/// major is kept live for at least one product-minor deprecation
/// window.
pub const API_VERSION: u32 = 1;
/// Wire-protocol version between manager / orchestrator / executor
/// nodes in cluster mode. Negotiated via the `X-PiCloud-Wire` header
/// on inter-service requests. Reserved at `1`; cluster mode is v1.3+.
pub const WIRE_VERSION: u32 = 1;