Reverts https://github.com/inkeep/agents/pull/1474#3012
Conversation
🦋 Changeset detectedLatest commit: 404dd51 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.
|
|
TL;DR — Reverts PR #1474, which removed manual Key changes
Summary | 100 files | 2 commits | base:
|
There was a problem hiding this comment.
PR Review Summary
(1) Total Issues | Risk: Low
🟠⚠️ Major (1) 🟠⚠️
🟠 1) CLAUDE.md / biome.jsonc Documentation-Code Inconsistency
Issue: This revert adds back useMemo and useCallback across 110 files and removes them from the biome restricted imports list. However, CLAUDE.md:109 explicitly states:
React Compiler: React Compiler is enabled for this repo. Do not add
memo,useMemo, oruseCallback; rely on the compiler unless a maintainer explicitly requests an exception
Why: After this revert lands, the documented guidance in CLAUDE.md will directly contradict the actual codebase practice. This creates confusion for contributors (human and AI) who follow the documented guidelines, only to find the codebase does the opposite. The lint rule change (biome.jsonc) enables useMemo/useCallback imports, but the docs still say not to use them.
Fix: If the decision is to revert to manual memoization:
- Update
CLAUDE.mdline 109 to reflect that manual memoization IS used in this repo - Remove or update the message in
biome.jsoncthat warns against these imports - Consider adding a brief note explaining why manual memoization is preferred over React Compiler's automatic handling
Alternatively, if the original #1474 removal was correct but caused issues:
- Document what specific issues prompted the revert
- Consider a more targeted fix rather than a full revert
Refs:
💡 APPROVE WITH SUGGESTIONS
Summary: This is a mechanical revert of PR #1474, which is low-risk from a code correctness standpoint — the code worked before #1474 was merged. However, the revert creates a documentation inconsistency: CLAUDE.md still says "do not add useMemo or useCallback" while this PR does exactly that. Please update CLAUDE.md to reflect the new/restored approach to memoization before or alongside merging.
Reviewers (1)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
orchestrator |
1 | 1 | 0 | 0 | 0 | 0 | 0 |
| Total | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
Note: No sub-reviewers dispatched — this is a mechanical revert with a single documentation consistency issue.
There was a problem hiding this comment.
Clean revert — no actionable issues found.
This is a straightforward git revert of PR #1474 (which removed useMemo/useCallback in favor of React Compiler automatic memoization), plus a changeset commit. The revert cleanly restores all 110 files to their pre-#1474 state:
biome.jsonc: Lint rule reverted to only banmemo(notuseCallback/useMemo)useMemo: Restored for column definitions, computed values, context values, and the chart IIFE →useMemoconversionuseCallback: Restored for event handlers, fetch functions, and functions referenced inuseEffectdepsbiome-ignorecomments: Removed — no longer needed since functions are properly wrapped inuseCallback- CSS custom properties: Reverted from
@ts-expect-errorback to['--custom-prop' as string]pattern JsonSchemaStateDataexport: Restored injson-schema.ts- Form handler pattern: Reverted from
form.handleSubmit(async (data) => {...})back to the wrapping-at-call-site pattern (e.g.,page.client.tsx) - No merge conflict markers detected across the diff
Note: AGENTS.md line 109 still says "Do not add memo, useMemo, or useCallback; rely on the compiler" — this will need updating to reflect the new policy after this revert lands.
Claude Opus | 𝕏
Preview URLsUse these stable preview aliases for testing this PR:
These point to the same Vercel preview deployment as the bot comment, but they stay stable and easier to find. Raw Vercel deployment URLs
|
Ito Test Report ✅18 test cases ran. 3 additional findings, 15 passed. The unified local non-production run executed 18 test cases with 15 passing and 3 failing, confirming stable behavior across core auth and invitation journeys, device authorization (including rapid approval interaction), protected-route gating, project/work-app routing, traces/member UX behaviors, and mobile link/login usability without relying on API or auth bypass stubs. The most important issues were a high-severity Slack link token replay flaw (one-time-use not enforced, allowing reused valid tokens to succeed) plus two medium-severity integrity gaps where credential creation can submit with link-to-server enabled but no valid MCP server selected and webhook trigger toggles can persist the wrong final enabled state under rapid clicks due to stale-state race conditions. ✅ Passed (15)
ℹ️ Additional Findings (3)
🟠 Trigger status toggle race abuse
Relevant code:
const toggleEnabled = useCallback(
async (triggerId: string, agentId: string, currentEnabled: boolean) => {
const newEnabled = !currentEnabled;
setLoadingTriggers((prev) => new Set(prev).add(triggerId));
try {
const result = await updateTriggerEnabledAction(
tenantId,
projectId,
agentId,
triggerId,
newEnabled
);
<Switch
checked={row.original.enabled}
onCheckedChange={() =>
toggleEnabled(row.original.id, row.original.agentId, row.original.enabled)
}
disabled={isLoading || !canManage}
/>
|
|
🔎💬 Inkeep AI search and chat service is syncing content for source 'Inkeep Agent Framework Docs' |



















Reverts #1474