Skip to content

chore: sync seven upstream main commits - #24

Merged
DDePuy2015 merged 8 commits into
mainfrom
deploy/itglue/20260824-upstream-sync
Aug 24, 2026
Merged

chore: sync seven upstream main commits#24
DDePuy2015 merged 8 commits into
mainfrom
deploy/itglue/20260824-upstream-sync

Conversation

@DDePuy2015

Copy link
Copy Markdown
Owner

Summary\n- Integrate upstream main commits WYRE-AI#83, WYRE-AI#84, WYRE-AI#87, WYRE-AI#81, WYRE-AI#89, WYRE-AI#91, and WYRE-AI#93.\n- Preserve Summit-specific explicit reusable-workflow secret mappings and the newer checkout pin while taking upstream workflow/action pins.\n- Adopt the upstream MCPB release workflow and TypeScript-major Dependabot hold.\n\n## Validation\n- npm ci --ignore-scripts\n- typecheck, lint, 281 tests, application build, and UI build\n- production dependency audit: 0 vulnerabilities\n- full development-tree audit retains existing toolchain findings\n\nNo Azure image was built or deployed by this PR. The two open Dependabot PRs will be reevaluated after this merge.

asachs01 and others added 8 commits August 12, 2026 20:25
…YRE-AI#83)

Ports conduit gateway#377's confused-deputy fix to this vendor sidecar
(fleet-wide rollout, mechanical wave — pattern already live-validated
on xero-mcp#54/mimecast-mcp#55/liongard-mcp#60). Near-verbatim port of
conduit src/proxy/s2s.ts verifyS2sHeader.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Bumps the production-minor-patch group with 1 update in the / directory: [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk).


Updates `@modelcontextprotocol/sdk` from 1.29.0 to 1.30.0
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](modelcontextprotocol/typescript-sdk@v1.29.0...1.30.0)

---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
  dependency-version: 1.30.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: production-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…YRE-AI#87)

Stop Dependabot from proposing typescript MAJOR-version bumps until the
fleet's toolchain (tsup/rollup-plugin-dts DTS emit, typescript-eslint peer
range) supports TS7. Prevents Dependabot from re-proposing and re-merging
the same breaking major bump after a prior manual revert.
…ates (WYRE-AI#81)

Bumps the github-actions group with 3 updates in the / directory: [actions/setup-node](https://github.com/actions/setup-node), [docker/login-action](https://github.com/docker/login-action) and [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action).


Updates `actions/setup-node` from 6 to 7
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v6...v7)

Updates `docker/login-action` from 4.4.0 to 4.6.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@af1e73f...dbcb813)

Updates `anthropics/claude-code-action` from 1.0.171 to 1.0.190
- [Release notes](https://github.com/anthropics/claude-code-action/releases)
- [Commits](anthropics/claude-code-action@e90deca...5ef2e55)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
- dependency-name: anthropics/claude-code-action
  dependency-version: 1.0.183
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: docker/login-action
  dependency-version: 4.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(ci): adopt upstream mcpb job, drop the local stopgap

Bumps the mcp-server-release.yml pin to 8deff29, which carries the
`mcpb` job upstreamed in wyre-technology/.github#43, and removes this
repo's local stopgap job — exactly what its own comment asked for:

  Restore it here until the step is upstreamed into
  mcp-server-release.yml.

The upstream job is a strict superset: same checkout-tag / stamp-version
/ pack / upload sequence, plus an `npm ci` (this repo's stopgap relied
on pack:mcpb bootstrapping its own deps), GitHub Packages auth for
@wyre-technology/* deps, and a glob upload that does not assume the
bundle filename. It needs only `release`, never `docker`, so a pack
failure cannot cascade into skipping deploy.

Leaving both in place would have run the pack twice and uploaded the
same asset twice with --clobber — harmless but wasteful and confusing.

Pin range diffed before bumping (d28a612..8deff29): 4 commits, netting
the mcpb job plus #40's provenance/digest-verify hardening. That exact
combination has run green end-to-end three times on autotask-mcp
(v2.32.7-.9).

* fix(ci): re-pin to 8bfc9b3 — MCPB CLI install + verify job

8deff29's mcpb job omitted the MCPB CLI install, so `npx mcpb pack`
404'd on the 24 repos that do not carry @anthropic-ai/mcpb as a
dependency (caught live on atera-mcp). Fixed in
wyre-technology/.github#53.

Pin range 8deff29..8bfc9b3 also includes WYRE-AI#47, which adds an
unconditional build/lint/test `verify` job and makes `release`
need it. That is a behaviour change: a repo failing build, lint or
test can no longer publish a release. Because `verify` is
unconditional it also runs on this PR, so this PR's own checks now
show whether this repo passes.
… main (WYRE-AI#93)

Was pinned to d28a612a/a61021de (scaffold-era, never updated). Current
main has ~30 commits since, including real fixes: mcpb-pack asset
upload, add-to-project Dependabot hard-fail fix, digest-verify fixes,
an unconditional build/lint/test verify job, and the mcpb-CLI-install
fix. This repo was held out of dependabot-janitor's scope (EXCLUDE_REPOS,
wyre-technology/.github#57/WYRE-AI#58) specifically because its CI was vacuous
until this migration -- same bug class that broke 3 repos in July.

task_1787320127660
@DDePuy2015
DDePuy2015 merged commit ffd8237 into main Aug 24, 2026
12 checks passed
@DDePuy2015
DDePuy2015 deleted the deploy/itglue/20260824-upstream-sync branch August 24, 2026 13:12
@devin-ai-integration

Copy link
Copy Markdown

Post-merge code review (PR #24)

1. secrets: inherit on the release job — least-privilege regression (highest-value item here)

uses: wyre-technology/.github/.github/workflows/mcp-server-release.yml@8bfc9b3…
with: 
secrets: inherit          # ← added by this PR

I read the reusable workflow at the pinned SHA. Its on.workflow_call block declares no secrets: inputs at all, and the only secret referenced anywhere in its 600+ lines is secrets.GITHUB_TOKEN (10 occurrences), which is auto-provisioned to reusable workflows without inherit. So secrets: inherit grants nothing the pipeline uses, while handing every repo/org secret — including AZURE_CLIENT_ID / AZURE_TENANT_ID / AZURE_SUBSCRIPTION_ID, which the deploy job right below deliberately maps one-by-one, and CLAUDE_CODE_OAUTH_TOKEN — to an external-repo workflow whose contents can change under a future pin bump.

This also contradicts the PR description ("Preserve Summit-specific explicit reusable-workflow secret mappings"): after this change the release job is the one job in the file that does not map explicitly.

Worth noting the blast radius: release.yml also triggers on pull_request, so any collaborator branch PR produces a run with all inherited secrets in scope. (Fork PRs are safe — GitHub withholds secrets and forces a read-only token for pull_request from forks — so this is bounded by who can push branches, not by the repo being public.)

Suggested fix: delete the line. If a later pin does need something, add secrets: with just that key.

2. Dropping the local mcpb stopgap — verified safe

I checked the claim rather than taking it on faith. The upstream job at pin 8bfc9b3 reproduces every property the local stopgap had, and one it didn't:

  • auto-detects support via jq -e '.scripts["pack:mcpb"]' package.json (this repo has the script, so it runs);
  • gated on the release having been cut, in its own job needing only release, so a pack failure can't fail the release;
  • stamps the released version — npm version "$VERSION" --no-git-tag-version --allow-same-version — which was the whole reason for the local job (v1.12.0 shipping a bundle labelled 1.5.3). Upstream adds --allow-same-version, which the local copy lacked and which would have failed the job whenever package.json already carried the released version;
  • installs the CLI globally (npm install -g @anthropic-ai/mcpb), matching the local behaviour, and hard-errors if pack:mcpb produces no .mcpb at the repo root — a check the local version didn't have.

No action needed; recording the verification so the next sync doesn't have to redo it.

3. dependabot.yml — valid, but the comment now reads as attached to the wrong block

The new ignore: is correctly nested under the npm ecosystem entry (4-space indent, sibling of groups), so it applies to all npm updates, which is what's wanted. Two cosmetic notes:

  • It lands directly beneath # Production MAJORS are intentionally NOT grouped → individual PRs, held for human review, so that comment now reads as if it introduces the ignore block. Moving ignore: above that trailing comment (or below the groups: map) keeps each comment adjacent to what it describes.
  • typescript is a devDependency here, so the practical effect is on the dev-dependencies group (which explicitly opts into "major"), not on the production-major path the neighbouring comment discusses. A half-line — "narrows the dev-dependencies group above" — would save the next reader the round trip I just made.

4. Action pin bumps

add-to-project.yml, claude.yml, and both release.yml reusable pins are plain SHA bumps with the version comment updated. No issues.

One thing not caused by this PR but touched by it: claude.yml triggers on issues/issue_comment with contents: write, pull-requests: write, issues: write and no author_association gate, on a public repo. Any GitHub user can open an issue containing @claude and get a write-scoped run using CLAUDE_CODE_OAUTH_TOKEN. Since this repo keeps bumping that pin, consider adding to the if::

&& contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.comment.author_association)

(with the matching github.event.issue.author_association for the issues legs).


Cross-cutting, found while reviewing #16, #19, #20, #21 and #24 together

CI never runs the tests or the linter

.github/workflows/ci.yml's build job is npm cinpm run typechecknpm run build, and that's it. npm test and npm run lint appear in no workflow. Every one of these five PRs listed "typecheck, lint, N tests" as validation — all of it run locally by hand, none of it enforced. Concretely: #21 added assertions pinning the tool count at 46 in two places, exactly the kind of thing that drifts on the next tool addition, and nothing in CI would have failed. Adding two steps to the existing job closes it:

- run: npm run lint
- run: npm test

Three different Node majors across build, release and runtime

  • ci.ymlnode-version: '20'
  • reusable release workflow → node-version input defaults to '22' (not overridden by release.yml)
  • Dockerfilenode:26-alpine, both stages

So code is typechecked on 20, released on 22 and executed on 26. @types/node is ^26.1.2, i.e. the types match the runtime and not either CI Node. Aligning ci.yml (and passing node-version: '26' to the release workflow, which accepts it as an input) removes a class of "passes CI, fails in the container" gap — worth doing before the next runtime bump rather than after it.

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