Commit Graph
100 Commits
Author SHA1 Message Date
Frank b9dcb88f9b live: heartbeat sync 2026-10-30T03:56:49-07:00 (Refs #11) 2026-10-30 03:56:49 -07:00
Frank fb9b8b7d22 live: heartbeat sync 2026-10-30T02:53:49-07:00 (Refs #11) 2026-10-30 02:53:49 -07:00
Frank 53dd12e73d live: heartbeat sync 2026-10-30T01:50:49-07:00 (Refs #11) 2026-10-30 01:50:49 -07:00
Frank 52e8cca8f3 live: heartbeat sync 2026-10-30T00:48:49-07:00 (Refs #11) 2026-10-30 00:48:49 -07:00
Frank 7b7566928f live: heartbeat sync 2026-10-29T23:45:49-07:00 (Refs #11) 2026-10-29 23:45:49 -07:00
Frank ee7489b546 live: heartbeat sync 2026-10-29T22:44:49-07:00 (Refs #11) 2026-10-29 22:44:49 -07:00
Frank 4b032e011b live: heartbeat sync 2026-10-29T21:41:49-07:00 (Refs #11) 2026-10-29 21:41:49 -07:00
Frank dc56eb5b02 live: heartbeat sync 2026-10-29T20:38:49-07:00 (Refs #11) 2026-10-29 20:38:49 -07:00
Frank a5e00a09eb live: heartbeat sync 2026-10-29T19:37:40-07:00 (Refs #11) 2026-10-29 19:37:40 -07:00
Frank 04ada2c913 live: heartbeat sync 2026-10-29T18:36:49-07:00 (Refs #11) 2026-10-29 18:36:49 -07:00
Frank 4df5a28ba6 live: heartbeat sync 2026-10-29T17:35:49-07:00 (Refs #11) 2026-10-29 17:35:49 -07:00
Frank 03bf48956f live: heartbeat sync 2026-10-29T16:32:39-07:00 (Refs #11) 2026-10-29 16:32:39 -07:00
Frank 4d76c6038e live: heartbeat sync 2026-10-29T15:29:37-07:00 (Refs #11) 2026-10-29 15:29:37 -07:00
Frank 206c9acb46 feat: add the DeepSeek platform provider and deepseek-flash
Refs #83

The first vendor-cloud chat row in agent/models.yml. The provider label is the
bare word `deepseek` because pi-catalog/src/hosts.ts keys the direct-DeepSeek
behaviour set (max_tokens field, thinking extraBody, thinking-disable mode) off
that exact name and off api.deepseek.com; the house `<api> (<host>)` pattern
would not match and the row would lose the quirks the endpoint answers to.

The key is command-backed (`!cat ~/.config/secrets/deepseek_api_key`, 600), so
no sk-… value enters the tracked tree, and the row declares the model card's own
pair: contextWindow 1048576 / maxTokens 262144, input [text, image], with the
October 2026 peak rate card in cost. Docs move to the new
omp-docs/core/deepseek-provider.md, indexed and logged in the same commit.
2026-10-29 14:47:34 -07:00
Frank 53025a6be5 live: heartbeat sync 2026-10-29T14:27:39-07:00 (Refs #11) 2026-10-29 14:27:39 -07:00
Frank dc88d6f961 live: heartbeat sync 2026-10-29T13:25:49-07:00 (Refs #11) 2026-10-29 13:25:49 -07:00
Frank f2d8aa4f9e live: heartbeat sync 2026-10-29T12:22:39-07:00 (Refs #11) 2026-10-29 12:22:39 -07:00
Frank 7506970f9d live: heartbeat sync 2026-10-29T11:19:49-07:00 (Refs #11) 2026-10-29 11:19:49 -07:00
Frank c736456413 live: heartbeat sync 2026-10-29T10:17:49-07:00 (Refs #11) 2026-10-29 10:17:49 -07:00
Frank 441519c1f0 live: heartbeat sync 2026-10-29T09:15:49-07:00 (Refs #11) 2026-10-29 09:15:49 -07:00
Frank 90cd6bb766 live: heartbeat sync 2026-10-29T08:12:39-07:00 (Refs #11) 2026-10-29 08:12:39 -07:00
Frank 757fa0106b live: heartbeat sync 2026-10-29T07:10:49-07:00 (Refs #11) 2026-10-29 07:10:49 -07:00
Frank a8e74e7266 live: heartbeat sync 2026-10-29T06:09:49-07:00 (Refs #11) 2026-10-29 06:09:49 -07:00
Frank f859230ff6 live: heartbeat sync 2026-10-29T05:06:49-07:00 (Refs #11) 2026-10-29 05:06:49 -07:00
Frank 6569290398 live: heartbeat sync 2026-10-29T04:04:49-07:00 (Refs #11) 2026-10-29 04:04:49 -07:00
Frank d83531e3fe live: heartbeat sync 2026-10-29T03:03:49-07:00 (Refs #11) 2026-10-29 03:03:49 -07:00
Frank 41f577c883 live: heartbeat sync 2026-10-29T02:02:39-07:00 (Refs #11) 2026-10-29 02:02:39 -07:00
Frank 32bea490c4 live: heartbeat sync 2026-10-29T01:00:49-07:00 (Refs #11) 2026-10-29 01:00:49 -07:00
Frank b698b0e35e live: heartbeat sync 2026-10-28T23:58:49-07:00 (Refs #11) 2026-10-28 23:58:49 -07:00
Frank 0d41c3d61d live: heartbeat sync 2026-10-28T22:56:49-07:00 (Refs #11) 2026-10-28 22:56:49 -07:00
Frank ea2cfad847 live: heartbeat sync 2026-10-28T21:53:49-07:00 (Refs #11) 2026-10-28 21:53:49 -07:00
Frank 6f0aa7d72e live: heartbeat sync 2026-10-28T20:51:49-07:00 (Refs #11) 2026-10-28 20:51:49 -07:00
Frank 7d394e74b4 live: heartbeat sync 2026-10-28T19:48:49-07:00 (Refs #11) 2026-10-28 19:48:49 -07:00
Frank 10cd18ec57 live: heartbeat sync 2026-10-28T18:46:49-07:00 (Refs #11) 2026-10-28 18:46:49 -07:00
Frank e4721a6713 live: heartbeat sync 2026-10-28T17:45:49-07:00 (Refs #11) 2026-10-28 17:45:49 -07:00
Frank 4648ba7f3f live: heartbeat sync 2026-10-28T16:42:49-07:00 (Refs #11) 2026-10-28 16:42:49 -07:00
Frank 2d71c603cb live: heartbeat sync 2026-10-28T15:42:39-07:00 (Refs #11) 2026-10-28 15:42:39 -07:00
Frank 388058d134 live: heartbeat sync 2026-10-28T14:40:49-07:00 (Refs #11) 2026-10-28 14:40:49 -07:00
Frank 979382e5cc live: heartbeat sync 2026-10-28T13:39:49-07:00 (Refs #11) 2026-10-28 13:39:49 -07:00
Frank 47d4e0e8f9 live: heartbeat sync 2026-10-28T12:38:49-07:00 (Refs #11) 2026-10-28 12:38:49 -07:00
Frank a071d71e99 live: heartbeat sync 2026-10-28T11:37:39-07:00 (Refs #11) 2026-10-28 11:37:39 -07:00
Frank 38236f35f7 live: heartbeat sync 2026-10-28T10:34:49-07:00 (Refs #11) 2026-10-28 10:34:49 -07:00
Frank d73deb61e2 live: heartbeat sync 2026-10-28T09:33:49-07:00 (Refs #11) 2026-10-28 09:33:49 -07:00
Frank 68d6889100 live: heartbeat sync 2026-10-28T08:31:49-07:00 (Refs #11) 2026-10-28 08:31:49 -07:00
Frank 5a3f1a77ac live: heartbeat sync 2026-10-28T07:29:49-07:00 (Refs #11) 2026-10-28 07:29:49 -07:00
Frank 0b27a68c33 live: heartbeat sync 2026-10-28T06:26:49-07:00 (Refs #11) 2026-10-28 06:26:49 -07:00
Frank 0b72e9a427 live: heartbeat sync 2026-10-28T05:23:49-07:00 (Refs #11) 2026-10-28 05:23:49 -07:00
Frank b04a634ec2 live: heartbeat sync 2026-10-28T04:21:49-07:00 (Refs #11) 2026-10-28 04:21:49 -07:00
Frank 240324a18c live: heartbeat sync 2026-10-28T03:18:49-07:00 (Refs #11) 2026-10-28 03:18:49 -07:00
Frank 9d172eff9c live: heartbeat sync 2026-10-28T02:15:49-07:00 (Refs #11) 2026-10-28 02:15:49 -07:00
Frank ddebfb63bb live: heartbeat sync 2026-10-28T01:13:49-07:00 (Refs #11) 2026-10-28 01:13:49 -07:00
Frank b7fd64b241 live: heartbeat sync 2026-10-28T00:11:49-07:00 (Refs #11) 2026-10-28 00:11:49 -07:00
Frank 414b4cd578 live: heartbeat sync 2026-10-27T23:08:49-07:00 (Refs #11) 2026-10-27 23:08:49 -07:00
Frank b289aa59d4 live: heartbeat sync 2026-10-27T22:05:49-07:00 (Refs #11) 2026-10-27 22:05:49 -07:00
Frank 175bbdf451 live: heartbeat sync 2026-10-27T21:02:39-07:00 (Refs #11) 2026-10-27 21:02:39 -07:00
Frank 531ead5775 live: heartbeat sync 2026-10-27T20:01:49-07:00 (Refs #11) 2026-10-27 20:01:49 -07:00
Frank 9df5c50fda live: heartbeat sync 2026-10-27T18:58:49-07:00 (Refs #11) 2026-10-27 18:58:49 -07:00
Frank ed3a43bff1 docs(core): snapcompact audit — measured shape/recall table, frank-archon image-count budget, 85% trigger law
Live probe against frank-archon (212,916-char archive, 8 planted facts):
auto shape 8on22-bw reads back 8/8 recall at 47% of raw-text billed
tokens; both denser grids drop characters. Lands the docs for the paired
live-config changes (thresholdPercent 95->85, imageCountBudget 16) and
records the catalog-only frame-pricing law (radiance ~2,400 tok/frame vs
the harness's blind 5,024 floor).

Refs #81
2026-10-27 18:37:31 -07:00
Frank cd3fe7fd03 live: heartbeat sync 2026-10-27T17:57:53-07:00 (Refs #11) 2026-10-27 17:57:53 -07:00
Frank 218357cb66 live: heartbeat sync 2026-10-27T16:55:49-07:00 (Refs #11) 2026-10-27 16:55:49 -07:00
Frank 31d6924a27 live: heartbeat sync 2026-10-27T15:54:49-07:00 (Refs #11) 2026-10-27 15:54:49 -07:00
Frank feda9fe668 live: heartbeat sync 2026-10-27T14:52:38-07:00 (Refs #11) 2026-10-27 14:52:38 -07:00
Frank eae9dea2b0 live: heartbeat sync 2026-10-25T19:49:50-07:00 (Refs #11) 2026-10-25 19:49:50 -07:00
Frank bc597edec1 live: heartbeat sync 2026-10-23T16:20:45-07:00 (Refs #11) 2026-10-23 16:20:45 -07:00
Frank 5f560f33c1 live: heartbeat sync 2026-10-23T15:17:45-07:00 (Refs #11) 2026-10-23 15:17:45 -07:00
Frank 461f0b8a6e live: heartbeat sync 2026-10-23T14:16:45-07:00 (Refs #11) 2026-10-23 14:16:45 -07:00
Frank 02b65989ca live: heartbeat sync 2026-10-23T13:14:45-07:00 (Refs #11) 2026-10-23 13:14:45 -07:00
Frank 42eaf9e1a7 live: heartbeat sync 2026-10-22T22:47:45-07:00 (Refs #11) 2026-10-22 22:47:45 -07:00
Frank f51f4dd1aa live: heartbeat sync 2026-10-22T20:42:45-07:00 (Refs #11) 2026-10-22 20:42:45 -07:00
Frank 0e2cf13e3b live: heartbeat sync 2026-10-22T11:24:45-07:00 (Refs #11) 2026-10-22 11:24:45 -07:00
Frank 1d1059f7b3 live: heartbeat sync 2026-10-22T11:02:06-07:00 (Refs #11) 2026-10-22 11:02:06 -07:00
Frank b7089ef570 live: heartbeat sync 2026-10-22T10:01:40-07:00 (Refs #11) 2026-10-22 10:01:40 -07:00
Frank dc4de763f3 live: heartbeat sync 2026-10-22T09:01:07-07:00 (Refs #11) 2026-10-22 09:01:07 -07:00
Frank 9d284106ac live: heartbeat sync 2026-10-22T07:59:45-07:00 (Refs #11) 2026-10-22 07:59:45 -07:00
Frank ac2c5c519a live: heartbeat sync 2026-10-22T06:58:47-07:00 (Refs #11) 2026-10-22 06:58:47 -07:00
Frank f1402ca89c live: heartbeat sync 2026-10-22T05:56:18-07:00 (Refs #11) 2026-10-22 05:56:18 -07:00
Frank 4d515f7e81 live: heartbeat sync 2026-10-22T04:54:18-07:00 (Refs #11) 2026-10-22 04:54:18 -07:00
Frank f7281eee42 live: heartbeat sync 2026-10-22T03:51:42-07:00 (Refs #11) 2026-10-22 03:51:42 -07:00
Frank ecb81dd8b8 live: heartbeat sync 2026-10-22T02:50:34-07:00 (Refs #11) 2026-10-22 02:50:34 -07:00
Frank 1b1a296ec5 live: heartbeat sync 2026-10-22T01:47:38-07:00 (Refs #11) 2026-10-22 01:47:38 -07:00
Frank 9a3d364832 live: heartbeat sync 2026-10-22T00:46:57-07:00 (Refs #11) 2026-10-22 00:46:57 -07:00
Frank e529dc5386 live: heartbeat sync 2026-10-21T23:44:55-07:00 (Refs #11) 2026-10-21 23:44:55 -07:00
Frank 9faf7e0652 live: heartbeat sync 2026-10-21T22:44:37-07:00 (Refs #11) 2026-10-21 22:44:37 -07:00
Frank 017404aa51 live: heartbeat sync 2026-10-21T17:49:41-07:00 (Refs #11) 2026-10-21 17:49:41 -07:00
Frank f3360a28f1 feat(models): reach the fleet from off-network through the OpenWebUI door
Every provider in agent/models.yml is a LAN address, so a workstation that
leaves the house has no model at all. Add `openwebui (franksdank.cloud)`:
the already-public OpenWebUI vhost as an OpenAI-compatible provider that
proxies the same engines, with frank-dragoon and frank-zealot rows and the
WAN row as its own compaction target. LAN rows, modelRoles and the speech
runner stay untouched — the door is purely additive.

The key is command-backed (`apiKey: "!cat ~/.config/secrets/openwebui_api_key"`,
mode 600) instead of inline: a literal sk-... in a tracked file is a key in
every agent context on every box that pulls this repo, and the pre-commit
shape gate would block it anyway. Rotate = rewrite the file + restart omp,
because a `!cmd` value is cached for the process lifetime.

Compat blocks copy their LAN twins because the proxy was probed, not assumed
(2026-10-21): streaming SSE carries reasoning_content and tool_calls deltas
plus final usage, image_url content parts reach both vision towers, and
chat_template_kwargs is forwarded — proven on frank-zealot, where
enable_thinking false yields zero reasoning and true a real block.
frank-archon gets no WAN row: OpenWebUI answers 400 "Model not found"
because its picker never published it, so that path is a fleet change.

Verified end-to-end from a scratch HOME whose LAN baseUrls point at a dead
port, so any answer can only have come through the door (text and a real
tool round-trip); `omp models` still lists all four chat providers and the
tts runner, so the file validates. bats 137/137, kb-lint clean.
Docs: omp-docs/core/wan-model-access.md.
2026-10-21 16:48:29 -07:00
Frank dcdf84719c docs(reports): point the reports index and work log at the vuln issues
The audit's vulnerability clusters are now filed on Gitea as
dank/command-center#67..#77, one issue per host-and-package cluster. Link
them from omp-docs/reports/index.md and record the PR/issue references on
the matching log.md entry, so a reader of the audit can find the open work
without leaving the bundle.
2026-10-21 15:05:41 -07:00
Frank 27da5cd9ec docs(reports): land the fleet security audit with its per-host vuln passes
Fold the Dankclaw and Dankserver vulnerability passes into
fleet-security-audit-2026-10-21.html: the stub "Advisory cross-reference (in
progress)" section becomes the full matrix (host advisories, GHSA coverage,
image-vulnerability matrix, no-advisory census, observed-without-credentials
rows for the two livingroom hosts) and the header links the two working files,
which move into omp-docs/reports/ with an index of their own.

Correct three figures the audit had wrong, all found by re-probing: the
mutable-tag census (17 -> 19 Dankclaw manifests / 17 unique references, +4 on
Dankserver), the Dankserver OpenSSH advisory count (0 -> 5 unpatched CVEs; the
first OSV query omitted the version epoch, and OSV answers "0 vulns" rather
than "unknown" for a malformed purl), and the Plex version ("12.1.0" is
Jellyfin's - the live container reports 1.43.5.11029-6bf8af3f0-ls329). Also
repair a malformed <code> tag in F1's evidence cell.

kb-lint and kb-coverage both report 0 issues; index.md gains the Reports
section and log.md the matching entry.
2026-10-21 14:04:33 -07:00
Frank ec9bf77b10 live: heartbeat sync 2026-10-21T11:49:23-07:00 (Refs #11) 2026-10-21 11:49:23 -07:00
Frank 6a12ffaef4 live: heartbeat sync 2026-10-21T10:47:56-07:00 (Refs #11) 2026-10-21 10:47:56 -07:00
Frank d33ee26e67 live: heartbeat sync 2026-10-21T09:46:51-07:00 (Refs #11) 2026-10-21 09:46:51 -07:00
Frank b8f66e22b2 live: heartbeat sync 2026-10-21T08:45:51-07:00 (Refs #11) 2026-10-21 08:45:51 -07:00
Frank 07768ce8b5 live: heartbeat sync 2026-10-21T07:43:51-07:00 (Refs #11) 2026-10-21 07:43:51 -07:00
Frank d845160e62 live: heartbeat sync 2026-10-21T06:41:51-07:00 (Refs #11) 2026-10-21 06:41:51 -07:00
Frank 3ab48bf1f2 live: heartbeat sync 2026-10-21T05:39:51-07:00 (Refs #11) 2026-10-21 05:39:51 -07:00
Frank 51f9846ac6 live: heartbeat sync 2026-10-21T04:37:51-07:00 (Refs #11) 2026-10-21 04:37:51 -07:00
Frank 4085ee403f live: heartbeat sync 2026-10-21T03:35:51-07:00 (Refs #11) 2026-10-21 03:35:51 -07:00
Frank de7dd6f897 docs(links): five See Also links had no text at all
A generated See Also pass left `- ](index.md)` style links on the gitea pages, tools/cachyos.md,
and tools/applications.md. Rendered, an empty-text link is a bullet with nothing clickable in it,
so it reads as a formatting quirk and never as the broken reference it is. All five now name the
page they point at and use the absolute bundle path the spec recommends; the grep that finds them
is recorded in the log so the sweep is repeatable.

Refs #64
2026-10-21 02:43:15 -07:00
Frank 64bb23b329 docs(log): one dated section per day, and the sweep's lesson learned
The day had three `## 2026-10-21` headings — three logs wearing one date, which is the sprawl the
spec's one-dated-section rule exists to prevent. One date now, one `###` per campaign. `okf-maintenance.md`
states the multi-campaign shape explicitly so nobody has to infer it, and names `AGENTS.md` as the
co-owner of the entry law so an editor changes both.

The new entry records what the dedupe sweep actually taught: an index that restates its own
reference pages becomes the stale authority, and a subagent ledger is a claim until it is re-read
against the file it accuses — most rows returned by the audit fan-out were checkably false, and
half the ledgers never arrived at all. `skills/ecosystem.md` gains the `resource:` frontmatter the
bundle's other externally-sourced pages carry.

Refs #64
2026-10-21 02:40:59 -07:00
Frank 336201e814 live: heartbeat sync 2026-10-21T02:32:51-07:00 (Refs #11) 2026-10-21 02:32:51 -07:00
Frank e0b1466f74 docs(searxng): the upstream engine count is an order of magnitude, not a fact
The intro carried "388 engine entries" from a 2026-10-19 probe; upstream is at 385 today. The
number moves every week, which makes a precise one a liability in a runbook. The page now states
the size class, names `/config` as the only authority for what an instance loads, and keeps the
fleet's live 262 with today's date.

Refs #64
2026-10-21 02:26:24 -07:00