Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/ultra/CHANGELOG.md

Raw
Rendered preview

Changelog

Unreleased

  • Add the {item.FIELD} interpolation token: one field of the current record fanout item, rendering null or missing fields as empty text in prompts and summaries and as undefined in selectors, with a validation error for non-record items.
  • Treat braces in prompt and summary as interpolation tokens only when they start with args., item, or PHASE.results/PHASE.failures; other braces, such as JSON fragments, TypeScript types, or empty braces, pass through as literal text, while malformed token-shaped spans still fail validation and selectors stay strict.
  • Refuse a workflow before creating any child when a step without flags lists a tool that is registered but inactive in the parent Pi (for example bash under pi --nushell), naming the inactive tools, the child extensions with startup flags that may have deactivated them, and the active nu tool when a shell tool is inactive; builtins Pi leaves inactive by default are ignored.
  • Report a deactivated builtin tool as builtin tool, deactivated at startup in the child-startup error instead of a bare name.
  • Fail the not-yet-started siblings of a fanout phase immediately with attempts: 0 once one child's requested tools were switched off at startup, instead of creating every sibling session to fail the same way.
  • Request strict constrained sampling for structured_output only when the step declares a schema; against the schema-less property-free object schema it forced models to submit {}.
  • Honor project workflows (<cwd>/.pi/workflows/*.json) only in trusted projects: untrusted project workflows are hidden from /ultra run completions, never shadow bundled or user workflows, and run_workflow and /ultra run refuse them with an error naming the file.
  • Label each /ultra run completion with its workflow source (bundled, user, project).
# Changelog

## Unreleased

- Add the `{item.FIELD}` interpolation token: one field of the current record fanout item, rendering null or missing fields as empty text in prompts and summaries and as `undefined` in selectors, with a validation error for non-record items.
- Treat braces in `prompt` and `summary` as interpolation tokens only when they start with `args.`, `item`, or `PHASE.results`/`PHASE.failures`; other braces, such as JSON fragments, TypeScript types, or empty braces, pass through as literal text, while malformed token-shaped spans still fail validation and selectors stay strict.
- Refuse a workflow before creating any child when a step without `flags` lists a tool that is registered but inactive in the parent Pi (for example `bash` under `pi --nushell`), naming the inactive tools, the child extensions with startup flags that may have deactivated them, and the active `nu` tool when a shell tool is inactive; builtins Pi leaves inactive by default are ignored.
- Report a deactivated builtin tool as `builtin tool, deactivated at startup` in the child-startup error instead of a bare name.
- Fail the not-yet-started siblings of a fanout phase immediately with `attempts: 0` once one child's requested tools were switched off at startup, instead of creating every sibling session to fail the same way.
- Request strict constrained sampling for `structured_output` only when the step declares a `schema`; against the schema-less property-free object schema it forced models to submit `{}`.
- Honor project workflows (`<cwd>/.pi/workflows/*.json`) only in trusted projects: untrusted project workflows are hidden from `/ultra run` completions, never shadow bundled or user workflows, and `run_workflow` and `/ultra run` refuse them with an error naming the file.
- Label each `/ultra run` completion with its workflow source (`bundled`, `user`, `project`).