Skip to content

feat(api)!: sync generated SDK from staging (removes google_calendar + slack list endpoints)#7

Open
aburkard wants to merge 1 commit into
mainfrom
stlc-promote
Open

feat(api)!: sync generated SDK from staging (removes google_calendar + slack list endpoints)#7
aburkard wants to merge 1 commit into
mainfrom
stlc-promote

Conversation

@aburkard

@aburkard aburkard commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Promotes the generated SDK from the staging buffer to this production repo.

  • Source: hyperspell/hyperspell-cli-staging@0ca6bc29f1dd5bbffa5195e0b1bfb8a9d0cdffb4 (ref main)
  • Promoted by: https://github.com/hyperspell/hyperspell/actions/runs/29068363046
  • Excluded (production-owned): CHANGELOG.md, release-please manifest/config, the release-please/publish/release-doctor workflows, and version stamps (kept at 0.2.0; release-please bumps them on release).

Merging hands off to release-please: it will open a release PR computing the next version from this PR's conventional-commit message — that release PR is the human gate for the actual publish. Amend the commit type (fix: / feat!:) before merging if the change warrants a different bump.

A re-dispatch of the promote workflow force-pushes this branch, superseding this PR's content in place.

@firetiger-agent

firetiger-agent Bot commented Jul 10, 2026

Copy link
Copy Markdown

Firetiger has created a monitoring plan for this PR.

View monitor

@aburkard aburkard changed the title feat(api): sync generated SDK from staging feat(api)!: sync generated SDK from staging (removes google_calendar endpoints) Jul 10, 2026
Comment thread scripts/utils/upload-artifact.sh Outdated
if echo "$UPLOAD_RESPONSE" | grep -q "HTTP/[0-9.]* 200"; then
echo -e "\033[32mUploaded build to Stainless storage.\033[0m"
echo -e "\033[32mInstallation: Download and unzip: 'https://pkg.stainless.com/s/hyperspell-cli/$SHA'. On macOS, run 'xattr -d com.apple.quarantine {executable name}'.\033[0m"
echo -e "\033[32mInstallation: Download and unzip: 'https://pkg.stainless.com/s/hyperspell-cli-staging/$SHA'. On macOS, run 'xattr -d com.apple.quarantine {executable name}'.\033[0m"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MAJOR CORRECTNESS Upload artifact URL hardcodes staging path in production repo

The script was synced from staging and now references hyperspell-cli-staging in the install URL. In the production repo (hyperspell/hyperspell-cli), users running this script receive installation instructions pointing to staging artifacts instead of production artifacts.

Suggested change
echo -e "\033[32mInstallation: Download and unzip: 'https://pkg.stainless.com/s/hyperspell-cli-staging/$SHA'. On macOS, run 'xattr -d com.apple.quarantine {executable name}'.\033[0m"
echo -e "\033[32mInstallation: Download and unzip: 'https://pkg.stainless.com/s/hyperspell-cli/$SHA'. On macOS, run 'xattr -d com.apple.quarantine {executable name}'.\033[0m"
Prompt to fix with AI

Copy this prompt into your AI coding assistant to fix this issue.

In scripts/utils/upload-artifact.sh line 55, replace the hardcoded `hyperspell-cli-staging` with `hyperspell-cli` so the installation URL points to production artifacts. The staging path was incorrectly carried over during the sync from the staging buffer repository.

Comment thread .github/workflows/ci.yml
Comment on lines 55 to 57
permissions:
contents: read
id-token: write

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT SECURITY build job retains unused id-token: write OIDC permission

The build job declares id-token: write but no step in the job requests an OIDC token — goreleaser only uses GITHUB_TOKEN. This grants unnecessary OIDC token minting capability, violating least-privilege.

Suggested change
permissions:
contents: read
id-token: write
permissions:
contents: read
Prompt to fix with AI

Copy this prompt into your AI coding assistant to fix this issue.

In .github/workflows/ci.yml, remove `id-token: write` from the build job's permissions block (lines 55-57). No step in the build job uses an OIDC token; only `contents: read` is required. This follows least-privilege security practices.

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 3/5 - Review Recommended

Not safe to merge without fixes — this PR syncs the generated SDK from staging and removes Google Calendar endpoints, which is valuable work, but a critical correctness issue was introduced: scripts/utils/upload-artifact.sh now hardcodes hyperspell-cli-staging in the install path, meaning production users would be directed to the staging artifact bucket. Additionally, .github/workflows/ci.yml retains an id-token: write OIDC permission in the build job with no step that actually consumes it, creating unnecessary privilege exposure. The SDK sync itself appears clean, but the staging artifact URL leak must be corrected before this can ship to production.

Key Findings:

  • scripts/utils/upload-artifact.sh hardcodes a staging bucket path (hyperspell-cli-staging) that was blindly synced from staging — production installs will silently pull from the wrong environment, which is a correctness and reliability regression.
  • .github/workflows/ci.yml carries an unused id-token: write permission in the build job; while no step currently exploits it, the unnecessary OIDC write capability widens the attack surface if a future step or dependency is compromised.
  • The removal of Google Calendar endpoints is the stated intent of the PR and appears to be executed correctly across the changed SDK files — no lingering references or broken imports were flagged in that scope.
Files requiring special attention
  • scripts/utils/upload-artifact.sh
  • .github/workflows/ci.yml

@aburkard
aburkard force-pushed the stlc-promote branch 2 times, most recently from cb0d0bb to 75d412b Compare July 10, 2026 04:10
@aburkard aburkard changed the title feat(api)!: sync generated SDK from staging (removes google_calendar endpoints) feat(api)!: sync generated SDK from staging (removes google_calendar + slack list endpoints) Jul 10, 2026
…1bfb8a9d0cdffb4

BREAKING CHANGE: removes the google_calendar integration endpoints, the slack integration list endpoint, and the box/google_calendar per-source options on memories search.

Source: hyperspell/hyperspell-cli-staging@0ca6bc2

Promoted by: https://github.com/hyperspell/hyperspell/actions/runs/29068363046
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