Skip to content

fix(tools): correct support and account contracts and descriptions - #330

Merged
dmitrijs-pavlovs-dev merged 5 commits into
mainfrom
fix/support-account-contracts
Oct 6, 2026
Merged

dmitrijs-pavlovs-dev merged 5 commits into
mainfrom
fix/support-account-contracts

Conversation

@dmitrijs-pavlovs-dev

@dmitrijs-pavlovs-dev dmitrijs-pavlovs-dev commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Ticket lists ignored pageSize, and creation required a timestamp the API ignores. This PR sends integer sizes 1–100 as maxResults (default 40), makes created optional and strips it from requests, and accepts the two missing support platform IDs.

Descriptions now explain support catalogs and product displayName routing, page-local ticket/asset matching, asset filters and lookup limits, users/invite restrictions, and spend commitments. The search prompt retains pageSize=100 on every subsequent cursor call and its five-page bound.

Base refresh validation

Integrated main at e5845c4 in 59cb5ae, preserving the PR changes with no unresolved file conflicts. The combined branch passed 1,224 root tests, 288 integration tests, check:dev, check:ci, build, and whitespace checks.

The live comparison below records the earlier dbf4862 feature code. Current main also adds sanitized API-error propagation and 401 MCP authentication metadata; the generic-error limitation in that historical comparison no longer describes the refreshed branch. This base update used deterministic validation and made no remote writes.

Real development validation

Compared baseline 15b6b1c with feature code dbf4862 in separately installed and built disposable directories. Actual built stdio MCP servers used https://api-dev.doit.com, the repository credential helper's DEV personas, and equivalent inputs. 142 tools/call requests yielded 131 real API GET requests; no remote writes. API responses and MCP results were checked separately.

Case Before After / classification
Ticket sizes 1 / 3 / 100 API and MCP return 40; incorrect query key. Exactly 1 / 3 / 100; correct maxResults. Reproduced and fixed live.
Sizes 0 / 101 / 1.5 Silently returns 40. MCP validation error before HTTP. Default remains 40; next pages retain sizes 1 and 100 with disjoint IDs.
Asset / commitment bracketed filters Empty results despite matching dev data. Corrected unbracketed guidance returns matching assets and three AWS commitments. Both builds behave identically for equivalent inputs: documentation correction.
Page-local matches / asset lookup Existing behavior. Positive/empty matches preserve exact API cursor and rowCount; ID precedence, ambiguity and missing-name errors pass. Regression coverage.
Catalogs / users / commitments Existing behavior. Same catalogs and role resolution; positive AWS alias, detail and pagination checks pass. Compatibility coverage.
API failures 400 / 401 / 403 / 404. Both builds return generic MCP errors; API detail/status and 401 auth challenge remain limited by the shared HTTP helper.
Timestamp / added platform IDs / product displayName Missing created and new IDs fail locally. Built MCP dry runs accept them, strip created, and forward displayName. Not live creation: every POST was blocked before network.

Cleanup completed: zero resources created, remaining IDs none. MCP processes, encrypted credential caches and isolated build directories were cleaned up; absence independently verified.

Coverage gaps: successful writes/product routing, invite default/domain/duplicate behavior, pending invitations, organization sharing, hosted OAuth and switched-customer authorization remain unverified or deterministic-only. Positive Google Cloud/Azure commitments and asset lookup beyond 249 entries were unavailable. The 100-ticket dev page had no missing requesters, so the known upstream related-user truncation defect was not reproduced; API batching remains a separate dependency.

Both isolated builds passed. Feature code passed 1,148 root tests, 266 integration tests and all 106 existing schema-parity tests. The evidence update passed check:dev, check:ci and diff checks. Fixtures are not counted as live validation.

CI on current head 59cb5ae: all required checks and all five reported checks passed. PR is mergeable; watcher removed after green.

Comment thread src/tools/tickets.ts Outdated
Comment thread src/tools/tickets.ts
Comment thread src/tools/tickets.ts
@dmitrijs-pavlovs-dev
dmitrijs-pavlovs-dev merged commit 1bcb22a into main Oct 6, 2026
5 checks passed
@dmitrijs-pavlovs-dev
dmitrijs-pavlovs-dev deleted the fix/support-account-contracts branch October 6, 2026 11:28
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.

2 participants