Skip to content

Akhil/optimise backend v2 - #221

Merged
itsmeakhil merged 19 commits into
mainfrom
akhil/optimise-backend-v2
Jun 22, 2026
Merged

Akhil/optimise backend v2#221
itsmeakhil merged 19 commits into
mainfrom
akhil/optimise-backend-v2

Conversation

@itsmeakhil

Copy link
Copy Markdown
Collaborator

No description provided.

itsmeakhil and others added 19 commits June 22, 2026 22:15
…T7 split

Only addHistoryItem and substituteVariables are used; remove clearHistory,
deleteHistoryItem, setActiveEnvId, addEnvironment, updateEnvironment,
deleteEnvironment.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace infinite-scroll + slice pattern with react-window v2 List component
so only visible rows are rendered regardless of history size.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Cap Monaco input at 2 MB; show amber banner with download-full-body
button for oversized responses. Extract truncateBody helper + test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds CollectionsSidebarSkeleton and ResponsePanelSkeleton to improve perceived
performance during data loading. Skeleton state is shown when isLoading is true
and content array is empty, preventing layout shift while maintaining A11y with
role="status" and aria-busy="true".

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replaces static imports with next/dynamic (ssr:false) for both
CodeGenerator and EnvironmentManager, and conditionally mounts each
component only when its dialog open state is true so the chunks are
fetched on first open rather than on initial page load.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…it-out triggers

- Restore IconCode from @tabler/icons-react for CodeGenerator button
- Restore IconSettings from @tabler/icons-react for EnvironmentManager button
- Add h-8 w-8 className to CodeGenerator button for consistent sizing

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace static CodeEditor imports in request-tabs and response-panel
with next/dynamic (ssr: false) so Monaco is excluded from the initial
route bundle. Wrap each dynamic result in React.memo and stabilise the
onChange handler in request-tabs with useCallback to prevent unnecessary
Monaco remounts on parent re-renders.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove AnimatePresence + motion.div from tab-bar; replace the two
layoutId indicators (background highlight + underline) with a single
pair of absolute <span> elements whose left/width are measured via
useLayoutEffect and animated with Tailwind transition-all duration-200.
Drag-to-reorder continues to use native HTML5 drag. Tab insert/remove
is now immediate (no enter/exit animation — acceptable per brief).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ic updates

Adds POST /api-client/collections/{id}/items:apply-delta that walks the
items tree in-memory for add/update/delete/move ops and persists atomically
with a single update_one; invalidates via bump_version(ns="api_client").
Frontend useCollections switches saveRequest/deleteItem/addFolder/renameFolder
to the delta endpoint with optimistic updates + server-reconcile rollback.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…rites

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ition

Collapse secondary toolbar buttons (Code, Save, Import cURL, Env Manager,
Help) into a MoreVertical DropdownMenu on mobile. Desktop layout unchanged.
Env Select stays inline on mobile for quick switching. Separate scroll
containers for request/response panels with useLayoutEffect + ref-based
scroll memory so position is restored on panel toggle. All 27 locale files
updated with ApiClient.toolbar.* keys (English fallbacks for non-English).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… refactor

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…bort on unmount

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ebounce clobber, remove dup save dialog, plug _apply_move data-loss path, wire history skeleton, tighten delta tests

- C1: closeTab/duplicateTab now compute all state outside updaters using
  tabsRef/activeTabIdRef; no setState calls inside setTabs updater
- C2: lastPushedRef guards localUrl reset so only external url changes
  (tab switch, cURL import) sync down — not our own debounce writes
- C3: remove SaveRequestDialog + collections/onSave/saveDefaultName props
  from RequestPanel; toolbar instance in api-client.tsx covers both layouts
- I4: _apply_move validates new_parent_id exists before extracting item;
  raises HTTP 400 instead of silently dropping the item
- I5: _mock_find_one_and_update stores last_update_query; add/delete tests
  assert $set payload; new test_apply_delta_move_unknown_parent_returns_400
- I6: handleBodyContentChange dep changed from [normalizedBody] to [updateBody]
- I7: isHistoryLoading added to useHistory/HistoryState; HistoryListSkeleton
  rendered in collections-sidebar while loading && history.length === 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated (UTC)
mydevtools-tech Ready Ready Preview, Comment Jun 22, 2026 8:54pm

@itsmeakhil
itsmeakhil merged commit 511d76e into main Jun 22, 2026
2 checks passed
@itsmeakhil
itsmeakhil deleted the akhil/optimise-backend-v2 branch June 24, 2026 08:31
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