Skip to content

Deepr v2.46.0 - an expert that holds a view

Latest

Choose a tag to compare

@blisspixel blisspixel released this 11 Aug 02:35
· 5 commits to main since this release
ac78633

An expert stops being a list of retrieved claims and becomes something that holds a view, can say how it came to it, and can be examined on it.

v2.45.0 made an expert's measurements honest. This release gives it something to be honest about.

What an expert has now

A record of its own mind. Every view it has held, appended with what moved it and the corpus it was formed over. Positions carry a durable identity, so a falsifier registered today still refers to the same question after a re-brief.

Identity alone was not enough, and finding that out was the useful part. A brief with no memory of its own prior questions legitimately rephrases them, and a content-derived id then matches nothing: the same corpus briefed twice produced 7 differently-worded questions and restated 0 of the 9 already held. Showing the brief what it already holds took that to 7 revised, 0 dropped. A falsifier clock started before that fix would have reset itself every run while appearing to work.

An examination. deepr expert viva puts questions from other standpoints to the expert. The output that matters is not a score but a split: what is answerable from material it has not read yet, which is a reading list, against what nobody currently knows, which is a frontier.

A biography of its standpoint. Separate from the evidence graph that records what rests on what, a perspective graph records what moved the view and when. Having a history is what distinguishes an experienced expert from a new one.

A practice. Pursuits it is chasing, watches on sources worth staying current with, standing interests. Watches are earned from evidence rather than ranked by a model.

A face it chose. The portrait prompt used to describe the subject an expert studies, with a hash-seeded demographic rotation for variety, so two experts on one domain with opposite standpoints rendered nearly identically. An expert that chooses its own name now chooses its own appearance.

Expert directories are named for what they are

They were named after the commands that wrote them, so a listing told you which processes had run rather than what the expert was. Two names were worse than that: brief.json and positions.json were the same subject stored twice with no indication of which was current, and profile.json and profile_card.json were different things sharing a word.

self.json      who I am, and how I want to be depicted
corpus/        what I have read
noticed/       what I found in it
hold/          what I hold now, and every view I have held
became/        the chain of what changed me
attend/        what I chase, and where I look
met/           what has been put to me

deepr expert migrate moves an expert in place, dry run by default. Readers resolve the old path when only the old path exists, so nothing had to move at once. All 57 experts in the reference fleet were migrated and verified field by field against a pre-migration backup: 0 of 57 differ, with identical totals of 70 positions, 499 findings and 147 sources.

beliefs/ and knowledge/ were on the list of dead v1 directories until a dry run found content in 38 and 35 experts, about 4MB of live ledgers and digests. They are untouched. The migration reports a non-empty directory instead of deleting it, which is the only reason that was caught.

Also

  • Metered API keys are moved out of the process environment at startup, under a DEEPR_QUARANTINED_ prefix, so no client library can pick one up. Checking for keys is a policy; removing them is a property.
  • A stage contract. Presence is not validity. A synthesis that timed out still wrote a brief holding zero positions and exited 0, and the next stage produced a standpoint about the pipeline failing rather than about the subject. deepr expert status now reports failed - the artifact exists and carries nothing - separately from blocked and ready.
  • Capacity that adapts. An exhausted prepaid plan drops out of rotation for the rest of a run and is never persisted, since quota returns. "The corpus had nothing to say" and "I could not ask" are different outcomes and now survive into the artifact.
  • An expert can find its own sources rather than waiting for someone to name URLs.

Fixed

  • Early stopping could skip a search arm: the coverage gate compared against a hardcoded 5 while six arms existed. Comparing against the constant would have been worse, since many plans carry no terminology queries and the gate would never open at all; coverage is now judged against the arms the plan actually contains.
  • Fleet health sorted backwards against its own heading, putting the experts most in need of sources at the bottom of a list whose purpose is showing what needs attention.
  • Sixteen tests had an expiry date. Freshness is now - knowledge_cutoff against thresholds that are fractions of domain velocity, and those tests pinned a date rather than a band. It read as fresh when written, crossed into aging at 45 days of real elapsed time, and four tests began asserting against a different proposal with no change to the suite.

Full detail in docs/CHANGELOG.md.