Commit graph Huginn/crates
Author SHA1 Message Date
Meta Vens
2843df16bd mind-body tests: the connector transport against the kit's real server, on the usage-only wire (turn, usage readout, refusal, wrong key, endpoint)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:05:31 +01:00
Meta Vens
c8749c5657 tempo: rustfmt the new files (the rest of the repo is not rustfmt-clean at its base, so no other file is reformatted)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:03:32 +01:00
Meta Vens
a6302f0dd9 tests: restore the self_run ceiling and flush tests and the persona DM-room, flag and outcome tests on the usage-only surface; close the red tests; regenerate public_surface.txt; strip stale initiative and dial wording
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 05:58:44 +01:00
Meta Vens
090712edfb tests: rig stamps launches on its clock, reply keys in persona tests, pulse in the schema command and the target count
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:47:54 +01:00
Meta Vens
90d4637c96 tests and schemas: Pulse in the kind enums, reply keys, vote replacement, one clock read per lease
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:44:44 +01:00
Meta Vens
bd5a50e1d3 lease_client: vendor the connector lease_v2 byte goldens (ModelConnector c1802d8) and pin the kit to that merged commit
The client decodes every published refusal and the grant and encodes the request
and each message back to the same bytes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:41:33 +01:00
Meta Vens
40330d9cd9 self_run integration: drop the settle record leftovers
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:38:48 +01:00
Meta Vens
a5fa63371c self_run integration: drop the settle record
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:36:47 +01:00
Meta Vens
7972d971e4 integration tests follow the usage-only surface; connector_kit test removed (WIP)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:35:34 +01:00
Meta Vens
78f508efc3 tests follow the usage-only surface (WIP)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:34:07 +01:00
Meta Vens
a55ca1598d persona and self-run tests follow the usage-only surface (WIP)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:32:56 +01:00
Meta Vens
22237f5d44 control tests: brakes only, old swarm store fails closed (WIP)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:31:10 +01:00
Meta Vens
b264865be4 heartbeat tests, tempo tests, golden for Pulse (tests WIP)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:28:36 +01:00
Meta Vens
056ca778d8 mind-body: tear out dollar metering; a shared tempo heartbeat; usage-only connector (WIP, tests follow)
Delete the classifier, initiative, burn, base-rate dial, shares, Envelope dollars,
persona turn max_cost, --max-budget-usd and the Self-run settle. Add tempo::tally
and tempo::pick, self-declared urgency from the reply as a Pulse, the usage line in
Persona input, and the wire-v4 connector (lease v2, usage_readout).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:24:54 +01:00
Meta Vens
a4f4d04665 eureka-pipeline: the Pulse kind (a Mind's heartbeat vote and declared urgency), instance-rooted; huginn-mind admits it in her own mind only
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:15:15 +01:00
Meta Vens
21fb9b2b04 mind-self-run: every exit closes her Run once with the result's excerpt; the child sees EUREKA_INSTANCE and HUGINN_ENDPOINT for the huginn CLI
Squash of eureka-body/self-run-closes-run 55dd620..93f93c1 (Soul go; orphan
sweep cut: the mind admits one Self run in force and launch's close_dead closes
a dead holder). Operator: 'Look into the stale runs issue' and 'why has this
xenos filth not been replaced with nice clean CLI yet'.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 05:02:20 +01:00
Meta Vens
bdf3d14cc4 Merge self-run-permission-mode: Self runs pass --permission-mode bypassPermissions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 03:51:49 +01:00
Meta Vens
5c2a861a6f Merge persona-addressees and self-run-permission-mode (Soul go on both)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 03:51:48 +01:00
Meta Vens
c6cceb6704 self-run: the actuator fixes --permission-mode bypassPermissions; print mode started in Manual (managed defaultMode not applied) and --permission-prompts none denied every eureka-state tool
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 03:33:11 +01:00
Meta Vens
92ecc697b1 persona: to_you is the organ's token; to is a JSON array of the other addressees
A mention string, display name or name list could write the word you into
the quoted join and pass for her own id. Now only to_you=true, derived from
her own sender id, says a message names her. Restores the newline escape in
the line format.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 03:32:55 +01:00
Meta Vens
5a035bff23 persona: put the addressee reading line in the turn input
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 03:10:09 +01:00
Meta Vens
005fa7aaa5 persona: render whom each message addresses and say how to read it
The mouth delivers each message's mentions but the turn input never showed
them, so a Persona could not tell a reply to another Mind from one to her.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 03:08:19 +01:00
Meta Vens
f896fbaa75 self-run: the result events text, subtype and error flag are written to the unit's stdout, bounded to 4 KiB and marked when cut, so what claude concluded reaches the journal
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 03:01:18 +01:00
Meta Vens
d98a9db5fe self-run seed: validate the copied links in the destination, so a link that leaves the seed and returns by its own name is refused
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 02:47:34 +01:00
Meta Vens
d0e58221aa self-run: the config copy reproduces in-tree seed links, refusing any that resolve outside the seed; the start message names the eureka skill
A link is checked by canonicalising it in the source against the canonical
seed root, so a link through another in-tree link cannot escape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 02:34:06 +01:00
Meta Vens
1421b5fe0a mind-persona tests: pin the doctrine bound at 96 KiB (kills the only surviving mutant)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:40:38 +01:00
Meta Vens
773331a75e mind-body: pin the persona doctrine and campaign surface
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:30:09 +01:00
Meta Vens
35677d7ff0 mind-persona tests: a mind with no campaign; doctrine re-read across turns
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:27:06 +01:00
Meta Vens
d00b42125e mind-persona: doctrine files lead each turn's instructions; the campaigns in force are listed and constrain start_self_run
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 01:25:03 +01:00
Meta Vens
577cae23a7 huginn-mind: a persona re-put no longer poisons reads; the admission index covers pipeline documents only
The persona document is replaced by design (compare-and-swap on updatedAt), so
its second put is a second receipt naming one identity. AdmissionIndex::build
read that as a doubled A10 write and refused every view and query. The persona
type has no admission facts there now; Mind::persona reads its own receipt. A
pipeline document written by two receipts still refuses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 00:46:22 +01:00
Meta Vens
7db86f7dd1 mind-heartbeat: one heartbeat routes every Persona turn on an initiative timeline; the classifier's urgency multiplies regain, an operator mention fills, a Self-run completion reaches the classifier and never fills; burn is real spend read as the heartbeat; each Persona on her own Huginn; DM rooms answered alone; the mind-wake path deleted (squash of eureka-body/mind-heartbeat d54ba01..3a4d28f; Soul s1-s4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 02:49:35 +01:00
Meta Vens
d54ba01103 mind-self-via-lease: a Self run borrows the one Claude token from the connector over the lease socket; the child gets a cleared environment and a fresh per-spawn config; the unit's RuntimeMaxSec is the one run cap; settle is claude's last modelUsage plus the tail after it; an Expired lease withdraws its run (squash of eureka-body/mind-self-via-lease fcaf0a1..a91fc1c; Soul s1-s3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 00:15:14 +01:00
fcaf0a1a23 mind-persona: the Persona turn organ; brake and dial before spend, typed schema reply decoded strictly, acks after posting, framed member text, campaign-checked Self-run briefs; real connector client (ModelConnector 480cf94) and RUDP chat client to the Bifrost mouth (squash of eureka-body/mind-persona onto 49bfe17, head f25decf; Soul s1, s2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 21:03:19 +01:00
49bfe17c18 swarm-dial: one swarm envelope (brake, heat, rate, run cap, k, shares) in a root-only store; read_envelope fails closed; Grant narrowing never widens (squash of eureka-body/swarm-dial 6963b75..46f7dd6; Soul s1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 20:28:57 +01:00
Meta Vens
9f8b927cf2 Type the rows closure of the read-path test
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 15:04:16 +01:00
Meta Vens
2023c0a1e3 Let tests replace the read path under the gate so the view comparison is pinned
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 15:03:47 +01:00
Meta Vens
4c00208f8b Plant the changed-key fault with its receipt renamed so only the re-key check refuses it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:59:10 +01:00
Meta Vens
9d77c18546 Drop the test-module pipeline_key import the gate's move to the parent module left unused
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:55:09 +01:00
Meta Vens
242f5a7ef5 Re-encode the read-back fault payload as a wider array header, not a map the decoder refuses
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:54:09 +01:00
Meta Vens
92fb906b07 Bend stored questions through the leaf's array encoding in the read-back fault tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:52:32 +01:00
Meta Vens
3d6f9179d0 Aim the read-back fault tests at the last question, not the last pipeline document
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:51:42 +01:00
Meta Vens
ac139b4785 Decide the read-back gate in Mind::read_back and pin its checks with committed fixture tests
The gate body moves out of the ignored test into one function over a Mind, now
also refusing a receipted pipeline write with no stored document. The ignored
test is a thin caller; CI plants each fault on a 135-document store.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:50:50 +01:00
Meta Vens
c5fe12ce11 Drop the test-module import the deleted migration test left unused
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:12:27 +01:00
Meta Vens
27921e5653 Add Reader::view and the one stored-document read-back gate in huginn-mind
Mind::view becomes validate_ref then Reader::at(head).view(id); Reader::view is
its lookup, so a caller holding one Reader views many documents from one
snapshot. stored_documents_read_back (ignored, HUGINN_MIND_SNAPSHOT) decodes,
validates, rekeys, re-prepares and views every stored document through one
Reader: O(N) where the deleted per-document Mind::view loop was O(N^2).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:03:11 +01:00
Meta Vens
fe9069e528 Delete the migration-era read-back tests and the leaf's overlapping real-store gate
mind::tests::snapshot_admits_and_reads_back (an O(N^2) per-document Mind::view loop
plus the six idunn-watchdog resolutions and over-64-byte withdrawals of the
2026-10-01 migration) and eureka-pipeline tests::stored_documents_read_back go,
with the leaf README's real-store section. The one gate follows in huginn-mind.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-26 14:02:51 +01:00
Meta Vens
af3efcad40 Members walk: leave descending and cursor to the Selection default
With projection gone the walk spreads Selection::default(); an explicit
descending: false was a mutant no test could tell from the default.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 22:21:58 +01:00
Meta Vens
2a98dcdff2 Members walk test: the role hop uses resolutions of a cut spec (a question cannot be superseded)
The previous commit's test admitted a Superseded resolution of a question,
which admission refuses. Cite r2 through subject and superseded_by instead.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 22:17:30 +01:00
Meta Vens
8c98b7b028 Members walk: drop the dead projection assignment; pin the cites role through members
The walk never reads projection (select reads it only in validate and the
cursor digest), so the assignment and its "headers only" comment decided
nothing. A new test cites Q1 through two roles by rows of one schema and
asserts exact members and matched for subject, superseded_by and no role.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 22:16:07 +01:00
Meta Vens
15d8efe8ab Members walk test: expected ids in the mind's order (admission batch, then key)
The previous commit's test expected plain key order and fails; this one builds
and corrects it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 21:34:42 +01:00
Meta Vens
05347b5417 Members walk test: 599 members, so a page of 199 takes 4 pages and fails
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-25 21:33:27 +01:00