v0.2.0
v0.2.0
Theater v0.2.0 focuses on practical authoring ergonomics: safer plugin
contracts, plugin transforms in ordinary dataflow, direct act-scope exports and
a first-class coalesce fallback model for runtime configuration.
Highlights
- Runtime configuration can now stay declarative with
coalesce(...)and
explicitenv("NAME")value sources instead of shell setup or synthetic
action.generatebridges. - Pure plugin transforms can be used in selector pipelines, so action outputs
and existing refs can flow through domain-specific transforms without
compatibility inventory wrappers. - Plugin manifests and plugin process grants are safer for source control:
host environment variables can be copied by name, scalar secrets can be
redacted at the root value and dynamic bindings are handled more clearly. .thtr, YAML, LSP support, native JetBrains support and public docs were
updated together for the new binding and dataflow surface.
New Features
- Added explicit plugin host environment grants.
Plugin registry entries can now request named host environment variables for
plugin processes without storing secret values in the registry file. - Added root JSON Pointer support for plugin sensitive paths.
Plugin manifests can mark scalar inputs or outputs as sensitive with the root
pointer"". - Added safer plugin validate-hook handling for dynamic bindings.
Validate-time plugin hooks can distinguish static values from dynamic paths
without receiving resolved runtime secrets. - Added union value contracts for plugin transform inputs.
Transform manifests can describe narrow accepted shapes such as string-or-
object contracts instead of falling back toany. - Added plugin transforms in selector pipelines.
Selectors can apply pure plugin transforms afterfield(...),$ref,
decode(...)andpath(...). - Added direct act exports from current act-scope values.
Acts can export resolved property values with forms such as
export token = $tokeninstead of copying them throughaction.generate. - Added canonical
coalescebindings.
coalesceevaluates explicit candidates left to right and selects the first
concrete value. - Added typed
missinghandling for fallback.
Only typed missing values are skipped; empty string, zero,false,null,
empty objects and empty lists remain concrete values. - Added explicit
envvalue sources.
env("NAME")reads a named host environment variable as a binding value.
Unset variables resolve to typed missing; set-but-empty variables resolve to
the concrete empty string. - Added general property values.
Act properties can now be ordinary bindings, including literals, refs,
objects, lists, strings, generators,coalesceandenvsources, while
existing inventory properties remain supported.
Tooling
- Updated
.thtrlowering, formatting, source mapping and diagnostics for
coalesce(...),env("NAME"), selector transforms and act ref exports. - Updated
thtr-lspcompletion and diagnostics for the new property value
surface. - Updated the native JetBrains plugin with property value completion and
diagnostics forcoalesce(...),env("NAME")and generator bindings. - Added checked examples for runtime configuration, coalesce, act ref exports
and plugin value contracts. - Added docscheck
unset-envsupport so runnable documentation examples can
test fallback behavior independently of the developer or CI environment.
Fixes
- Plugin validate-hook diagnostics no longer expose resolved dynamic secret
values. - Plugin redaction paths now handle root scalar sensitive values.
- Selector and export validation now accounts for the new ref-derived and
transform-derived dataflow paths.
Documentation
- Documented
coalesce, typed missing and explicitenvvalue sources in the
YAML and Theater DSL references. - Documented direct act ref exports and plugin transforms in selector
pipelines. - Expanded plugin reference material for host environment grants, scalar
sensitive values, dynamic bindings and union transform contracts. - Updated editor-tooling docs and examples index for the new authoring surface.
Compatibility Notes
- This is a pre-
v1.0.0feature release with public contract changes across
.thtr, YAML, plugin manifests, validation and editor tooling. coalesceis value-level fallback only. It does not add truthiness, control
flow, retries or fallback over arbitrary runtime errors.inventory.env(default: ...)was intentionally not added. Fallback belongs
in the shared binding model throughcoalesce.env("NAME")values are treated as secret for diagnostics, debug snapshots
and report previews because the variable name alone does not prove the value
is safe to display.
Full Changelog
Full Changelog: v0.1.0...v0.2.0