Skip to content

fix: address the review findings raised on the v0.8.21 release PR - #7451

Open
waleedlatif1 wants to merge 4 commits into
stagingfrom
fix/release-review-findings
Open

fix: address the review findings raised on the v0.8.21 release PR#7451
waleedlatif1 wants to merge 4 commits into
stagingfrom
fix/release-review-findings

Conversation

@waleedlatif1

@waleedlatif1 waleedlatif1 commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

Fixes the review findings raised on the v0.8.21 release PR (#7446). Thirteen threads were triaged; each was verified against source before anything changed.

Three landed on staging independently while this was in progress — the /ship docs-manifest regeneration (#7450), the CLI Yarn upgrade tab (#7448), and the table view-pin (#7449) — so this branch was rebased and those duplicates dropped. What remains:

Knowledge / credential groups

  • Slack could not use the connector Access field. It resolved the provider through the standard-OAuth subset, which excludes Slack (Slack collects accounts through a custom bot), so the field never rendered — Slack could not enter members mode, and a per-member Slack connector had no way back to workspace mode.
  • The v1 document delete ran unscoped after an ACL-scoped lookup. The access-aware path already existed and v2 already used it; v1 was the last surface on the old one. The window is small and not attacker-controllable, but the divergence is worth closing.
  • Enrollment surfaced CredentialGroupEnrollmentError as a bare 500. A missing, disabled, or unconfigured credential group is the admin's to act on, so its 404/409 now project the way the credential-group routes do.
  • The workspace-level member-connector listing used knowledge-base concealment, answering Knowledge base not found where its siblings return an authorization response. It names a workspace, not a base — now unconcealed, matching the convention its own policy file documents.

Home

  • A queued Build edit was stranded in Search. Restoring the mode left q in the URL, and the rule that forces Search whenever a query is present flipped the composer straight back: the edit was discarded and the original message dispatched. Clearing the query alongside the mode restore batches into the same nuqs update, so the forcing rule never observes the intermediate state.

Docs

  • redis.mdx claimed completed work is unaffected by losing Redis. Webhook idempotency markers live wherever the cache does, with a 7-day TTL sized to the longest provider retry window, and the bundled Redis runs --save "" --appendonly no — so a redelivery after a restart can re-run a finished workflow with real side effects. Billing, checkout, and Chat-send idempotency are pinned to PostgreSQL. The same claim in values.yaml is corrected too.
  • Documented that Ask may reach an integration for an explicitly requested action, not only when sources cannot answer.

Pushed back on (unchanged, reasoning left on each thread)

  • custom-blocks "you enable" tracing — the FAQ addresses the publisher throughout, and the toggle is publisher-side (canManageBlock). The suggested rewrite would make the page inconsistent with every other "you" on it.
  • Composer retains query after leaving Search — the defaultValue guard is deliberate (landing-prompt seed path). The suggested fix would destroy user-typed text on every mode switch and break the queued-edit fix above.
  • Backtick inside a <source> payload — the file's own TSDoc documents this as an accepted trade; it only bites when the tag is also code-span-wrapped, costing one chip. Loosening the pattern removes the bound that stops a bogus match spanning code fences.

Type of Change

  • Bug fix

Testing

bun run lint, bun run check:audits (45), bun run docs-manifest:check, and bun run type-check all pass; 1210 tests pass across lib/knowledge. The new access-scope test is mutation-verified — it goes red when the scope is not forwarded to the delete. /cleanup passes (effects, state, callbacks, url-state, comments), with its three comment findings applied.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel

vercel Bot commented Sep 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
docs Ready Ready Preview Sep 3, 2026 9:28pm UTC

Request Review

Eight of the thirteen threads were real. Each was verified against source
before changing anything; three were pushed back on and are unchanged.

Knowledge and credential groups:

- The connector Access field resolved its provider through the standard-OAuth
  subset, which excludes Slack — Slack collects accounts through a custom bot.
  The field never rendered for a Slack connector, so it could not enter members
  mode and, worse, a per-member Slack connector had no way back to workspace
  mode. Resolved across all credential-group providers instead.
- The v1 document delete looked the document up with an ACL scope and then ran
  an unscoped delete. The access-aware path already existed and v2 already used
  it; v1 was the last surface on the old one. The window is small and not
  attacker-controllable, but the divergence is worth closing.
- Enrollment surfaced `CredentialGroupEnrollmentError` as a bare 500. A missing,
  disabled, or unconfigured credential group is the admin's to act on, so the
  policy now projects its 404/409 the way the credential-group routes do.
- The workspace-level member-connector listing used knowledge-base
  concealment and answered "Knowledge base not found" where its siblings return
  an authorization response. It names a workspace, not a base, so it now uses an
  unconcealed policy — the convention the policy file already documents.

Home:

- Restoring a queued Build message left the search query in the URL, and the
  rule that forces Search whenever a query is present flipped the composer
  straight back. The edit was discarded and the original message dispatched.
  Clearing the query alongside the mode restore batches into the same nuqs
  update, so the forcing rule never observes the intermediate state.

Docs and tooling:

- `redis.mdx` claimed completed work is unaffected by losing Redis. Webhook
  idempotency markers live wherever the cache does, with a 7-day TTL sized to
  the longest provider retry window, and the bundled Redis runs without
  persistence — so a redelivery after a restart can re-run a finished workflow
  with its real side effects. Billing, checkout, and Chat-send idempotency are
  pinned to PostgreSQL. Corrected the same claim in the chart's values.
- `/ship` Phase A never regenerated the docs manifest that Phase B hard-gates
  on, so adding or renaming a docs page aborted the command.
- The CLI updater prints a yarn command, but the upgrade tabs offered none.
- Documented that Ask may reach an integration for an explicitly requested
  action, not only when sources cannot answer.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015BwsJTEQRzWJaY4BRCkPZt
@greptile-apps

greptile-apps Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This follow-up addresses review findings from the v0.8.21 release work.

  • Extends credential-group handling to Slack and projects actionable enrollment errors.
  • Reapplies document access scope at the v1 deletion write.
  • Keeps queued composer edits from being forced back into Search.
  • Corrects Redis persistence and webhook-idempotency guidance.
  • Updates Helm chart metadata and deployment documentation.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
apps/sim/app/workspace/[workspaceId]/home/home.tsx Clears Search URL state before restoring a queued message’s composer mode.
apps/sim/app/workspace/[workspaceId]/knowledge/[id]/hooks/use-connector-member-group-options.ts Resolves custom credential-group providers such as Slack and exposes only provisionable options.
apps/sim/app/api/v1/knowledge/[id]/documents/[documentId]/route.ts Reuses the resolved access scope for both document lookup and deletion.
apps/sim/lib/knowledge/orchestration/documents.ts Routes document deletion through the knowledge-base- and access-scoped lifecycle service.
apps/sim/lib/knowledge/api/route-policies.ts Projects credential-group enrollment failures and separates workspace-level connector authorization policy.
apps/docs/content/docs/platform/self-hosting/redis.mdx Documents the duplicate-webhook risk caused by losing Redis idempotency markers.
helm/sim/values.yaml Aligns bundled Redis persistence guidance with its operational consequences.

Reviews (4): Last reviewed commit: "fix: name Chat-send among the PostgreSQL..." | Re-trigger Greptile

Any change under helm/sim/ requires a Chart.yaml bump. This one only corrects
a comment about what a Redis restart costs, so it is a patch.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015BwsJTEQRzWJaY4BRCkPZt

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread apps/docs/content/docs/platform/self-hosting/redis.mdx Outdated
Comment thread helm/sim/values.yaml
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 11 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Re-trigger cubic

- The Access picker offered Slack options that member provisioning would then
  reject: it filtered on `status` but not `configurationStatus`. Rendering the
  field for Slack is what exposed this, so it belongs with that change. Now
  mirrors provisioning, which skips anything not `ready`.
- "The bundled Redis runs without persistence" was only true of the chart. The
  Compose stack leaves Redis on its default snapshotting with no mounted
  volume, so webhook markers survive a restart there but not recreating the
  container.
- Redis is not optional at one replica: CLI authentication's approval store has
  no fallback and throws without it. The values guidance implied the
  requirement began above one replica.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015BwsJTEQRzWJaY4BRCkPZt
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

1 issue found across 11 files

Confidence score: 3/5

  • helm/sim/Chart.yaml leaves unpinned chart installs deploying v0.8.18 with the v0.8.21 release, so default deployments may run an outdated image; set appVersion to v0.8.21 and regenerate the image inventory.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="helm/sim/Chart.yaml">

<violation number="1" location="helm/sim/Chart.yaml:5">
P1: Unpinned chart installs still deploy `v0.8.18` even though this chart version is being shipped with the `v0.8.21` release. Set `appVersion` to `v0.8.21` and regenerate the image inventory so default installs receive the release features.

(Based on your team's feedback about keeping appVersion current for unpinned Helm installs.)</violation>
</file>

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread helm/sim/Chart.yaml
Comment thread helm/sim/values.yaml Outdated
The values comment listed billing and checkout but not Chat-send, which is
pinned the same way. An operator weighing restart risk could have mistaken
chat-send deduplication for a Redis marker.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015BwsJTEQRzWJaY4BRCkPZt
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 11 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Re-trigger cubic

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