Agents: pick work from
## Ready, move to## In Progresswhen starting, and clear or block when done. Workflow: docs/agent/AGENT_WORKFLOW.md
- drive-llamacpp-lmstudio — run a real
llama-serverand a real LM Studio against the conformance harness; replace theunmeasuredSPEC_DECODE rows and the "not measured" conformance skips with findings, and move either engine out ofchatOnly()if it proves/v1/completionsor/v1/embeddings - did-sign-in-step-up — make linking a DID ask for the current password (or a TOTP code) the way changing the password does; a person who only signs in through Portal has no local password, so decide what they are asked for (
docs/security/hub-portal-trust.md#sign-in-with-a-did) - did-sign-in-first-signer — run the DID sign-in against a real signer. Whether any Local.Pub client or wallet will sign a Hub challenge is unknown and untested; a Local.Pub account's DID authentication key can be written as a
did:keybut can rotate, and a rotation orphans the link. Then add the SIOPv2 request-object transport. Until then nothing has produced a token for this Hub outside the tests - did-sign-in-link-surface — give a person a way to see and remove their DID links (a screen,
cihub, or both), and decide whether a password change, the operator password reset, a Portal removal or an unlink should list or drop them or end the sessions a DID opened; today nothing but the generated client calls the routes, every recovery path leaves the links, and an unlink ends no session (docs/system/backend.md#sign-in-with-a-did) - did-sign-in-signed-purpose — make the purpose of a DID challenge something the signer signs (a
purposeclaim, or the SIOPv2 request object) so a wallet can show it and the Hub can check it. Today the purpose is chosen by whoever requests the public challenge and is not signed, so a relayedlinkproof plants the signer's DID on the relayer's person; a signed purpose cannot stop a page that lies to the wallet (docs/security/hub-portal-trust.md#sign-in-with-a-did) - did-sign-in-release-link — let the holder of a DID key release a link someone else made to it (an unlink proven by a signature rather than a session), so a planted link is not permanent: the signer's own link fails with a 409 and they cannot remove a row that is not theirs
- did-sign-in-absent-surface — make the DID surface really absent when
CI_HUB_DID_AUTHis off: register the five handlers (aDidAuthControllerlisted inAuthModuleonly when the flag istrueat module definition; a running process's environment cannot change) instead of answering 404 from a guard. Today an image with the frontend bundle answers an absolute-formGETorHEADfor/api/…with the 404 where a build without the routes servesindex.html, and outsideNODE_ENV=production/api/docs-jsonlists the routes (docs/system/backend.md#sign-in-with-a-did)
-
hub-did-key-sign-in — sign in with a DID, off unless
CI_HUB_DID_AUTH=true: five routes, link-first, no person or binding from a DID alone, TOTP kept, no AID header; needs the Hub security reviewer before merge (2026-11-05,docs/agent/sessions/2026-11-05-hub-did-key-sign-in.md) -
hub-did-key-sign-in-review — fix what an independent review of the DID sign-in found: weak Ed25519 keys, a cross-site link, challenge purposes, the Portal membership check, error codes a client can read, the flag-off 404, empty generated schemas, and tests through the real HTTP stack (2026-11-05, same worksheet)
-
hub-did-key-sign-in-review-2 — fix what a second round of that review found: the purpose of a challenge does not stop a relayer (docs corrected, signed purpose and release-a-link left as TODOs), the membership check's registration read, the flag-off 404 for absolute-form targets, demo mode, an on-curve check for a
did:key, total byte-level helpers, a flag that needs a restart, forward auth's reach, and tests that could not fail for their names (2026-11-05, same worksheet) -
hub-workflow-hygiene — add a workflow guard that
pnpm testruns, name the secrets each called release workflow receives, give six workflows a read-only token, and addSECURITY.md(2026-10-30,docs/agent/sessions/2026-10-30-hub-workflow-hygiene.md) -
hub-keri-freeze — freeze the in-tree KERI module as not interoperable, stop emitting label-derived
did:keri:strings in forward auth, and delete a visitor's AID headers at the Traefik edge (2026-10-30,docs/agent/sessions/2026-10-30-hub-keri-freeze.md) -
qa-start-timeout-cleanup — prevent unsafe QA retries after Docker start timeouts, output overflow, and external termination; verify cleanup before retries (2026-10-27, PR #2171)
-
localai-backend-and-media-routing — LocalAI backend integration, options object in
ConfigurationService.setInferencePreferences, generalized TTS/STT audio routing, and pool-routed GPU media workload tracking (2026-10-22,docs/agent/sessions/2026-10-22-localai-and-media-routing.md) -
inference-scope-and-engines —
inferenceAPI-key scope for external OpenAI-compatible clients, pooled model listing merges peer inventories, llama.cpp + LM Studio backends (2026-09-21,docs/agent/sessions/2026-09-21-inference-scope-and-engines.md) -
agentic-workflow-toolchain — Bootstrap agent router, workflow docs, skills, bin scripts, visual/benchmark gates (2026-07-12)