Skip to content

fix(collaboration): contain awareness host failures - #403

Draft
seonghobae wants to merge 10 commits into
fix/office-python-event-matrix-contractfrom
codex/awareness-host-containment-370
Draft

fix(collaboration): contain awareness host failures#403
seonghobae wants to merge 10 commits into
fix/office-python-event-matrix-contractfrom
codex/awareness-host-containment-370

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Closes #370

Scope

  • normalize hostile provider awareness capability failures to stable Inkspan-owned errors
  • return zero when host collaborator-count access fails
  • contain listener registration/removal failures and continue teardown across failed removals
  • deactivate wrappers before rejected registration, removal, or disposal can leave host-callable listeners behind
  • align the canonical collaboration contracts without moving provider lifecycle authority into Inkspan

Dependency boundary

This Draft is stacked on #405 / exact base 378e03078a90f18c48317673344e4f1adb11ec8f, which repairs the Office Python event-matrix test contract already required by protected main. The collaboration delta from that base changes only its two canonical contract documents and awareness source/tests.

Exact-head local evidence

For exact stacked head 66a9caa7cb6a9aa5e399ce5ca76d987737aa7c45:

  • focused awareness suite: 5 files / 38 tests passed
  • pnpm test: 160 files / 890 tests passed
  • pnpm run coverage: 100% statements, branches, functions, and lines
  • pnpm run typecheck: passed
  • pnpm run build: passed
  • pnpm run verify:package: passed

This replaces closed Draft #167 with an issue-specific current-main lineage. Current queued workflows, local results, and predecessor evidence do not transfer approval or protected-main authority. Keep Draft until #405 integrates or the dependency is otherwise resolved, and while #118 owns the protected release boundary.

Signed-off-by: Seongho Bae <me@seonghobae.me>
@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

Copy link
Copy Markdown
Contributor Author

Exact-head CI contract synchronization completed without force push.

Exact head: 7248b87c1aa2a4965a0a1318a377e600d1202d38
Protected main base: a40b9489665bed7d95af619a6079b9c51cab299a

Local exact-head evidence:

  • awareness failure-containment tests: 5 files / 36 tests passed
  • root suite: 160 files / 888 tests passed; statements, branches, functions, and lines 100%
  • Office suite: 173 tests passed; total coverage 100%
  • TypeScript typecheck passed
  • production build and packed ESM/CommonJS/strict-TypeScript consumer verification passed
  • git diff --check passed

The implementation keeps provider transport and lifecycle authority host-owned while normalizing the documented capability/listener/count/teardown failure surfaces.

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
@seonghobae

seonghobae commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Exact-head registration rollback repair completed without force push.

Exact head: f6c39ed0f29e76be5ec0a42a601ec2771b46bdce
Protected main base: a40b9489665bed7d95af619a6079b9c51cab299a

A provider can register an awareness listener and then throw. The previous adapter lost the wrapper in that path, so later provider events could still invoke a failed listener. The adapter now deactivates the wrapper and attempts immediate removal; even a second host failure cannot reactivate or expose the callback.

Evidence:

  • RED: the new post-registration failure test invoked the supposedly rejected listener once
  • RED: failed rollback also left the rejected listener callable
  • GREEN: awareness containment suite — 5 files / 38 tests
  • full TypeScript suite — 160 files / 890 tests; statements, branches, functions, and lines 100%
  • Office suite — 173 tests; total coverage 100%
  • typecheck, production builds, packed consumer verification, and git diff --check passed

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

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.

fix(reliability): contain collaboration awareness host failures

1 participant