fix(@inkeep/agents-work-apps): mark @slack/socket-mode as dependency#2951
fix(@inkeep/agents-work-apps): mark @slack/socket-mode as dependency#2951dimaMachina merged 5 commits intomainfrom
@slack/socket-mode as dependency#2951Conversation
🦋 Changeset detectedLatest commit: 256e3ad The changes in this PR will be included in the next version bump. This PR includes changesets to release 10 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@claude add a changeset based on changes in this PR |
|
All alerts resolved. Learn more about Socket for GitHub. This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored. |
|
Claude finished @dimaMachina's task in 1m 10s —— View job Added changeset
Created
Pushed in commit |
|
TL;DR — Fixes the Key changes
Summary | 12 files | 5 commits | base:
|
PR SummaryTL;DRFixes a build failure in Key Changes1. Mark
|
| # | File | Category |
|---|---|---|
| 1 | packages/agents-work-apps/tsdown.config.ts |
Primary fix — neverBundle @slack/socket-mode |
| 2 | agents-api/tsdown.config.ts |
tsdown config migration (external → neverBundle) |
| 3 | agents-cli/tsdown.config.ts |
tsdown config migration |
| 4 | packages/agents-core/tsdown.config.ts |
tsdown config migration |
| 5 | package.json |
tsdown version bump 0.19 → 0.21.7 |
| 6 | biome.jsonc |
New lint rule: require knip script |
| 7 | agents-cookbook/evals/langfuse-dataset-example/package.json |
Add knip script |
| 8 | agents-ui-demo/package.json |
Add knip script + remove unused lucide-react |
| 9 | packages/agents-email/package.json |
Add knip script |
| 10 | packages/agents-work-apps/package.json |
Add knip script |
| 11 | test-agents/package.json |
Add knip script |
| 12 | test-agents/knip.config.ts |
New knip config (ignore false positive) |
| 13 | pnpm-lock.yaml |
Lockfile update (tsdown upgrade + lucide-react removal) |
| 14 | AGENTS.md |
Trailing newline fix |
Claude Opus | 𝕏
|
TL;DR — Fixes a build failure in Key changes
Summary | 14 files | 4 commits | base:
|
There was a problem hiding this comment.
Clean PR. The core fix (marking @slack/socket-mode as neverBundle) is correct, and the tsdown external → deps.neverBundle migration is complete across all configs. The biome useRequiredScripts rule is a nice guardrail for ensuring consistent knip coverage.
Two observations (neither blocking):
-
@slack/socket-modedependency categorization — it's listed as adevDependencyinagents-work-apps/package.jsonbut dynamically imported at runtime (src/slack/socket-mode.ts:19). This works in the monorepo (hoisted deps), but if@inkeep/agents-work-appsis ever installed standalone,startSocketMode()will fail. Consider promoting it todependenciesoroptionalDependencies. -
notFoundrevert — the PR removes the recently-addedConversationTimeRangediscriminated union and the 404 early-exit path, plus deletes the associated changeset. A 404 from the bounds API now falls through to the generic catch/warn/fallback path, meaning SigNoz still gets queried with a 180-day window. Worth a note in the PR description on why this is being reverted.
Claude Opus | 𝕏
| format: 'esm', | ||
| entry: ['src/**/*.ts', '!**/__tests__', '!**/*.test.ts'], | ||
| deps: { | ||
| neverBundle: ['@slack/socket-mode'], |
There was a problem hiding this comment.
Correct fix — @slack/socket-mode is dynamically imported at runtime and must not be bundled.
Note: the package is currently listed as a devDependency in package.json despite being runtime-imported. This works in the monorepo, but would break for standalone consumers. Consider moving to dependencies or optionalDependencies in a follow-up.
There was a problem hiding this comment.
PR Review Summary
(0) Total Issues | Risk: Low
✅ No Issues Found
This PR is clean. The automated review dispatched 3 domain-specific reviewers (DevOps, Standards, Consistency) and none found actionable issues.
What was verified:
-
tsdown migration (
external→deps.neverBundle) — All 4 tsdown configs migrated correctly and consistently. The API change aligns with tsdown 0.21.x. -
@slack/socket-modeexclusion — Correctly marked asneverBundlesince it's dynamically imported at runtime (line 19 ofsocket-mode.ts) and contains native code that cannot be bundled. -
Biome
useRequiredScriptsrule — Properly configured to enforceknipscripts across workspaces. The 5 packages missingknipscripts were updated. -
Changeset — Appropriate patch bump for
@inkeep/agents-work-apps.
🕐 Pending Recommendations (1)
- 🟡
packages/agents-work-apps/package.json@slack/socket-modeis in devDependencies but used at runtime — consider promoting todependenciesoroptionalDependencies(raised by Pullfrog)
✅ APPROVE
Summary: Clean, well-executed fix. The core change (marking @slack/socket-mode as neverBundle) correctly resolves the build failure. The opportunistic tsdown API migration and knip enforcement are consistent and complete. The only open item is the dependency categorization question raised by Pullfrog, which is non-blocking.
Reviewers (3)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
pr-review-devops |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
pr-review-standards |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
pr-review-consistency |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Total | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
@slack/socket-mode as external (neverBundle)@slack/socket-mode as dependency
|
I see the suggestion has already been applied to the changeset file. The description now reads: "Fix build in |
There was a problem hiding this comment.
PR Review Summary
(0) Total Issues | Risk: Low
✅ No New Issues
This is a delta review covering the 1 commit since the previous review (504d19a37).
Changes in this delta:
-
@slack/socket-modepromoted todependencies— Moves the package fromdevDependenciestodependenciesinagents-work-apps/package.json. This directly addresses the prior Pullfrog observation about the package being runtime-imported but incorrectly categorized. Now standalone consumers will have the dependency correctly installed. -
neverBundleremoved fromagents-work-apps/tsdown.config.ts— Since the package is now a proper dependency andunbundle: trueis set, explicitneverBundleconfiguration is no longer needed. The dependency will be externalized by default. -
treeshakeremoved from roottsdown.config.ts— Removes thetreeshake: { preset: 'smallest' }option from the root config. This is a cleanup change that doesn't affect the fix.
Prior Feedback Addressed
✅ The Pullfrog observation about @slack/socket-mode dependency categorization has been addressed in this commit.
✅ APPROVE
Summary: Clean follow-up commit that addresses the prior review feedback by promoting @slack/socket-mode to a runtime dependency. The fix is now complete and correct.
Reviewers (0)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
| Total | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Note: No sub-reviewers dispatched — delta scope was small (3 files, 1 commit) and covered straightforward dependency/config changes that addressed prior feedback.
There was a problem hiding this comment.
PR Review Summary
(0) Total Issues | Risk: Low
✅ No Changes Since Last Review
This is a re-review with no new commits since the previous automated review at commit f65c812e034a.
Current state: The PR correctly fixes the @inkeep/agents-work-apps build by:
-
Moving
@slack/socket-modetodependencies— The package is dynamically imported at runtime (socket-mode.ts:19), so it must be a runtime dependency, not a dev dependency. This fixes both the bundling issue and ensures standalone consumers get the dependency installed. -
Migrating
external→deps.neverBundle— All tsdown configs updated consistently for tsdown 0.21.x API. -
Adding Biome
useRequiredScriptsenforcement — Ensures all workspaces have aknipscript for dead dependency detection. -
Removing unused
lucide-react— Cleanup caught by the new knip enforcement.
Prior Feedback Status
✅ Pullfrog's observation about @slack/socket-mode being in devDependencies has been addressed — it's now correctly in dependencies.
✅ APPROVE
Summary: No new changes since last approval. The PR is ready to merge. 🚢
Reviewers (0)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
| Total | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Note: No sub-reviewers dispatched — this is a re-review with no new commits since the last automated review.
f65c812 to
2d7c270
Compare
There was a problem hiding this comment.
PR Review Summary
(1) Total Issues | Risk: Low
🟠⚠️ Major (1) 🟠⚠️
🟠 1) <missing_file> Missing changeset for published package
Issue: This PR modifies @inkeep/agents-work-apps (a published package) by moving @slack/socket-mode from devDependencies to dependencies, but no changeset file is present in the PR.
Why: Per AGENTS.md guidelines, any behavior change to a published package requires a changeset. This fix affects how the package is installed by downstream consumers — without @slack/socket-mode in dependencies, standalone consumers would get a runtime error when startSocketMode() is called.
Fix: Add a changeset:
pnpm bump patch --pkg agents-work-apps "Fix build by marking @slack/socket-mode as a runtime dependency"Refs:
- AGENTS.md: Creating Changelog Entries
- changeset-bot comment flagging the missing changeset
✅ Verified as Correct
-
@slack/socket-mode→dependencies— Correctly moved fromdevDependenciestodependencies. The package is dynamically imported at runtime insocket-mode.ts, so it must be a runtime dependency. -
Biome
useRequiredScriptsrule — Properly configured to enforceknipscripts across all workspaces. -
knipscripts added — All 5 workspaces that were missingknipscripts now have them. -
lucide-reactremoved — Unused dependency correctly removed fromagents-ui-demo. -
externalkept inagents-cli/tsdown.config.ts— dimaMachina's suggestion was applied correctly.
🚫 REQUEST CHANGES
Summary: The core fix is correct and all prior feedback has been addressed. The only blocking issue is the missing changeset for @inkeep/agents-work-apps. Once added, this PR is ready to merge.
Reviewers (0)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
| Total | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Note: No sub-reviewers dispatched — this is a delta review of a small, focused build-fix PR that has been previously reviewed and approved. The only new finding is the missing changeset.
There was a problem hiding this comment.
PR Review Summary
(1) Total Issues | Risk: Low
✅ No New Issues in Delta
This is a delta review covering 1 commit since the previous automated review (2ba4dcb13).
Change in this delta:
agents-cli/tsdown.config.ts— AddedoutDir: 'dist'(line 16), applying dimaMachina's suggestion. This is a correct and straightforward config change.
🕐 Pending Recommendations (1)
- 🟠
<missing_file>Missing changeset for@inkeep/agents-work-apps— Moving@slack/socket-modefrom devDependencies to dependencies affects how the package is installed by downstream consumers and requires a changeset
🚫 REQUEST CHANGES
Summary: The delta commit is clean — it correctly applies dimaMachina's suggestion to add outDir: 'dist' to the CLI config. However, the missing changeset flagged in the previous review remains unresolved. Once added, this PR is ready to merge.
To fix:
pnpm bump patch --pkg agents-work-apps "Fix build by marking @slack/socket-mode as a runtime dependency"Reviewers (0)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
| Total | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Note: No sub-reviewers dispatched — delta scope was trivial (1 file, 1 line change applying a suggestion).
There was a problem hiding this comment.
PR Review Summary
(0) Total Issues | Risk: Low
✅ No New Issues
This is a delta review covering the 1 commit since the previous automated review (14ed168f9).
Change in this delta:
.changeset/breezy-lemons-dream.md— Adds the missing changeset for@inkeep/agents-work-appswith apatchbump. The changeset accurately describes the fix: moving@slack/socket-modetodependenciesto avoid compilation errors.
Prior Feedback Addressed
✅ The missing changeset issue flagged in the previous review has been resolved. The changeset correctly targets @inkeep/agents-work-apps with a patch bump and a clear description.
Full PR Summary (for posterity)
This PR correctly fixes the @inkeep/agents-work-apps build by:
-
Moving
@slack/socket-modetodependencies— The package is dynamically imported at runtime, so it must be a runtime dependency. This ensures standalone consumers get the dependency installed and prevents bundling issues. -
Adding Biome
useRequiredScriptsenforcement — Ensures all workspaces have aknipscript for dead dependency detection. -
Adding
knipscripts to 5 workspaces that were missing them. -
Removing unused
lucide-reactfromagents-ui-demo— Cleanup caught by knip. -
agents-cli/tsdown.config.tsimprovements — Excludestest-helpers.tsfrom build, addsglobImport: true, and expands entry for readability.
✅ APPROVE
Summary: The blocking issue from the previous review (missing changeset) has been addressed. The changeset is properly formatted with an appropriate patch bump and accurate description. Ship it! 🚢
Reviewers (0)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
| Total | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Note: No sub-reviewers dispatched — delta scope was trivial (1 file, changeset addition only).
…cy` (#2951) * upd * upd * Apply suggestion from @dimaMachina * Apply suggestion from @dimaMachina * Create breezy-lemons-dream.md
…cy` (#2951) * upd * upd * Apply suggestion from @dimaMachina * Apply suggestion from @dimaMachina * Create breezy-lemons-dream.md
* chore(dashboard): dockerize visual regression tests for cross-OS consistency Run Playwright browser inside a Docker container so visual screenshot tests produce identical results on macOS (local dev) and Linux (CI). - Add docker-compose.visual.yml with Playwright server container - Update vitest config to connect to Docker browser via websocket when PW_TEST_CONNECT_WS_ENDPOINT env var is set - Add test:visual and test:visual:update npm scripts - Update CI workflow to use Docker Playwright server instead of bare Playwright install - Regenerate screenshot baselines from Linux container Closes PRD-6191 Co-Authored-By: Claude Opus 4.6 <[email protected]> * fix: address PR review feedback - Add explicit failure handling if Playwright server doesn't start - Bind Docker port to 127.0.0.1 only (don't expose to network) - Align npx playwright version with Docker image (both 1.58.0) Co-Authored-By: Claude Opus 4.6 <[email protected]> * fix: restore Playwright install step in CI The @vitest/browser-playwright package requires a local Playwright install to initialize, even when the actual browser runs in Docker via connectOptions. Keep the install step alongside the Docker server. Co-Authored-By: Claude Opus 4.6 <[email protected]> * fix(dashboard): pass PW_TEST_CONNECT_WS_ENDPOINT through turbo strict mode Turbo v2 strict mode filters env vars not listed in turbo.json from child processes. The Playwright WebSocket endpoint was being silently dropped, causing vitest to fall back to local Chromium instead of the Docker server — producing mismatched screenshots in CI. Also pins docker-compose.visual.yml to linux/amd64 so local baselines match CI regardless of host architecture (see microsoft/playwright#13873), and fixes the Playwright cache restore-keys prefix mismatch. Co-Authored-By: Claude Opus 4.6 <[email protected]> * docs: add visual regression test workflow to AGENTS.md * fix(dashboard): resolve Monaco strict locator violation in nested error state visual test * fix(dashboard): fix Monaco strict locator violation with data-testid and stable render wait * Refactor vitest.config.ts by removing unused code * Update vitest.config.ts * fix(dashboard): restore onUnhandledError handler for Monaco browser tests The previous refactor removed the onUnhandledError handler, causing CI to fail with exit code 1 due to 3 known, unfixable Monaco Editor errors in Vitest browser mode: 1. "Cannot use import statement outside a module" - Monaco web workers cannot load ESM in the Vitest browser sandbox 2. "InvalidCharacterError" / "is not a valid name" - Monaco attempts createElement with an SVG data URI as the tag name 3. "Closing rpc while" - Vitest worker RPC shutdown race condition These errors were originally suppressed by Nick in #2046 and #2078 after investigation confirmed they are unfixable Monaco/Vitest internals that do not affect test correctness. Refs: #2046, #2078 * fix(dashboard): remove unused pixelmatch devDependency The pixelmatch package is no longer imported after the vitest.config.ts refactor removed the custom tolerantPixelmatch comparator. Knip correctly flags it as unused. * fix * upd * upd * format * lock * rm * fix * Create fluffy-gorillas-joke.md * Apply suggestion from @claude[bot] Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> * fix(@inkeep/agents-work-apps): mark `@slack/socket-mode` as `dependency` (#2951) * upd * upd * Apply suggestion from @dimaMachina * Apply suggestion from @dimaMachina * Create breezy-lemons-dream.md * Document MCP header forwarding in Visual Builder docs (#2956) * docs: add MCP header forwarding and fix header key casing examples * updated warnings in headers docs * updated warnings in mcp servers docs * In product copilot tutorial (#2957) * docs build updated api reference * tutorial done * implements pnpm minimumReleaseAge and upgrades pnpm to 10.33.0 (#2958) * implements pnpm minimumReleaseAge * upgrades pnpm to 10.16.0 * upgrades pnpm to 10.33.0 * ci: surface stable preview URLs in PRs (#2799) * ci: surface stable preview urls in PRs * fix: add temp file cleanup trap and paginate comment search - Add EXIT trap to clean up mktemp file - Paginate through all PR comments when searching for the existing marker comment, fixing duplicate-comment risk on PRs with 100+ comments Co-authored-by: Andrew Mikofalvy <[email protected]> Co-Authored-By: Claude Opus 4.6 <[email protected]> * ci: fix preview URL comment updates --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Andrew Mikofalvy <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]> * feat: S3 presigned URLs for private media delivery (#2887) * feat: add S3 presigned URL support for private media delivery - Add optional getPresignedUrl() to BlobStorageProvider interface - Implement in S3BlobStorageProvider using @aws-sdk/s3-request-presigner - Make resolveMessageBlobUris() async with presigned URL first, manage proxy fallback for non-S3 backends (Option D hybrid) - Update both call sites (run + manage conversation routes) with await - Add presigned URL tests to s3-provider and resolve-blob-uris test suites - Include full spec with evidence files Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * docs: add S3 blob storage deployment guide Covers S3 setup, IAM permissions, env vars, S3-compatible services, storage backend priority, and presigned URL delivery flow. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * chore: add changeset for S3 presigned URL support Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * fix: add error handling for presigned URL failures with proxy fallback - Wrap getPresignedUrl() in try-catch so failures fall through to manage proxy URL instead of crashing the entire conversation response - Add test for presigned URL failure → proxy fallback path - Add mixed-content test with presigned URLs active - Fix doc icon quoting convention Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * fix: correct callout type and remove inaccurate configurable claim in docs Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * feat: make presigned URL expiry configurable via `BLOB_STORAGE_PRESIGNED_URL_EXPIRY_SECONDS` - Add `BLOB_STORAGE_PRESIGNED_URL_EXPIRY_SECONDS` to env.ts Zod schema (default 7200s / 2 hours, range 60–604800) - Replace hardcoded `DEFAULT_PRESIGNED_EXPIRY_SECONDS` constant in s3-provider.ts with env var lookup - Update tests to use env var in mocks and verify new default - Add env var to .env.example files and deployment docs * fix: address PR review comments - Clarify Vercel Blob is also a valid production backend (serves via proxy) - Add per-service S3-compatible path-style guidance (R2 vs B2 vs Spaces) - Make first resolve-blob-uris test explicitly set its mock (test isolation) Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * chore: reset lockfile from main to minimize resolution drift Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * fix: pin s3-request-presigner to match client-s3 to prevent lockfile drift Pin @aws-sdk/s3-request-presigner to 3.995.0 (same as resolved client-s3) to minimize pnpm-lock.yaml changes and prevent react version mismatch that caused agents-email test failures in CI. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * Resolve blob storage provider once per message list instead of per message Addresses PR feedback: call getBlobStorageProvider() once in resolveMessagesListBlobUris and pass the provider through to resolveMessageBlobUris, avoiding N singleton lookups per conversation retrieval. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * chore: reset lockfile from main and reinstall to fix CI Reset pnpm-lock.yaml from main per repo guidelines to prevent resolution drift that was causing monaco-editor ESM import failures in agents-manage-ui tests. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * Address remaining review suggestions: list-level presigned URL test and AWS CLI prerequisite - Add test for resolveMessagesListBlobUris with presigned URLs active across multiple messages, covering Promise.all handling - Add AWS CLI prerequisite note to S3 setup docs Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * Remove AWS CLI prerequisite note from S3 docs Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> --------- Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]> Co-authored-by: pullfrog[bot] <226033991+pullfrog[bot]@users.noreply.github.com> * ci: add preview janitor and recreate control (#2930) * ci: add preview state janitor and recreate path * ci: simplify preview janitor and var resolution * ci: address preview janitor review feedback * ci: gate preview auth on SpiceDB deployment readiness * ci: tighten preview bootstrap retry budget * ci: retry preview recreate after Railway delete * ci: clarify skipped preview workflow jobs * Rename headers in schema and usage to hyphen format (#2962) * Version Packages (#2952) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Andrew Mikofalvy <[email protected]> * Update actions/setup-node and pnpm/action-setup to Node.js 24 versions (#2963) Upgrade actions/setup-node from v4 to v6.3.0 and pnpm/action-setup from v4 to v5.0.0 across all workflows to resolve the Node.js 20 deprecation warning. Node.js 20 actions will be forced to Node.js 24 starting June 2, 2026. https://claude.ai/code/session_01D5Ah1eAYvZCS2SfZ5Lopi3 Co-authored-by: Claude <[email protected]> * credential id reference added (#2967) * Add minimumReleaseAgeExclude for @inkeep/* packages (#2968) Excludes @inkeep scoped packages from the 1440-minute minimum release age gate so our own published packages can be installed immediately after release. https://claude.ai/code/session_01LBEnpfsjj6r4cdwXs2VeHx Co-authored-by: Claude <[email protected]> * add TooltipProvider * add back timeout * should fix tests * polish * fix * pnpm i * upd --------- Co-authored-by: Varun Varahabhotla <[email protected]> Co-authored-by: Claude Opus 4.6 <[email protected]> Co-authored-by: Varun Varahabhotla <[email protected]> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: bryan-inkeep <[email protected]> Co-authored-by: Gaurav Varma <[email protected]> Co-authored-by: robert-inkeep <[email protected]> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Andrew Mikofalvy <[email protected]> Co-authored-by: Andrew Mikofalvy <[email protected]> Co-authored-by: pullfrog[bot] <226033991+pullfrog[bot]@users.noreply.github.com> Co-authored-by: inkeep-internal-ci[bot] <259778081+inkeep-internal-ci[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
before
after