Releases: ikenga-hq/ikenga-contract
Release list
v0.15.0
Minor Changes
-
4e5dc9f: Add the
repo.changedpush contract at@ikenga/contract/app-bridge
(REPO_CHANGED_METHOD,RepoChangedParams+RepoChangedParamsSchema,
RepoChangedEnvelope+RepoChangedEnvelopeSchema,readRepoChangedParams,
isRepoChangedNotification,HOST_NOTIFICATION_MAX_PER_SEC).This types the notification a pkg's long-lived MCP server emits via
server.sendLoggingMessageso its iframe learns a git repo moved on disk
without polling. The shell's existing relay carries it: the Rust supervisor
matchesnotifications/message, rate-caps per pkg, and emits the
pkg-mcp-notificationTauri event (shell/src-tauri/src/pkg/lifecycle.rs),
whichpkg-iframe-host.tsxStep 3b forwards verbatim onto the iframe's
AppBridge wire. No new shell plumbing.Note there is no sidecar push path:
manifest.sidecars[]entries are not
supervised andhost.pkgSidecarCallspawns a fresh one-shot process per call.
The rate cap is a tumbling one-second window, so a burst straddling two
windows can deliver up to 2x the cap in one arbitrary second.New file, additive only.
v0.14.1
Patch Changes
- d25b94a:
SettingsFieldSchemaaccepts an optionalenvstring, so a manifest that names
an environment variable on asettingssecret validates instead of being
rejected. This is the TypeScript mirror of the shell'smanifest.rs
SettingsFieldchange (F-9): the shell resolves the secret from its Stronghold
vault and injects it into the pkg's sidecar and MCP process environment under
the declared name. Without this field on the Zod side, contract consumers
validating the same manifest the shell accepts would fail.
v0.14.0
Minor Changes
- f9e1b4f: Add
OperatorIdentityhostContext extension (operatorfield onIkengaHostContextExtensions) — optional; absence means unknown operator and consumers must fail safe (e.g.ux_mode: 'confirm').
v0.13.0
Minor Changes
- 17375fd: Publish the skill-action frontmatter contract: a new
./action-frontmatter
export with Zod schemas forActionFrontmatterand its sub-schemas
(DomainEnum,UxModeEnum,RunBinding,Trigger,CapabilityEnum,
SetupSpec). This is the source-of-truth shape for an Atelier skill action's
YAML frontmatter (the block between the leading---fences of an
actions/*.mdfile). Mirrors the Rust loader inroyalti-io/ikenga
(src-tauri/src/pkg/skill_actions.rs) — same lockstep convention as
manifest.ts ↔ manifest.rs. Conformance-tested against every installed Atelier
action file. Additive; no existing export changes. - 4d7bc7d: PermissionsSchema gains
engine(string[] of engine scopes, e.g. "invoke") —
previously undeclarable, so the shell's engine:invoke gate on
host.sendToActiveSession could never pass for any pkg. Mirrors the shell
manifest.rs Permissions.engine field (lockstep).
v0.12.0
Minor Changes
- 0d67fd0: Add optional social/media fields to
DraftItem(channelId,firstComment,media) plusSocialMediaandThreadPosttypes, in lockstep with the send-worker's media-capable Buffer adapter (royalti-co social-outbound-unification). All fields are optional, so non-Buffer channels and existing consumers are unaffected. - fff5fec: Add the multi-window
G-WINDOW-MODELcontract: a new./windowexport with Zod
schemas forWindowDescriptor(label / kind / surface_set / project_id /
layout_key) and the cross-window event envelope (WindowEventEnvelope,
WindowEventTarget,WINDOW_TOPICS,WINDOW_TARGETED_CHANNELS). Mirrors the
Rust structs inroyalti-io/ikenga(src-tauri/src/window/) — round-trip tested
against shared canonical fixtures on both sides. Additive; no existing export
changes.
v0.11.0
Minor Changes
- 63f35d7: Add a
BrowserEnginediscriminant ("webkit" | "chrome") to the browser surface for Managed-mode Chrome.BrowserOpenInput,BrowserOpenResult, andBrowserListEntrygain anenginefield (defaults to"webkit"), andWebviewCapabilitygains anenginesarray (defaults to["webkit"]). Purely additive — existing manifests and callers are unchanged. Mirrors the lockstep change inWebviewCapability(shellmanifest.rs).
v0.10.0
Minor Changes
- 6c7aa08: Adds three major capability areas since v0.9.1. (1) Trusted-capability manifest tier (ADR-017): new
HttpCapabilitySchema,SecretsCapabilitySchema(withNamedSecretSchema), andInvokeCapabilitySchema(with a named-commandcommandsallowlist per D-06) let signed/builtin pkgs declare host-mediated HTTP proxying, Stronghold-resolved secret injection, and scoped Tauri-command passthrough; a top-level optionalsignaturefield is added to the manifest andIKENGA_API_VERSIONis bumped to 3 (api=1/2 manifests parse unchanged). (2) Approve-gate draft contract (./pa-actions): new export path withDraftItem,ApproveGateMeta,PausedDraft,SendResulttypes, thefromDraftItemview-model derivation function, anddraftPreviewhelper; extended in WP-02 withrecipientsList,bodyFormat,replyTo,scheduledChiponDraftItemand a'failed'status onPausedDraftfor post-send-worker error surfacing. (3) Canvas a11y (./canvas): opt-inkeyboardPanandariaLabelprops onCanvasProps, arrow-key pan + +/- zoom inuse-pan-zoom, androle="img"+ roving tabindex on placed widgets in theCanvasprimitive — all additive and backwards-compatible with existing consumers.
v0.9.1
Patch Changes
- ba10200: Adopt Changesets for versioning + release. Contributors now run
npx changeset
with each change to declare the bump (patch/minor/major); the version and
CHANGELOG are derived from those entries and published by CI on merge of the
"Version Packages" PR, replacing the previous tag-triggered publish flow.
@ikenga/contract v0.9.0
6 features since v0.8.0 (agent-ops trigger bridge, registry/canvas/browser surface additions). Published to npm (0.7.0 → 0.9.0; v0.8.0 was tagged but never published).
v0.8.0
🚀 Features
- feat(local-store): WP-05 (contract) SqliteCapabilitySchema + validate-store tool
- feat(canvas): add Canvas component composing the pan/zoom + drag hooks
- feat(canvas): extract scale-aware grid-snap drag into use-drag-snap hook
- feat(canvas): extract pan/zoom/auto-fit into use-pan-zoom hook
- feat(canvas): scaffold contract/src/canvas with types + ./canvas export
- feat(scopes): mark engine:invoke as sensitive (WP-13)
🐛 Fixes
- fix(local-store): WP-05 wire capabilities mirror into ManifestSchema
- fix(canvas): mirror viewport changes via effect, not in setState updater
📚 Docs
- docs(launch): launch-ready README (G-19 positioning)