v0.107.1 #819
v0.107.1
#819
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
What
The composition wave. The 0.107 train shipped the trust OBJECTS;
an outside checkpoint then measured what a stranger actually meets and
found the composition missing — the concierge still taught a verb the
0.107 rename had killed, doctor rendered a table-declared guard in the
green word a proven one earns, and every surface composed its own next
step. Three synthetic personas (novice FR · senior dev · privacy-first)
walked the binary end to end; the fixes below each carry the transcript
line that found them.
The doors tell the truth
DoorId{Discover,Create,Project}is the single source behind every taught first-contact command; the
five workspace states, the chat-only JSON mirror and the kit's
allowed-toolsall derive from it, and a new test replays EVERYcommand welcome can teach against the live clap tree. The dead
nika examplesthe concierge kept teaching (the parser refuses it)is gone from text, JSON, kit and docs — and hygiene vector 45 sweeps
the whole rendered output of three surfaces so the class cannot
return.
nika tryopens on three jobs, not thirty-nine. The storefrontnames one contrasted trade each (support · meetings · release), every
row a taught
try <slug>with its pitch, closed by four doors and theverb legend the glyphs never had. A pipe still gets the full parsable
shelf byte-for-byte (the editor's wire contract), and
--allforcesit on a terminal.
The verdicts narrow to what they cover
guard-declaredis notguarded. The host receipt gainsguard_evidence(declared · loaded · proven): a hook the static kittable declares now reads « guard-declared (kit ships hooks · unproven
in session) », and the bare word waits for a live allow+deny canary.
welcome --jsoncarries the same companions the doctor receipt does.--plainmeans ASCII in doctor too — the verb rides the samesobriety seam the concierge rides; the machine lane stays byte-exact.
and training were machine-only facts while the human line read
identically for a mock and a cloud model.
risk unboundedcarries its next move, the red pre-rundiagnostic ends its own line, and a sensitive voyage discloses that
its trace keeps full task outputs in plaintext, with the removal
handle beside it.
The experience contracts land
ExperienceStateV1→route()→NextActionV1— one puredecision table (drift ≻ unselected multi-root ≻ chat-only ≻ paused ≻
failed ≻ findings ≻ unknown inventory ≻ clean ≻ several ≻ create ≻
discover), one primary CTA with at most two safe exits, and gates
asserted structurally per action across the swept state space: no
door hides a run.
welcome --jsonis its first consumer;WorkflowPreviewV1renders the same content in strict ASCII andMermaid, beside the context, privacy and authority receipts.
The boundaries hold where they claimed to
A sweep for checks that report a verdict they cannot justify found six
places where a boundary was green and open. Every one was proven on the
binary before it was touched, and every repair carries the mutation that
makes it fail.
list that strips credentials on a redirect had been copied from a
general-purpose HTTP client and did not know
x-api-key— which theAnthropic wire sends, and which
nika:fetchdocuments to workflowauthors as the place auth rides. A 302 handed the live key to whatever
host the redirect named. One list now serves both the redirect strip
and the Debug redaction, and
check-credential-headers.shfails thebuild when a source sends an auth header the list does not name.
.. Bothsandbox backends refused
/root/*and granted/root/./x*— theycompared text where the kernel folds, so the grant resolved back to a
read-write bind of the host's root inside the jail. The fold lives in
the kernel now, shared, and the guard test walks every root in the
const across six spellings instead of the three its doc comment named.
nika:notifytarget is re-gated like afetchurl.Notify sat in the taint re-gate's tool list and did nothing: the list
read
urlfrom every member, and notify's argument istarget. There-gate asks the capability table now. Measured against the reference
oracle: parity unchanged at 216/220, all 39 examples clean.
hook wire, "no opinion" and "judged clean" shared an arm, so the kit
answered
permission: allowto every shell command in the session.A command with no
nika runin it now gets{}— the bytes that meanbehave as if this hook were not installed. And with the binary off
PATH the shim used to deny everything, telling the user
lswas"nika run blocked"; it degrades only for commands that could have been
ours.
description:at top level (the parser refuses it with its own code)and
google/as a provider (this binary does not resolve it — therunnable id is
gemini), while never offering four keys the parsertakes. The vocabulary derives from the parser and the catalog now.
patterns matched no directory that still exists, leaving the private
content it was written for entirely unguarded, and a
git mvskippedit altogether.
The owned copy works where it landed
39 pack examples self-reference their pack path, and the copied
# Run ·comment exited 3 when pasted;nika newre-points it to thedestination.
and ate the schedule half in silence; the file owns the WORK, a
scheduler owns WHEN, and the note says so.
nika·nika-cli): a dev-build invocation rode past the uncapped-priced-runrefusal as no-opinion.
literal
$0.00on an Ollama pick.Install
Tarballs below: macOS arm64 / x64 · Linux x64 / arm64, plus
SHA256SUMS.Verify: three independent proofs
Provenance
Built from tag
v0.107.1byrelease.ymlon GitHub-hosted runners. Provenance is published twice: GitHub's native
build attestation (proof 2) and the SLSA generator's
multiple.intoto.jsonlrelease asset (proof 3). The release itself is a claim on the
machine-verified timeline: https://nika.sh/timeline
What's Changed
Full Changelog: v0.107.0...v0.107.1
This discussion was created from the release v0.107.1.
All reactions