fix(integrations): final review pass for the Atlassian and AWS sweeps
Merged
WA
2d ago+917+917+012345678901234567890123456789-376-376-012345678901234567890123456789
Summary
Final-review follow-up for the Atlassian (#9950) and AWS (#9952) validation sweeps. An independent review of both merged diffs found no blockers. This PR applies the should-fix and nit findings. Everything changed here was added by those two PRs and isn't on main yet, so production behaviour is unaffected.
Atlassian
- Jira search: the heavy per-issue fields #9950 added (
descriptionAdf,customFields,attachments,issuelinks,subtasks) are now opt-in throughfields, so default searches don't carry everycustomfield_*into agent prompts.renderedDescriptionneeds therenderedFieldsexpansion. Every field that exists onmainkeeps its exact value. - Moved
transformIssueDataintotools/jira/utils.tswith a typed raw payload (noany), shared by retrieve and search. - JSM Assets AQL: a trailing
order byis split only at parenthesis depth 0 (still honouring quotes and escapes), and a leadingorder bywith a scope filter produces valid AQL. - JSM object types: if the
/flatfallback itself fails, the result is the original empty list, so the fallback can't add a new failure mode. Aborts still propagate. - Confluence search and search-in-space send
next=truewith a cursor, as Confluence's own_links.nextdoes. - Agent-call hardening:
- Trello update accepts label/member IDs as an array or a comma-separated string.
- A blank Jira
parentis treated as unset. - A numeric Confluence
parentCommentIdno longer throws.
- JSM types include
renderedValue.
AWS
- New
toBooleanFromInputin@sim/utils/coercereplaces the two local copies in Secrets Manager and CloudFormation. The duplicates ingoogle_docs/blocks/utilsbelong to the Workspace sweep and migrate separately. - The IAM tags schema moves into
iam-shared, and the SES message-tag schema intoses-shared. - SES send tools accept
emailTagsas a JSON string from agent calls. - Secrets Manager names the field on invalid JSON.
- IAM accepts JSON-array tag strings and skips null tag values.
- Textract rejects a JSON-object query string instead of sending it as question text, and the size error no longer suggests Multi-Page mode for operations that lack it.
Type of Change
- Bug fix
- Code quality
Testing
- New regression tests, each red on the pre-fix code:
- JSM: AQL splitting and the flat fallback.
- Trello: ID list input.
- Jira: search heavy fields and blank parent.
- Confluence: numeric comment id and
next=truepaging.
- The
transformIssueDatamove was checked for output equivalence on sample payloads. vitestacross the Atlassian and AWS tools, internal ops, block tests,tools/google_docsandpackages/utils: 443 + 120 passed.check-block-registry.ts origin/staging,check:tool-metadata,check:docs,check:integration-catalog,check:unused-exports,check:utils,check:test-patternsand biome pass. Type-check and the remaining audits run in CI.
Checklist
- Code follows project style guidelines
- Self-reviewed my changes
- Tests added/updated and passing (new tests pass the
test-auditauthoring gate) - No new warnings introduced
- I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)