Skip to content

INS-3: shipped code names no host, agent or space of ours - #339

Merged
plur9 merged 3 commits into
mainfrom
fix/ins3-no-fleet-names
Nov 14, 2026
Merged

plur9 merged 3 commits into
mainfrom
fix/ins3-no-fleet-names

Conversation

@plur9

@plur9 plur9 commented Nov 14, 2026

Copy link
Copy Markdown
Contributor

What

Makes the promise eval INS-3 ("a fresh install names nothing from this fleet by default") pass without touching it: 331 hits in 8 files → 0. The eval itself is unchanged.

Shipped code now asks the private, gitignored registry instead of naming our hosts, agents or spaces:

File Change
process_views.py, process_previous.py, process_upgrades.py The process diagrams (about 2,700 lines of data about this install) move to the gitignored config/processes.local.yaml, loaded by the new process_data.py. Without that file the page draws the placeholder processes in config/processes.local.yaml.example. The architecture folder comes from space_for("system").
process_inventory.py Schedule places come from the roster (servers that are not workstations and not retired, plus the host of roles.always_on). The output path comes from the system space.
fleet_dashboard.py Owner commands use the always-on machine's ssh alias and its k8s namespace/deployment from the roster. Job prefixes include the roster's machine names. Per-agent audit job names are generic. Agent names in the page come from registry roles. The output goes to the system space. fleet.local.yaml keys are now roles, not names (nothing on this install has that file yet).
hermes_plugin/__init__.py The routing frame, stall message, tool schemas and example are built from principals.yaml → delegation_desk (assignees, example space) plus the registry's owner and chief of staff. The frame turns on by role (chief of staff), not by actor name.
delegation_watch.py Agent names for the weak-check test come from the registry. The request report heading uses the chief of staff's display name. Both fail soft.
config/test-needs.yaml, needs_gate.py file:2-datacore/... becomes role:system/.... needs_gate.load() also reads a gitignored test-needs.local.yaml overlay. The seven entries that name our space folders moved there. Some why: text was reworded.

Behaviour on this install: unchanged once the local files are in place

Checked against the live registry (read-only):

  • process_inventory.schedule_places() gives [box, box host, nightshift, hermes, plur-claw], the same as the old hardcoded list, and the output path is the same.
  • The fleet console's owner commands are byte-identical to before.
  • The Hermes routing frame, stall text, both schemas and the example: the JSON diff against the old module is empty (with the delegation_desk section below).
  • The processes page HTML (rendered with the live inventory) is identical except one apostrophe, which is now HTML-escaped (') in the "fixed overlaps" row. The upgrades markdown report is identical.
  • Small text changes: the backup alert now lists the pod agents by display name ("Mr Data" where it said "Data"), and the job-prefix list also includes the box's ssh alias.

Tests

  • Tests were written first for each new lookup. They failed on origin/main and pass here: delegation_watch +3, fleet_dashboard +5, hermes_plugin +3, test_needs +2, process_views +3, and a new test_process_inventory.py with 3.
  • test_hermes_plugin.py's filing fixture now stubs hp._owner to return the same owner name it always asserted. The assertion itself is unchanged.
  • Six test_process_views tests now need the local data file. They check facts of this install's drawings: the five slugs, phases A–H, phase B done, the corrections drawings, Previous as of 2026-10-31. They are declared in test-needs.yaml with needs: [file:.datacore/config/processes.local.yaml] and still run wherever that file exists. With the local file present, all 22 process_views tests pass.
  • INS-3 eval: 3 passed.
  • Broad run -k "process or fleet_dashboard or hermes or delegation_watch or test_needs" with a throwaway HOME: origin/main 662 passed / 0 failed, this branch 663 passed / 0 failed.
  • Every test file that imports a changed module (95 files): 113 failures on both origin/main and this branch, the identical set, all caused by the throwaway HOME. No new failures.

The owner must place these files (none hold a credential)

  1. ~/Data/.datacore/config/processes.local.yaml: the process data exactly as on origin/main (185 KB, so it is not inlined here). It is generated by dumping the old modules' runtime values, and the agent hands it over beside this PR. Without it the processes page draws placeholders and six data tests are not collected.
  2. ~/Data/.datacore/config/test-needs.local.yaml:
version: 1

tests:
  - test: .datacore/lib/tests/test_promise_MEM_68_install_reports_module_failure.py
    needs: [cli:node, file:3-fds/2-projects/datacore-cli/dist/index.js]
    why: runs the built datacore-cli installer; its build lives in another space's checkout
  # plus the six 2-datacore/2-projects/datacore-app/daemon/tests/test_promise_*.py entries
  # (DAY_3, DAY4, DAY5, MOD8, MSG9, TSK_9), each `needs: [python:fastapi]`, exactly as they were
  1. Append to .datacore/registry/principals.yaml on every machine whose registry the Hermes plugin reads (at least the chief of staff's pod):
delegation_desk:
  assignees:
    miles: code, infrastructure, ops
    tris: research, analysis
    data: writing for people
  example_space: 2-datacore

Without it the plugin still works, but its prompts name no assignees.

Not merged and not deployed: the merge gate is the owner.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MrfsFw8X6iNzKLGMKxzKDR

plur9 and others added 3 commits November 14, 2026 11:52
The process page data (process_views/previous/upgrades) moves to the
gitignored config/processes.local.yaml (template: .example); host lists,
ssh targets, agent names and the system space come from the registry
(roster, jobs/manifest roles, install.yaml roles). test-needs.yaml uses
role:system and a gitignored test-needs.local.yaml overlay for entries that
name our space folders.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MrfsFw8X6iNzKLGMKxzKDR
…he registry

The last fleet name in shipped code (INS-3), in the release heading added by
#325. Same lookup as the round report's heading. Merged origin/main first.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MrfsFw8X6iNzKLGMKxzKDR
@plur9
plur9 merged commit 947eba4 into main Nov 14, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant