@zerwiz/ymir 0.1.27 → 0.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/groa-update/SKILL.md +30 -0
- package/CHANGELOG.md +27 -0
- package/README.md +47 -8
- package/bin/fixes-guard.sh +112 -0
- package/bin/fixes.sh +157 -0
- package/bin/ymir.js +35 -0
- package/docs/fixes/agents/unversioned-2026-09-11-chat-uses-the-root-pi-model-catalog.md +15 -0
- package/docs/fixes/agents/unversioned-2026-09-11-shared-well-for-every-harness-no-mock-clickable-memories.md +26 -0
- package/docs/fixes/agents/unversioned-2026-09-13-gleipnir-sees-when-an-agent-is-turned-off.md +26 -0
- package/docs/fixes/agents/unversioned-2026-09-14-the-eindri-brokk-wake-bridge-they-can-talk-back-now.md +23 -0
- package/docs/fixes/agents/unversioned-2026-09-16-a-sandboxed-worker-cannot-think-auto-stops-killing-agent.md +18 -0
- package/docs/fixes/agents/unversioned-2026-09-17-agents-md-states-the-one-law-no-private-data-in-the-publ.md +25 -0
- package/docs/fixes/agents/unversioned-2026-09-17-every-figure-loads-the-agent-directory-was-never-read.md +25 -0
- package/docs/fixes/agents/unversioned-2026-09-17-pi-gets-its-agents-and-a-dead-extension-comes-back.md +26 -0
- package/docs/fixes/agents/unversioned-2026-09-17-the-well-as-tools-ymir-s-first-custom-pi-extension.md +20 -0
- package/docs/fixes/gate/0.1.28-fixes-guard-replaces-the-changelog-gate.md +7 -0
- package/docs/fixes/gate/0.1.28-the-changelog-system-is-replaced-by-fix-notes.md +8 -0
- package/docs/fixes/gate/0.1.28-the-frozen-changelog-becomes-per-component-notes.md +9 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-11-automate-the-install-consent-gate-self-healing-prereqs-v.md +21 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-11-single-tenant-workspaces-shipped.md +15 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-13-the-cloth-reaches-all-three-halls-hlidskjalf-sm-ja-the-s.md +25 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-16-one-login-for-every-app-on-the-web-the-gate-fronts-them-.md +24 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-16-the-credential-reaches-the-gate-and-the-hall-stops-leaki.md +23 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-16-the-delivery-gates-install-themselves-rename-drift-mende.md +22 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-16-the-panels-that-crashed-the-gate-that-lied-and-the-well-.md +25 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-17-0-1-14-the-panels-reach-the-gate-and-the-fourth-window-s.md +9 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-17-models-providers-and-paths-are-the-user-s-and-the-gate-s.md +26 -0
- package/docs/fixes/hlidskjalf/unversioned-2026-09-17-the-northstar-gate-runs-nightly-the-platform-door-it-cau.md +16 -0
- package/docs/fixes/hoard/unversioned-2026-09-16-every-app-wears-its-own-rune.md +27 -0
- package/docs/fixes/hoard/unversioned-2026-09-16-hodd-lives-outside-the-repo-and-the-installer-makes-it-s.md +24 -0
- package/docs/fixes/hoard/unversioned-2026-09-16-the-icons-are-real-runes-now-eight-of-them-were-drawings.md +33 -0
- package/docs/fixes/hoard/unversioned-2026-09-17-0-1-26-published-and-the-vault-door-named.md +8 -0
- package/docs/fixes/hoard/unversioned-2026-09-17-one-well-in-the-hoard-every-reader-of-kaia-s-memory-reso.md +23 -0
- package/docs/fixes/hoard/unversioned-2026-09-17-skrymir-opens-the-hoard-not-the-checkout.md +18 -0
- package/docs/fixes/hoard/unversioned-2026-09-17-the-hoard-encrypts-its-secrets-at-rest.md +20 -0
- package/docs/fixes/hoard/unversioned-2026-09-17-the-hoard-gets-a-guard-and-rule-04-stops-contradicting-t.md +19 -0
- package/docs/fixes/hoard/unversioned-2026-09-17-the-home-s-re-laid-layout-taught-to-the-system.md +17 -0
- package/docs/fixes/hoard/unversioned-2026-09-17-the-private-home-gets-the-ward-it-never-had.md +25 -0
- package/docs/fixes/hoard/unversioned-2026-09-17-the-schedule-is-the-user-s-cron-leaves-the-tree-lives-in.md +27 -0
- package/docs/fixes/install/0.1.28-a-stale-install-can-no-longer-hide.md +8 -0
- package/docs/fixes/install/unversioned-2026-09-11-desktop-shell-tunnel-and-temporary-auth.md +14 -0
- package/docs/fixes/install/unversioned-2026-09-11-smooth-install-provider-choice-no-forced-key-real-prereq.md +22 -0
- package/docs/fixes/install/unversioned-2026-09-16-apodex-joins-the-weave-research-planning-provider.md +27 -0
- package/docs/fixes/install/unversioned-2026-09-16-icons-the-operator-can-pin-and-one-pair-of-hands-for-the.md +29 -0
- package/docs/fixes/install/unversioned-2026-09-16-the-desktop-never-dials-out-cloudflare-stays-outside-ele.md +25 -0
- package/docs/fixes/install/unversioned-2026-09-17-0-1-12-the-icons-reach-the-live-tree-and-a-missing-surfa.md +10 -0
- package/docs/fixes/install/unversioned-2026-09-17-0-1-8-the-day-s-work-reaches-npm.md +25 -0
- package/docs/fixes/install/unversioned-2026-09-17-a-stale-install-cannot-hide-and-the-one-liner-cannot-be-.md +9 -0
- package/docs/fixes/install/unversioned-2026-09-17-both-shapes-a-clone-and-an-npm-install-and-the-patience-.md +26 -0
- package/docs/fixes/install/unversioned-2026-09-17-gr-a-knows-the-npm-half-how-to-renew-the-published-packa.md +9 -0
- package/docs/fixes/install/unversioned-2026-09-17-npm-only-the-hall-answers-on-its-own-port-and-the-marks-.md +27 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-apps-leave-the-monorepo-installation-pulls-them-from.md +23 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-doors-the-cloth-and-the-icons-that-were-not-there.md +27 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-editor-stops-being-banished-to-its-own-desktop.md +18 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-four-surfaces-arrive-by-npm-and-an-old-tree-gives-up.md +24 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-house-gains-an-unpublish-door.md +19 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-icons-reach-the-live-tree-and-a-missing-surface-is-a.md +26 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-install-asks-with-a-plan-and-the-operator-s-things-l.md +24 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-installer-actually-installs-the-whole-platform-then-.md +9 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-installer-has-a-design-of-its-own.md +9 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-npm-door-stands-the-surfaces.md +13 -0
- package/docs/fixes/install/unversioned-2026-09-17-the-one-liner-the-readme-promised-and-it-sets-the-path.md +9 -0
- package/docs/fixes/install/unversioned-2026-09-17-ymir-command-not-found-is-a-path-fault-and-here-is-the-c.md +8 -0
- package/docs/fixes/install/unversioned-2026-09-18-the-readme-leads-with-the-doors-that-work.md +13 -0
- package/docs/fixes/odrerir/unversioned-2026-09-14-rerir-forged-eindri-odrerir-pane-w3-p7.md +12 -0
- package/docs/fixes/odrerir/unversioned-2026-09-17-the-live-hall-s-board-becomes-true-the-snapshot-lands-on.md +18 -0
- package/docs/fixes/runtime/unversioned-2026-09-11-gleipnir-lock-pid-binding-fix.md +17 -0
- package/docs/fixes/runtime/unversioned-2026-09-11-hardcoded-per-page-feeds-header-stream.md +19 -0
- package/docs/fixes/runtime/unversioned-2026-09-11-per-page-rolling-40-message-feeds.md +13 -0
- package/docs/fixes/runtime/unversioned-2026-09-11-smi-ja-views-are-repo-local.md +17 -0
- package/docs/fixes/runtime/unversioned-2026-09-11-stats-1-1-kaia-chat-forge-prompts.md +23 -0
- package/docs/fixes/runtime/unversioned-2026-09-11-the-well-is-real-mimirsbrunn-engram.md +21 -0
- package/docs/fixes/runtime/unversioned-2026-09-12-fleet-preferences.md +11 -0
- package/docs/fixes/runtime/unversioned-2026-09-12-house-law-rules-and-the-grein-naming.md +11 -0
- package/docs/fixes/runtime/unversioned-2026-09-12-r-preference-moved-out-of-the-tracked-tree.md +10 -0
- package/docs/fixes/runtime/unversioned-2026-09-12-the-dashboards-stop-crash-looping-on-the-igpu.md +20 -0
- package/docs/fixes/runtime/unversioned-2026-09-12-the-well-actually-installs-it-never-did.md +23 -0
- package/docs/fixes/runtime/unversioned-2026-09-12-updater-forged-credential-moved-to-env.md +12 -0
- package/docs/fixes/runtime/unversioned-2026-09-14-a-vacant-helm-is-entered-not-punted-watcher-wake-repair.md +24 -0
- package/docs/fixes/runtime/unversioned-2026-09-14-the-echo-guard-no-wake-flood-through-gn-s-door.md +18 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-app-packaging-prepared-under-the-ymir-scope-amendment-c-.md +23 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-four-readers-that-still-pointed-at-the-pre-split-world.md +26 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-no-blue-the-forge-language-replaces-the-old-blue.md +26 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-omarchy-first-host-aware-windows-and-macos-get-a-door.md +25 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-smi-ja-moves-into-the-app-tree.md +17 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-the-changelog-guard-no-push-ships-untold.md +19 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-the-core-senses-the-real-host-not-omarchy-s-shadow.md +23 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-the-hearth-spreads-one-fire-three-more-surfaces.md +25 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-the-loader-stops-deleting-merge-never-overwrite.md +27 -0
- package/docs/fixes/runtime/unversioned-2026-09-16-the-mesh-reaches-teams-and-anchor-and-show-stops-guessin.md +24 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-0-1-10-the-hall-answers-on-its-port-and-the-marks-land.md +15 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-0-1-11-four-surfaces-their-marks-and-a-door-that-mends.md +18 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-glitnir-stops-hanging-and-one-process-is-one-row.md +15 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-main-is-repaired-and-the-report-wears-the-cloth.md +25 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-not-again-and-four-surfaces-in-one-raise.md +26 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-smoke-test-all-ui-two-checks-that-lied-about-their-own-s.md +20 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-changelog-stops-conflicting-fragments-folded-by-a-sc.md +25 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-doors-written-down-where-a-user-will-find-them.md +20 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-duplicate-extensions-removed-from-the-project-tree.md +17 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-extensions-deployed-without-their-modules.md +23 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-feed-follows-brokk-s-thinking-past-the-composer.md +17 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-fleet-stops-colliding-a-grid-fan-and-each-smith-s-ow.md +21 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-fork-stands-the-machine.md +12 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-fragment-convention-is-enforced-where-github-runs-it.md +26 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-layout-swept-every-reader-taught-the-new-doors.md +24 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-model-that-raised-itself-and-the-workhorse-that-repl.md +26 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-package-shipped-the-memory-well-one-version-now-excl.md +26 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-phantom-optional-pins-cut.md +9 -0
- package/docs/fixes/runtime/unversioned-2026-09-17-the-sweep-and-the-door-that-mends-itself.md +26 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-12-the-editor-keeps-its-own-seat.md +16 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-13-sessr-mnir-the-seat-hall.md +28 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-13-the-carved-cloth-reaches-the-seat-hall-sessr-mnir.md +27 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-13-the-new-tree-the-mesh-the-seat-hall.md +25 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-13-the-realm-seat-carved-wayof.md +24 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-16-apodex-seat-verified-the-weave-mended.md +27 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-16-the-visualizer-finds-its-db-and-the-seat-hall-actually-b.md +22 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-17-0-1-13-the-re-voiced-seat-arrives-and-the-packages-are-l.md +8 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-17-sessr-mnir-stops-wearing-pi-s-clothes.md +23 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-17-the-hearth-re-seeds-on-its-container-sessr-mnir-s-chat-f.md +23 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-17-the-packaged-seat-carries-the-watch.md +11 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-17-the-readme-lists-the-packages-and-the-pin-moves-to-the-r.md +16 -0
- package/docs/fixes/sessrumnir/unversioned-2026-09-17-the-seat-s-name-and-the-visualizer-s-home.md +12 -0
- package/docs/fixes/skills/unversioned-2026-09-11-galdr-tyr-assets-symlink-not-copies.md +11 -0
- package/docs/fixes/skills/unversioned-2026-09-11-load-the-owning-asset-before-editing-a-governed-path-5-l.md +21 -0
- package/docs/fixes/skills/unversioned-2026-09-11-omarchy-first-host-skills-machine-learning-native-fixes.md +27 -0
- package/docs/fixes/skills/unversioned-2026-09-13-the-imported-names-leave-the-halls-norse-naming-purge.md +26 -0
- package/docs/fixes/skills/unversioned-2026-09-16-gunnl-joins-the-hall-skillopt-integration.md +17 -0
- package/docs/fixes/skills/unversioned-2026-09-16-one-skills-tree-every-harness-the-config-stomp-mended.md +25 -0
- package/docs/fixes/skills/unversioned-2026-09-16-the-skill-loading-audit-wrong-skills-unloaded-the-index-.md +26 -0
- package/docs/fixes/skills/unversioned-2026-09-17-0-1-9-both-shapes-reach-the-registry.md +17 -0
- package/docs/fixes/skills/unversioned-2026-09-17-midgard-holds-public-assets-only-the-company-wiki-is-gon.md +23 -0
- package/docs/fixes/skills/unversioned-2026-09-17-the-forge-speaks-each-skill-s-own-text-in-the-index.md +16 -0
- package/docs/fixes/skills/unversioned-2026-09-17-the-local-git-round-joins-the-loom-the-stack-s-doors-are.md +19 -0
- package/docs/fixes/skills/unversioned-2026-09-17-the-registry-says-where-a-repo-lives-and-what-it-is-for.md +20 -0
- package/docs/fixes/smidja/unversioned-2026-09-16-the-pane-bridge-keeps-its-quoting-phase-3-verified.md +22 -0
- package/docs/fixes/smidja/unversioned-2026-09-16-the-roster-can-finally-run-an-agent-on-pi.md +23 -0
- package/docs/fixes/smidja/unversioned-2026-09-16-the-roster-s-effect-lands-and-the-backend-pin-stops-bein.md +19 -0
- package/docs/fixes/smidja/unversioned-2026-09-16-the-validator-stops-calling-a-dead-visualizer-healthy.md +20 -0
- package/docs/fixes/smidja/unversioned-2026-09-17-the-fleet-was-a-rack-of-terminals-now-it-is-the-roster.md +18 -0
- package/docs/fixes/smidja/unversioned-2026-09-17-the-plan-learns-the-smithy-s-package-name-and-the-instal.md +25 -0
- package/docs/fixes/smidja/unversioned-2026-09-17-the-smithy-can-see-the-well.md +20 -0
- package/docs/fixes/smidja/unversioned-2026-09-17-the-smithy-s-dependency-names-the-package-npm-will-actua.md +20 -0
- package/package.json +1 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
## skills · unversioned · 2026-09-17 — midgard holds public assets only; the company wiki is gone
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
- **`midgard/company_wiki/` did not belong in this repo.** It was an empty
|
|
5
|
+
placeholder (one `.gitkeep`), but a company wiki is *tenant data* — policies,
|
|
6
|
+
vision, specs, client names — and this repo is public. Removed, with every
|
|
7
|
+
reference to it corrected in `midgard/README.md`, `STRUCTURE.md`, `docs/lore.md`
|
|
8
|
+
and `assets/Ymir.md`.
|
|
9
|
+
- **`midgard/` is now described precisely.** It was called "shared company
|
|
10
|
+
assets" in one place and "cross-tenant" in another; a wiki is neither. The
|
|
11
|
+
contract says **public assets**, and `midgard/README.md` names what does *not*
|
|
12
|
+
belong: company knowledge, which lives at `$YMIR_HOME/hodd/identity/companies/`.
|
|
13
|
+
- **`bin/private-guard.sh` gains a tenant-document rule** so the shape cannot
|
|
14
|
+
return: a `company_wiki/`, `wiki/`, `policies/`, `handbook/` or `vision`/
|
|
15
|
+
`strategy`/`roadmap` document staged in the public tree is refused, with a
|
|
16
|
+
message naming where it belongs. Verified by planting `midgard/company_wiki/policies.md`.
|
|
17
|
+
- **Nothing had leaked.** A full sweep of every tracked midgard file for personal
|
|
18
|
+
handles, home paths, key shapes, tunnel UUIDs and LAN/tailnet addresses found
|
|
19
|
+
no hits — the ingress configs use `${VARS}` and `example.org` throughout, and
|
|
20
|
+
the DB schema is generic with row-level security on every tenant table.
|
|
21
|
+
|
|
22
|
+
### Files
|
|
23
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
## skills · unversioned · 2026-09-17 — the Forge speaks: each skill's own text in the index
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
- **The Forge listed skills as bare names.** `Forge.tsx` rendered only
|
|
5
|
+
`{s.name}` + the aett rune, while the live `/api/skills` index carries every
|
|
6
|
+
skill's `description` (240-char truncation) — the data was there, the
|
|
7
|
+
surface never showed it. The skill list items are now two-line cards: name +
|
|
8
|
+
aett on the head row, the description beneath (`forge-item-desc`, dimmed
|
|
9
|
+
until hover), scoped to the skill variant so the Eindri rows keep their
|
|
10
|
+
side-by-side name+status shape.
|
|
11
|
+
|
|
12
|
+
galdr-reread: `.agents/skills/galdr-ymirsystem/assets/hlidskjalf-ui.md` — the
|
|
13
|
+
Forge gate bullet (skill list shows name + aett + description).
|
|
14
|
+
|
|
15
|
+
### Files
|
|
16
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
## skills · unversioned · 2026-09-17 — the local git round joins the loom; the stack's doors are in the registry
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
- **`bin/nornir-job-forgejo-git.sh` (02:45)** — reads the local forge's open
|
|
5
|
+
issues each night (`$YMIR_HOME/config/forge.env` names the door; token
|
|
6
|
+
optional), writes a daily digest to the hoard, carves Rune
|
|
7
|
+
`forgejo / git.issues` — or `git.door-down` (exit 1) when the tunnel is
|
|
8
|
+
closed, so a dead door is seen at sunrise. Unarmed without a URL, honestly.
|
|
9
|
+
- **The marketing stack's doors are now in the registry** —
|
|
10
|
+
`marketing_doors[6]` (Mautic · Postiz · Activepieces · Forgejo · SearXNG ·
|
|
11
|
+
Grafana) with reach notes, mirrored to the Galdr asset. Agents (Bragi ·
|
|
12
|
+
Sindri) provision the stack for any user via
|
|
13
|
+
`bin/ymir-marketing-stack.sh`, or reach the Allfather's live server stack.
|
|
14
|
+
|
|
15
|
+
galdr-reread: `.agents/skills/galdr-ymirsystem/assets/nornir-jobs.md` — §3.7
|
|
16
|
+
(Forgejo round) and §3.8 (marketing stack provisioner); registry mirrored.
|
|
17
|
+
|
|
18
|
+
### Files
|
|
19
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## skills · unversioned · 2026-09-17 — the registry says where a repo lives and what it is for
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
- **A project entry can now name its machine.** `machine:` records the host
|
|
5
|
+
where a checkout lives; `data/machines.md` holds the fleet (omarchy-1,
|
|
6
|
+
zerwiz, zerwizserver live on the tailnet). A repo is no longer assumed to be
|
|
7
|
+
on the box you happen to be standing on.
|
|
8
|
+
- **A project entry can now say what it is for.** `about:` is one plain
|
|
9
|
+
sentence per repo. `bin/project-git.sh list --field about` prints the whole
|
|
10
|
+
inventory without opening the YAML.
|
|
11
|
+
- **`project-git.sh` resolves more of the block.** `--field` now accepts
|
|
12
|
+
`machine`, `company`, `workspace` and `about` alongside the git fields, and
|
|
13
|
+
non-git keys read from the project block rather than the `git:` line.
|
|
14
|
+
- **One registry, not two.** The live registry is `hodd/identity/projects.yaml`
|
|
15
|
+
(what the runtime reads). A stale duplicate at `Documents/Ymir/identity/` had
|
|
16
|
+
been drifting apart from it — different GitHub owners, different project sets
|
|
17
|
+
— and is retired, with a backup kept in `hodd/state/`.
|
|
18
|
+
|
|
19
|
+
### Files
|
|
20
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
## smidja · unversioned · 2026-09-16 — the pane bridge keeps its quoting; Phase 3 verified
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
- **The Apodex plan's last open verification is closed.** Run in a herdr pane —
|
|
5
|
+
`bin/herdr-run.sh run huginn-research -- bin/huginn-research-worker.sh --brief
|
|
6
|
+
"…" --output-dir …` — the worker recalled, dispatched to the Apodex seat, wrote
|
|
7
|
+
its verdict, and observed it into Mimirsbrunn (`status: completed`, verdict
|
|
8
|
+
*"The capital of Norway is Oslo."*). Phase 3 needed a spawn, which the
|
|
9
|
+
read-only session lock had forbidden; it was run once the lock was this
|
|
10
|
+
session's.
|
|
11
|
+
- **Defect found and mended — `bin/herdr-run.sh run` lost its quoting.** A pane
|
|
12
|
+
runs its command through a *shell*, but the bridge handed herdr the raw argv.
|
|
13
|
+
An argument containing spaces reached the pane as separate words, so
|
|
14
|
+
`--brief "In one sentence: …"` arrived as `--brief In one sentence: …` and the
|
|
15
|
+
worker died with `error: unknown arg: one`. Every real brief is multi-word, so
|
|
16
|
+
the documented invocation could never have worked. `run` now quotes each
|
|
17
|
+
argument on the way in (`printf '%q'`), verified by re-running it.
|
|
18
|
+
- Asset updated in the same change: `.agents/skills/ymir-host/assets/thjazi.md`
|
|
19
|
+
carries the quoting rule.
|
|
20
|
+
|
|
21
|
+
### Files
|
|
22
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
## smidja · unversioned · 2026-09-16 — the roster can finally run an agent on Pi
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
`bin/agents-config.sh apply` wrote **every** agent's model into `opencode.json`'s
|
|
5
|
+
agent block, whatever harness that agent used. So an agent set to run on **Pi**
|
|
6
|
+
(native local models) would have had its Pi model id —
|
|
7
|
+
`llamacpp/qwen3.5-9b` — written into OpenCode's config, which cannot resolve it.
|
|
8
|
+
That is why the roster's two local agents were pinned to `harness: opencode` with
|
|
9
|
+
opencode-style ids: there was no working way to put an agent on Pi.
|
|
10
|
+
|
|
11
|
+
- **`apply` is now harness-aware.** Only `opencode`-harness agents are written
|
|
12
|
+
into `opencode.json`; a `pi` (or `hermes`) agent is left out, its model id going
|
|
13
|
+
to the resolve cache that `bin/agent-run.sh` reads. The providers block is
|
|
14
|
+
unchanged — a provider's endpoint is a real fact OpenCode may still want.
|
|
15
|
+
- The way this is meant to be used: declare a local agent's model as its **Pi**
|
|
16
|
+
id (`llamacpp/qwen3.5-9b`, `llamacpp-coder/qwen3-coder-30b` — the ids `pi
|
|
17
|
+
--list-models` reports) with `harness: pi`; the roster is then Pi-driven with no
|
|
18
|
+
per-machine hand-editing.
|
|
19
|
+
- `galdr-reread`: `assets/harness-integration/README.md` — the two writers of
|
|
20
|
+
`opencode.json`, and the rule that only OpenCode agents belong in it.
|
|
21
|
+
|
|
22
|
+
### Files
|
|
23
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
## smidja · unversioned · 2026-09-16 — the roster's effect lands, and the backend pin stops being committable
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
Applying the private roster (`bin/agents-config.sh apply`) writes the resolved
|
|
5
|
+
model into each agent's canonical profile. Flipping the two local agents to Pi
|
|
6
|
+
made that visible — and surfaced a small ignore hole.
|
|
7
|
+
|
|
8
|
+
- **Profiles follow the roster.** `sindri-developer.md` and `kvasir-scout.md`
|
|
9
|
+
now carry their **Pi** ids (`llamacpp-coder/qwen3-coder-30b`,
|
|
10
|
+
`llamacpp/qwen3.5-9b`), and `huginn-researcher.md` its declared model — the
|
|
11
|
+
output of `apply` against the operator's roster. These profiles are what the
|
|
12
|
+
harnesses load, so the local agents now run on Pi rather than through OpenCode.
|
|
13
|
+
- **`.agents/config/backend` is ignored.** The pinned terminal backend is
|
|
14
|
+
machine-local, but `config` is a **symlink** to `.agents/config`, so the
|
|
15
|
+
`config/*` rule never matched it and the pin was committable. The file is named
|
|
16
|
+
in `.gitignore` instead.
|
|
17
|
+
|
|
18
|
+
### Files
|
|
19
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## smidja · unversioned · 2026-09-16 — the validator stops calling a dead visualizer healthy
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
`bin/ymir-validate.sh` reported `visualizer PASS "UI built and served on :8437"`
|
|
5
|
+
by looking at `./dist` alone. When the API had crashed on a bad `CMD_DB` and
|
|
6
|
+
nothing was listening on `:8437`, the validator still said PASS — the false-pass
|
|
7
|
+
class this night kept surfacing, in the very tool meant to catch it.
|
|
8
|
+
|
|
9
|
+
- **The check now probes the port as well as the build.** `dist` missing → FAIL;
|
|
10
|
+
built but nothing on `:8437` → FAIL with the fix (`run scripts/start.sh`);
|
|
11
|
+
built and listening → PASS. A PASS now means the thing is actually up.
|
|
12
|
+
- **The smidja-db check resolves the same DB pair** `scripts/start.sh` and
|
|
13
|
+
`bin/smidja-bootstrap.sh` do (an existing `$YMIR_HOME/smidja/smidja.db` first,
|
|
14
|
+
then an in-repo copy, `SMIDJA_DB` override) — previously it named the home path
|
|
15
|
+
only, so an in-repo DB read as missing.
|
|
16
|
+
- `galdr-reread`: `assets/installation.md` — a `visualizer` PASS means built *and*
|
|
17
|
+
listening.
|
|
18
|
+
|
|
19
|
+
### Files
|
|
20
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
## smidja · unversioned · 2026-09-17 — the Fleet was a rack of terminals; now it is the roster
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
- **We were tracking the tools.** `.agents/agents/` holds **21 agent definitions** —
|
|
5
|
+
Brokk, Sindri, Bragi, Forseti, Mímir, Kvasir, Snotra, Huginn, Hnoss, Sága, Muninn,
|
|
6
|
+
Frigg, Gróa, Jörð, Sýn, Týr, Galdr… — and the Fleet served **13 panes all named
|
|
7
|
+
"OpenCode"**, role `opencode`. The board showed seats and never the smiths who might
|
|
8
|
+
be standing in them.
|
|
9
|
+
- **`bin/hlidskjalf-agents.sh` now reads the roster** (`.agents/agents/*.md`, canonical
|
|
10
|
+
per RULES/02) and joins each agent to its standing pane: figure, craft, model from
|
|
11
|
+
the definition's frontmatter, and `live{}` only when a pane answers to it. An
|
|
12
|
+
**unseated agent is still an agent** — hiding it is what made the board a rack.
|
|
13
|
+
- Harness seats that answer to no one on the roster are kept visible and named
|
|
14
|
+
honestly, never dressed as agents.
|
|
15
|
+
- Served: **34 entries — 21 agents (roster first) + 13 harness seats, 14 joined**.
|
|
16
|
+
|
|
17
|
+
### Files
|
|
18
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
## smidja · unversioned · 2026-09-17 — the plan learns the smithy's package name, and the install forwards its flags
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
Two defects the first real end-to-end npm install surfaced — which is what an
|
|
5
|
+
end-to-end test is for.
|
|
6
|
+
|
|
7
|
+
- **A surface's name is not its package's name.** The plan looked for
|
|
8
|
+
`apps/smidja` or `@zerwiz/smidja`, but npm serves the smithy as
|
|
9
|
+
`@zerwiz/smidja-factory` — so the row read `BLOCKED` on a machine where the
|
|
10
|
+
smithy was installed and standing. `app_dir`/`app_row` now take the surface
|
|
11
|
+
name and the package name separately, and the row tells the truth: installed,
|
|
12
|
+
with the visualizer's UI still to build (the tarball ships its source, never a
|
|
13
|
+
stale build).
|
|
14
|
+
- **`ymir install --plan` forwarded only `--json`.** `--phase` and `--blocked`
|
|
15
|
+
were dropped on the way through the installer's door, so `--blocked` answered
|
|
16
|
+
*unknown flag*. Every plan flag is forwarded now.
|
|
17
|
+
|
|
18
|
+
**The install this came out of:** `npm install -g @zerwiz/ymir` from the registry
|
|
19
|
+
— `@zerwiz/ymir@0.1.7`, 331 packages, and all four surfaces
|
|
20
|
+
(`hlidskjalf` · `odrerir` · `sessrumnir` · `smidja-factory`) arrived inside the
|
|
21
|
+
distro. The tarball carries no memory store — the leak is closed in the artefact
|
|
22
|
+
as well as in the repo.
|
|
23
|
+
|
|
24
|
+
### Files
|
|
25
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## smidja · unversioned · 2026-09-17 — the smithy can see the well
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
- **Why the memory looked absent in the smithy:** the visualizer proxies the bridge's
|
|
5
|
+
`/inspect`, and `/inspect` reported three fields — store, episodes, agents — while
|
|
6
|
+
the well holds six layers. A panel told only the episode count cannot show that
|
|
7
|
+
facts, entities and reflections exist. `/inspect` now reports them all:
|
|
8
|
+
episodes, facts (active/superseded), entities, edges, reflections (with the last
|
|
9
|
+
run's time) and the vector index.
|
|
10
|
+
- **Through the smithy right now:**
|
|
11
|
+
`store $YMIR_HOME/memory/kaia.engram · episodes 8 · facts 36 (35 active) ·
|
|
12
|
+
entities 60 · edges 480 · reflections 1 (2026-09-16T21:01) · vec index 8`.
|
|
13
|
+
- **A trap found while doing it:** restarting the bridge RAW (`python3 bin/mimir-bridge.py`)
|
|
14
|
+
loses the env that carries the well's path, and the bridge silently re-points at the
|
|
15
|
+
old store in the repo — 364 stale episodes and no facts. The well is the **blessed
|
|
16
|
+
starter's** to raise: `bin/mimir-bridge.sh --start`. A raw restart is a different
|
|
17
|
+
well wearing the same port.
|
|
18
|
+
|
|
19
|
+
### Files
|
|
20
|
+
- *(carried from the frozen CHANGELOG.md)*
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## smidja · unversioned · 2026-09-17 — the smithy's dependency names the package npm will actually serve
|
|
2
|
+
|
|
3
|
+
### Why
|
|
4
|
+
- **`@zerwiz/smidja` is published and not served.** npm accepted it twice (0.1.0,
|
|
5
|
+
then 0.1.1): the tarball and the version document existed, the package document
|
|
6
|
+
never did, and a republish of 0.1.0 was refused as *"previously published"*. The
|
|
7
|
+
name answers `404`, the website `403`, while `@zerwiz/hlidskjalf`,
|
|
8
|
+
`@zerwiz/odrerir` and `@zerwiz/sessrumnir` resolve normally and always have.
|
|
9
|
+
- **A second free name failed identically.** `@zerwiz/smidja-factory` was published
|
|
10
|
+
and shows the same shape — version served, package document withheld. Two names,
|
|
11
|
+
one behaviour, while packages published yesterday serve fine: the withholding is
|
|
12
|
+
npm's, not the name's, and the CLI does not report it.
|
|
13
|
+
- **The distro depends on the name that can resolve.** `optionalDependencies` now
|
|
14
|
+
names `@zerwiz/smidja-factory`, so the moment npm serves that package the smithy
|
|
15
|
+
arrives with the rest. Being optional, it is skipped silently until then — the
|
|
16
|
+
plan's phase-5 row is what says so out loud.
|
|
17
|
+
- **`@zerwiz/ymir` 0.1.7** — the version published once this lands.
|
|
18
|
+
|
|
19
|
+
### Files
|
|
20
|
+
- *(carried from the frozen CHANGELOG.md)*
|
package/package.json
CHANGED