Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions config/notion-project-map.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
{
"operator-os-explainer": {
"localProjectId": "39dc21f1-caf0-8142-8718-e1454dea1198"
},
"claude-code-harness": {
"localProjectId": "362c21f1-caf0-81bd-8c6e-dd3acaebc34b"
},
"Notion Operating System": {
"localProjectId": "332c21f1-caf0-81c5-85fb-d7451163ab6b"
},
Expand Down
10 changes: 9 additions & 1 deletion config/project-registry-overrides.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"jcc": "JobCommandCenter",
"jsm_export": "JSMTicketAnalyticsExport",
"bhv": "BrowserHistoryVisualizer",
"claude-harness-modernization": "supp:claude-code-harness",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Sync the seam-linter with the new harness alias

When bridge/session/notification identity events emit claude-harness-modernization, this new registry override resolves in project-registry, but operator-os-seam-linter --identity-resolution still won't see it: the inspected linter builds its resolver from IDENTITY_ALIAS_MAP and DEFAULT_SUPPLEMENTARY in src/operator_os_seam_linter.py, not from this config, and DEFAULT_SUPPLEMENTARY was not updated. Please either update the linter/default alias source or make the linter consume the same configured mapping so the regression gate covers this shipped harness alias.

Useful? React with 👍 / 👎.

"netmapper": "NetworkMapper",
"notion_os": "Notion",
"mcpaudit-web": "MCPAudit",
Expand All @@ -13,6 +14,14 @@
"interruptionresume": "Interruption Resume Studio"
},
"supplementary": [
{
"canonical_key": "supp:claude-code-harness",
"display_name": "claude-code-harness",
"repo_full_name": null,
"group_key": "operator_infra",
"lifecycle_state": "manual-only",
"note": "Machine-wide Claude Code harness operating surface under /Users/d/.claude; tracked as shipped/monitor-only, not a standalone repo."
},
{
"canonical_key": "supp:personal-ops",
"display_name": "personal-ops",
Expand Down Expand Up @@ -60,7 +69,6 @@
},
"notion_projection_only_rows": {
"app": "local runtime/app shell placeholder; not a portfolio-truth repo",
"claude-code-harness": "local agent harness projection; outside repo-root truth",
"RAG Knowledge Base": "notion planning row; not a portfolio-truth repo",
"Sandbox Local Portfolio Project": "actuation sandbox fixture row",
"SecondBrain": "knowledge vault under /Users/d/Documents; not a /Users/d/Projects repo"
Expand Down
27 changes: 27 additions & 0 deletions tests/test_project_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,33 @@ def test_resolve_hard_normalization_failures_via_override():
assert resolve("bhv", index)["canonical_key"] == "BrowserHistoryVisualizer"


def test_configured_shipped_mappings_cover_operator_os_and_claude_harness():
snapshot = _snapshot(
_ident(
"operator-os-explainer",
"operator-os-explainer",
"saagpatel/operator-os-explainer",
)
)
registry = build_project_registry(
snapshot,
notion_project_map_path=Path("config/notion-project-map.json"),
overrides_config_path=Path("config/project-registry-overrides.json"),
)
index = build_index(registry)
by_key = {entry["canonical_key"]: entry for entry in registry["entries"]}

assert resolve("claude-harness-modernization", index)["canonical_key"] == (
"supp:claude-code-harness"
)
assert by_key["supp:claude-code-harness"]["notion_local_page_id"] == (
"362c21f1-caf0-81bd-8c6e-dd3acaebc34b"
)
assert by_key["operator-os-explainer"]["notion_local_page_id"] == (
"39dc21f1-caf0-8142-8718-e1454dea1198"
)


def test_resolve_collision_guard_screenshotselect():
registry = build_project_registry(SNAPSHOT, overrides_config_path=None)
index = build_index(registry)
Expand Down