Commit graph

400 commits

Author SHA1 Message Date
Meta Vens
c74dd530de daemon: embeds through the endpoint pool, GPUs together and the CPU last
query-embed-on-cpu, follow-up daemon-embedder-gpu-pool: huginn-daemon takes
repeated --ollama-url (GPU hosts) and --reserve-ollama-url (CPU hosts) and
builds the same EmbedderPool as huginn-sources, through one ollama::pool
constructor. A lone --ollama-url is a pool of one.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 07:56:22 +01:00
Meta Vens
13647f9220 pool: identities are read off the batch's clock and held to the collection's model
pool-blackhole-stalls: each due endpoint's identity is read on its own thread
under a 5 s bound, and a batch waits for reads only while no healthy primary
exists to start on, so a dark endpoint never delays work a healthy one can do.
pool-pins-first-identity: the pool is told the model the collection was built
with (Embedder::built_under, called by reconcile and refresh before the
identity read) and never writes with an endpoint serving another; it adopts a
model only when there is no collection, in list order.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 07:54:57 +01:00
Meta Vens
99d3c05b09 pool: simpler admission guard (clippy)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:58:55 +01:00
Meta Vens
e3d289fec8 sources tests: the batch test belongs after the last test, not inside it
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:57:34 +01:00
Meta Vens
1cfb905306 tests for the mutation survivors: char bound and newline accounting, catalog paging, batch bound, a source search through the daemon, the shared queue bound and abandon by ticket
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:56:22 +01:00
Meta Vens
bd39f95cfe pool: type alias for a piece's outcome; the mismatch test re-admits the endpoint after its model changed
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:55:01 +01:00
Meta Vens
bc8e071bf7 embedder pool in the shared index module (GPUs concurrent, CPU reserve, per-endpoint identity); huginn-sources uses it; the failover chain is deleted
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:51:57 +01:00
Meta Vens
040ae57d53 daemon: a source search is a Search with no mind part (keeps the Handled/Routed sizes clippy already accepted)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:44:49 +01:00
Meta Vens
b16c0619a0 daemon: box the mind search so Pending stays small (clippy)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:43:27 +01:00
Meta Vens
393a0aff62 live smoke: refresh one small public repo into a scratch source collection, search it, delete it; the Qdrant source port can be pointed at a scratch collection
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:40:22 +01:00
Meta Vens
9d081e2501 schemas: drop a runner line that landed inside the regenerated request schema
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:39:40 +01:00
Meta Vens
09fb87168f schemas: publish SearchSources and Sources (derived from the wire types)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:36:57 +01:00
Meta Vens
528deb296b sources tests: do not hold the fake's lock across its own accessor
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:32:51 +01:00
Meta Vens
6a66425931 source-search: compile fixes (startup bound, mirror init, test literal)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:27:50 +01:00
Meta Vens
d77747023e huginn sources: CLI door for SearchSources
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:25:26 +01:00
Meta Vens
1c227f5907 huginn-daemon: source index (chunker, git mirrors, forge catalog, refresh with embedder failover, SourceIndex on Qdrant), huginn-sources bin, daemon/worker source search not gated by the mind's index
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:25:25 +01:00
Meta Vens
5074181ebf wire: SearchSources/Sources, SourceQuery with its door, SourceHits (source-search-forge-public)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-31 06:25:25 +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
21827a736f Research: mind inheritance from Eureka — fork, distill or shared mind (question mind-inheritance-from-eureka)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 11:01:17 +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
6963b75572 eureka-body map: swarm by 2026-10-30 (seven parallel cuts, credential lease, typed Persona reply)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 18:43:34 +01:00
096b142301 eureka-body map: B4a landed as claude-code-backend (F35), B4 line rewritten with B4d tool exchange
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 11:07:20 +01:00
Meta Vens
4d77df80bc eureka-body map: F34 cites execute_inference_frame at its real lines
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 19:05:29 +01:00
Meta Vens
6adc9d7fce eureka-body map: claude-connector probes (F34), B4 cut line, B4a placed by its spec, B4b-c lines
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 19:05:11 +01:00
Meta Vens
f237623164 research: Claude connector prior art and probes (B4: credential terms, workspace limits, thinking across tool use, token counting)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 18:58:14 +01:00
Meta Vens
8c59b5a0ca eureka-body map: connector-spend probe (F33), B3c placed by its spec, B4 riders carried
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 13:40:07 +01:00
Meta Vens
bedfea44ec eureka-body map: connector-reasoning-item probe (F32), B3b placed by its spec
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 12:34:19 +01:00
Meta Vens
3b64b03d22 eureka-body map: connector-contract-v3 probes (F30-F31), its cut line, B3 split into B3a-c
Spec cut-connector-contract-v3.r2; questions connector-v3-wire, connector-v2-coexistence;
follow-up cultnet-binary-operation-payload. Research 725f5a5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 07:35:19 +01:00
Meta Vens
725f5a5a75 Research: connector contract v3 prior art and probes (reasoning state, spend, wire)
Serves eureka-body cut connector-contract-v3 and questions connector-v3-wire,
connector-v2-coexistence.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 07:27:59 +01:00
Meta Vens
3f47de5122 eureka-body map: connector-kit-lift probes (F26-F29), its cut line, path B refreshed
Imagination imagination-kit-lift, session self-2026-10-28-eureka. Spec
eureka-body:cut_spec:cut-connector-kit-lift.r1; questions connector-kit-relicense
and codex-connector-fate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 04:04:20 +01:00
Meta Vens
2512c8a42f Merge eureka-substrate/readback-gate: one O(N) upgrade read-back gate in huginn-mind, pinned by CI fixtures (Soul s2 holds)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 15:27:17 +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