Skip to content

fix: keep tied organization names unbound - #174

Merged
seonghobae merged 1 commit into
feat/role-responsibility-agent-ontologyfrom
cursor/bc-bf850a33-d419-42dd-b473-cc01c824e69b-a4f0
Aug 17, 2026
Merged

fix: keep tied organization names unbound#174
seonghobae merged 1 commit into
feat/role-responsibility-agent-ontologyfrom
cursor/bc-bf850a33-d419-42dd-b473-cc01c824e69b-a4f0

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Buyer impact

A top-score tie between distinct organization catalog ids is now an explicit tie, not a generic None that can be mistaken for an unseen name. Tied names remain text and cannot enter the AUTO- catalog-creation path.

This also closes the Keyman residual: the raw affiliation name is scored before verified abbreviation rewriting. A live rewrite therefore cannot convert an existing tie into an apparent miss and manufacture a third same-named row.

Exact scope

  • classify organization resolution as unique, miss, or tie;
  • reuse only a unique winner;
  • allow only a genuine miss into ADR 0010 inference and corroborated creation;
  • repeat the tie gate after the advisory creation lock and candidate reload;
  • keep a raw Keyman tie unbound before name resolution;
  • document the contract in ADR 0026 and AGENTS.md;
  • add branch-complete synthetic regression tests.

No leftover-pair work, RankWeave work, naruon integration, or TEPP slice is included. No release/version files are rewound or advanced by this stacked fix.

Rebase

Rebased as one commit onto the then-current feat/role-responsibility-agent-ontology head:

  • base: 92b60dd1feb5ed787b04af2139b35a75b42ddd11
  • head: 3e8a7bcb7665c52381b9557f198f588fb7acabbf

This PR targets #74's branch only. #74 remains open and must not be merged to main as part of this operation.

Verification contract

  • two distinct same-named catalog ids produce tie and no catalog id;
  • duplicate snapshot rows for one catalog id remain a unique match;
  • live inference and verification are not called for an initial tie;
  • a tie discovered after the creation-lock reload does not insert;
  • Keyman raw ties bypass abbreviation rewriting and hierarchy creation;
  • genuine misses and unique matches retain their existing paths.

The head push is allowed to trigger normal checks. No workflow was force-cancelled or manually rerun.

@cursor

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 583d98dd-37fe-4b19-a584-cbbd752a9dab

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae seonghobae changed the title fix: do not create a catalog row on a tied organization name (v0.86.5) fix: do not create a catalog row on a tied organization name (v0.87.1) Aug 16, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Verdict

SOUND for the ADR 0021 miss / tie / unique split. Prefer this over #159. Do not merge #159. Do not merge this onto main. Do not fold it into #151, #153, or #179.

score_corporate_entity classifies the three outcomes. get_or_create_corporate_entity returns before inference on a tie, and the lock-reload path also refuses AUTO-. Persist and Keyman share that function. Entity-relationship counterparties still resolve only.

Buyer check

  1. Open a post whose R&R names Tied Energy while two catalog rows share that display name, including after connecting a live orchestrator. The name is text, not a button. No AUTO- row appears.
  2. Make one of those catalog names unique, persist the summary again, then click. The walk uses that catalog id.
  3. A unique exact match among other same-named neighbors still walks.

Residuals (not blocking the gate)

  • CLAUDE.md has the 0021 seed; AGENTS.md on this head does not. Agents that only read AGENTS.md will miss “tie is not a miss.”
  • Version 0.87.1 is also claimed by other open slices (period-report #175, write-clock successors). First merge wins the number; later slices must bump.
  • Person-catalog #179 currently titles a different decision “ADR 0021.” This PR owns 0021 as tied organization similarity. #179 must retarget off main and take the next free number after this lands.
  • No Keyman live-inference tie test (Keyman persist tests monkeypatch get_or_create). No Tied Energy UI next-action: the popup shows text and does not say what to do next.
  • CodeRabbit skipped because the base is not the default branch. CLI agent auth is not available in this run.

CI was still queued at review time. Treat a red Full test suite or Frontend job as a fix, not a wait.

Author of this PR is the GitHub MCP login; this run cannot self-approve.

Open in Web View Automation 

Sent by Cursor Automation: Fix Issues

Comment thread CLAUDE.md Outdated
Comment thread CHANGELOG.md Outdated
Comment thread backend/app/corporate_entity_ingestion.py
@seonghobae

Copy link
Copy Markdown
Contributor Author

Merge loop: exact remaining blocker is a merge conflict with base feat/role-responsibility-agent-ontology (update-branch 422: merge conflict between base and head). Head f831cbea0d71769e1f31c58caf9a3d5c189ac70c is dirty; no rebase from this loop. Needs source conflict resolution.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Merge loop: still dirty vs base feat/role-responsibility-agent-ontology @ 69c035bb. Cannot resolve without a cloud agent (on-demand usage disabled). Leave open.

Conflicting / colliding files to resolve on rebase:

  • CHANGELOG.md — base already has ## [0.88.0]; this PR inserts 0.87.1 and 0.86.4 at the same header.
  • docs/adr/0021-tied-organization-similarity.md — ADR number collision: base already has docs/adr/0021-authorized-analysis-run-start.md.
  • docs/adr/0010-corporate-hierarchy-auto-creation.md and docs/adr/0019-role-catalog-identity.md — both edited here and live on the moved base.
  • Version bumps (pyproject.toml, lineageweave/__init__.py, frontend/package.json) and ARCHITECTURE.md / CLAUDE.md likely need replay onto 0.88.0.

No rebase from this loop.

@seonghobae
seonghobae force-pushed the cursor/bc-bf850a33-d419-42dd-b473-cc01c824e69b-a4f0 branch from f831cbe to fcf9175 Compare August 17, 2026 11:16
@seonghobae seonghobae changed the title fix: do not create a catalog row on a tied organization name (v0.87.1) fix: keep tied organization names unbound Aug 17, 2026
Classify organization similarity outcomes as unique, miss, or tie. Ties
stay unbound before name rewriting and after the creation-lock reload, so
live resolution and inference cannot insert a third AUTO catalog row.
@seonghobae
seonghobae force-pushed the cursor/bc-bf850a33-d419-42dd-b473-cc01c824e69b-a4f0 branch from fcf9175 to 3e8a7bc Compare August 17, 2026 11:21
@seonghobae
seonghobae merged commit 42ccd73 into feat/role-responsibility-agent-ontology Aug 17, 2026
3 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