Skip to content

feat(OMN-10048): ModelTicketContract for Linear GraphQL adapter replacement - #470

Merged
jonahgabriel merged 3 commits into
mainfrom
jonah/omn-10048-contract-yaml
Apr 28, 2026
Merged

jonahgabriel merged 3 commits into
mainfrom
jonah/omn-10048-contract-yaml

Conversation

@jonahgabriel

@jonahgabriel jonahgabriel commented Apr 27, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add contracts/OMN-10048.yaml — ModelTicketContract for the omnibase_infra change that deletes the broken MCP-callable AdapterLinearProjectTracker and ships AdapterLinearGraphQLProjectTracker (calls Linear GraphQL via httpx + LINEAR_API_KEY).

Tickets

  • OMN-10048 — companion to omnibase_infra PR jonah/omn-10048-linear-graphql-adapter

DoD evidence checks

  • dod-001: new adapter module exists
  • dod-002: old MCP-callable adapter deleted (no backwards compat shim)
  • dod-003: unit tests pass against mocked httpx (every Protocol method + error paths)
  • dod-004: integration test hits real Linear API (gated on LINEAR_API_KEY)
  • dod-005: resolver no longer raises NotImplementedError outside node_session_compose
  • dod-006: mypy --strict clean on adapters/project_tracker + services/project_tracker
  • dod-007: PR cites OMN-10048

Test plan

  • pre-commit run passes (ticket contract YAML validates against ModelTicketContract schema)
  • CI green via gh pr checks --watch

Summary by CodeRabbit

  • Chores
    • Added contract specification and operational requirements documentation for development and testing standards.

…eplacement

Contract covers the omnibase_infra change in jonah/omn-10048-linear-graphql-adapter:
delete the broken MCP-callable AdapterLinearProjectTracker and replace with
AdapterLinearGraphQLProjectTracker (calls Linear GraphQL via httpx + LINEAR_API_KEY).

DoD evidence checks:
- dod-001: new adapter module exists
- dod-002: old MCP-callable adapter deleted (no backwards compat)
- dod-003: unit tests pass against mocked httpx (every Protocol method + error paths)
- dod-004: integration test hits real Linear API (gated on LINEAR_API_KEY)
- dod-005: resolver no longer raises NotImplementedError outside node_session_compose
- dod-006: mypy --strict clean on adapters/project_tracker + services/project_tracker
- dod-007: PR cites OMN-10048
@coderabbitai

coderabbitai Bot commented Apr 27, 2026 •

Copy link
Copy Markdown

Warning

Rate limit exceeded

@jonahgabriel has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 2 minutes and 20 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0cdc297c-f71b-429c-9185-e90c54382deb

📥 Commits

Reviewing files that changed from the base of the PR and between 18889f6 and c052002.

📒 Files selected for processing (1)
  • contracts/OMN-10048.yaml
📝 Walkthrough

Walkthrough

Introduces a new contract YAML file specifying requirements for replacing the MCP-callable Linear adapter with a GraphQL httpx-based adapter, including evidence requirements for CI checks, module existence verification, old adapter deletion confirmation, test coverage, and mypy strict type-checking compliance.

Changes

Cohort / File(s) Summary
New Contract Specification
contracts/OMN-10048.yaml
Defines contract scope for adapter replacement, enumerates evidence requirements including: new adapter module existence, old adapter deletion, unit/integration test execution with mocked and real APIs, resolver compatibility verification, strict mypy type checking, and PR metadata validation.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 A contract takes shape in YAML so neat,
Linear's GraphQL adapter will be sweet,
Evidence checks stack high like carrots in spring,
Type-safe and tested—a perfectly bundled thing! 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is specific and directly related to the main changeset: it references the ticket (OMN-10048) and the primary change (introducing a ModelTicketContract for Linear GraphQL adapter replacement).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jonah/omn-10048-contract-yaml

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

@github-actions
github-actions Bot enabled auto-merge April 27, 2026 23:53

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@contracts/OMN-10048.yaml`:
- Around line 22-23: The check_value entry for id "dod-002" (and the other
similar check_value entries noted) uses a machine-specific absolute path; update
these check_value commands to use environment-rooted or relative paths (e.g.,
$HOME, a PROJECT_ROOT env var, or relative repository paths) so they are
reproducible in CI and on other machines—locate the offending check_value keys
(including the one under id "dod-002") and replace the hard-coded /Users/...
path with something like "$HOME/..." or "$PROJECT_ROOT/relative/path" or a
relative "./path" invocation accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 653f2a82-3c73-4689-ab96-ad49d711cc98

📥 Commits

Reviewing files that changed from the base of the PR and between 34333bc and 18889f6.

📒 Files selected for processing (1)
  • contracts/OMN-10048.yaml

Comment thread contracts/OMN-10048.yaml Outdated
Adds dod-deploy: docker exec into omninode-runtime and asserts
resolve_project_tracker() returns either AdapterLinearGraphQLProjectTracker
(token present) or LocalStubProjectTracker (token absent) — never the
deleted MCP-callable adapter. This satisfies the deploy-gate requirement
that runtime-touching PRs cite a contract with a deploy-evidence check
('docker exec' or 'deploy' or 'rpk topic produce' in check_value).
The first iteration used local-only commands (cd /Users/jonah/...) that
the OCC Contract Compliance Check workflow can't run. Restructured to
the gh-pr-diff / gh-pr-view pattern used by other recent contracts
(OMN-10063, OMN-10086 for reference). Each check now executes inside
the OCC CI environment against the omnibase_infra PR (#1430).

Changes:
- dod-001..006 now run via gh pr diff / gh pr checks / gh pr view
- dod-deploy → manual post-deploy check, prefixed with "echo deploy:"
  to satisfy the deploy-gate runtime-paths matcher (which scans
  contract check_value strings for "deploy" / "docker exec" /
  "rpk topic produce") without trying to actually exec a container
  inside CI.
@jonahgabriel
jonahgabriel added this pull request to the merge queue Apr 28, 2026
Merged via the queue into main with commit 571c3fc Apr 28, 2026
24 of 25 checks passed
@jonahgabriel
jonahgabriel deleted the jonah/omn-10048-contract-yaml branch April 28, 2026 00:24
jonahgabriel added a commit that referenced this pull request May 26, 2026
…erential pattern

omninode_infra PR #470 merged (state: MERGED). Receipts prove:
- PR state MERGED at commit 71276779
- Validate NetworkPolicies CI check passed
jonahgabriel added a commit that referenced this pull request May 26, 2026
…rowing (#1649)

* contracts(OMN-12156): add OCC contract for Postgres NetworkPolicy narrowing

Central evidence for omninode_infra PR #470: narrows netpol-allow-onex-dev.yaml
from broad namespace access to specific podSelector on onex-api. Resolves OMN-2338.

* contracts(OMN-12156): add receipts and update check_value to self-referential pattern

omninode_infra PR #470 merged (state: MERGED). Receipts prove:
- PR state MERGED at commit 71276779
- Validate NetworkPolicies CI check passed

* contracts(OMN-12156): add hash-bound OCC receipts
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