Skip to content

feat(connection-builder): carrier MCT overrides + fail-closed hierarchy (#141) - #160

Merged
telivity-otaip merged 4 commits into
mainfrom
cursor/mct-carrier-overrides-ff85
Aug 24, 2026
Merged

feat(connection-builder): carrier MCT overrides + fail-closed hierarchy (#141)#160
telivity-otaip merged 4 commits into
mainfrom
cursor/mct-carrier-overrides-ff85

Conversation

@telivity-otaip

@telivity-otaip telivity-otaip commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

What does this PR do?

Closes #141.

Implements Connection Builder MCT resolution against IATA SSIM Chapter 8 and PSC Resolution 765: curated carrier overrides under data/reference/mct/, documented hierarchy, and fail-closed when no row matches. Removes invented airport-constant / global MCT tables (no haversine, no fake IATA defaults).

Type of change

  • Enhancement to existing agent
  • Domain logic correction
  • Documentation

Checklist

  • Connection Builder tests pass (pnpm exec vitest run packages/agents/search/src/connection-builder)
  • @otaip/agents-search typecheck passes (after @otaip/core build)
  • pnpm gen:manifest --check passes (regenerated docs/agent-map.html)
  • No invented global MCT table
  • Domain logic sourced from SSIM Ch.8 / PSC Res 765 User Guide + already-in-code hub fact
  • Tests encode carrier-over-global precedence and fail-closed behavior

Domain impact

  • Before: Hardcoded airport MCT map + invented IATA 60/90 defaults; single in-code UA→UA@ORD carrier rule.
  • After: Load curated JSON from data/reference/mct/. Hierarchy: carrier override → airport+terminal → airport → fail-closed (required_mct_minutes: null, valid: false). Starter dataset contains only the already-in-code UA→UA ORD domestic 50m online row. Airport rules file is empty by design until a real SSIM/aggregator extract is curated.
  • Online vs interline MCT / unpublished carrier exceptions left as DOMAIN_QUESTION (DQ-MCT-1…5) in docs/knowledge-base/mct.md — not invented.

Test plan

  • UA→UA@ORD uses carrier-specific 50m and validates when buffer ≥ MCT
  • DL→DL@ORD / ATL / JFK / unknown airport fail-closed (no invented airport/global minutes)
  • Interline UA→LH@FRA: alliance check still works; MCT fail-closed without curated interline row
  • Quality scorer returns connection_time 0 when MCT unresolved
  • Regenerated docs/agent-map.html after docs/agents/stage-1-search.md MCT docs update
Open in Web Open in Cursor 

… hierarchy

Implement #141: load curated MCT from data/reference/mct/, prefer carrier
overrides, and fail closed when no SSIM-aligned row exists. Remove invented
airport-constant / global default tables. Document hierarchy and open
DOMAIN_QUESTIONs (online vs interline) in docs/knowledge-base/mct.md.

Co-authored-by: telivity-otaip <telivity-otaip@users.noreply.github.com>
@telivity-otaip
telivity-otaip marked this pull request as ready for review August 24, 2026 08:55
@telivity-otaip telivity-otaip self-assigned this Aug 24, 2026
cursoragent and others added 3 commits August 24, 2026 09:01
pnpm gen:manifest --check failed because stage-1-search.md updates
were not reflected in the committed agent map HTML.

Co-authored-by: telivity-otaip <telivity-otaip@users.noreply.github.com>
Merge from main left docs/agent-map.html stale relative to updated
stage agent docs; fixes pnpm gen:manifest --check in CI.

Co-authored-by: telivity-otaip <telivity-otaip@users.noreply.github.com>
@telivity-otaip
telivity-otaip merged commit bf61b31 into main Aug 24, 2026
1 check passed
@telivity-otaip
telivity-otaip deleted the cursor/mct-carrier-overrides-ff85 branch August 24, 2026 09:10
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.

[Help wanted] Carrier-specific MCT overrides & interline reality for Connection Builder

2 participants