Collomia v0.3.1
Collomia v0.3.1
A patch release. One new command and four fixes — every one of them a case where
a run that had finished its work described that work as a failure. A completion
message is what you act on, so these are treated as defects rather than rough
edges.
Standard mode remains the default. Nothing here changes configuration, session,
or graph schemas, and no action is required on upgrade.
Change
An active skill's own directory is now readable by the built-in read tools.
load_skill tells the model that a skill's references are read with read_file
and lists their paths — and the read was then refused for being outside the
workspace. Collomia was contradicting its own tool description, and any skill
that shipped reference files was unusable.
read_file, list_files, and search_files may now open an active skill's
directory regardless of allow_outside_workspace. The allowance is deliberately
narrow:
- Reads only. Writes still resolve through the strict workspace path, so no
tool can modify a skill bundle. - Contained against the resolved path, so a symlink planted in a bundle
cannot leave it. - Excludes disabled skills and untrusted project skills, leaving the
project-trust quarantine unchanged.
If you run with allow_outside_workspace off specifically to bound what the
read tools can open, this widens that boundary by the directory of each skill
you have already enabled.
Added
/orchestrate done ends a goal that has finished.
A terminal graph stays attached so it remains inspectable, which also means it
keeps owning the session until something releases it. Until now the only command
that did so was /orchestrate cancel, which on a terminal graph had always
archived rather than cancelled — so finishing successfully and abandoning work in
flight shared one word, and the word was the wrong one.
/orchestrate done (also spelled release) returns the session to Standard mode
and deletes nothing: the transcript, evidence, and graph snapshots stay in the
session log.
Mostly you will not type it. A graph that finished with nothing left to run is
released by your next ordinary prompt, which then runs. /orchestrate cancel on
a terminal graph still releases it, so nothing that worked before stops working.
Release is narrower than cancellation on purpose. It refuses a running graph, it
refuses one stopped at awaiting_review or awaiting_verification because each
is holding a decision that is yours to make, and it still refuses any graph that
is the only record of a worktree nobody has reconciled.
Fixed
- A finished run could report itself as blocked. The completion controller
offered exactly one way to record an unfinished step — mark itblocked— and
any blocked step ends the turn as blocked. A run that built and verified its
deliverable therefore came back as a failure because the agent had abandoned a
side attempt (a reference it turned out not to need, a tool call it replaced
with a better one) and had only that one word to record it with.skipped—
the action proved unnecessary or was accomplished another way — is now
distinct fromblocked, which is for work that genuinely cannot be completed. - A skill's reference files could not be read. See above.
- Orchestrated Goal could not verify a Node project that had no
package.json.nodewas missing from the verification recognizer, while
the proposal contract requires the first mutating node to create a focused test
exactly when a project has no test surface. A node could be required to write a
test and then refused every way of running it — blocking with its own passing
suite sitting in evidence. Node's entry points are now recognized, by entry
point rather than by interpreter:node --testand a script in a conventional
test location qualify;node index.jsandnode -e "..."do not. - A passing command the recognizer does not cover is no longer silent. While
a node is waiting on verification, a declined command's tool result now names
it and gives either the project's detected verification commands or, if the
project has no recognized manifest, what declaring a test entry point would
achieve. The blocker names it too, instead of reporting that no verification
exists directly beneath a check you watched pass.
Changed
Terminal Orchestrated Goal messages name the commands that apply to their own
outcome. A completed graph pointed at /new, which ends the whole session rather
than the goal; blocked and budget-exhausted graphs named no exit at all. They now
name /orchestrate status, retry, extend, and the release as applicable.
Notes for upgraders
- No configuration, session, or graph schema changes. Sessions and saved graphs
written by v0.3.0 load unchanged. - If you maintain skills with reference files, they work now without granting
allow_outside_workspace— see the callout above for what that allowance does
and does not cover. - Full changelog: v0.3.0...v0.3.1
- v0.3.1 — stop finished work from being reported as failure by @robert-mcdermott in #32
Full Changelog: v0.3.0...v0.3.1