Skip to content

Sidebar polish: search copy, dividers, project reorder, fix DnD#8568

Merged
tulsi-builder merged 7 commits into
mainfrom
tulsi/sidebar-polish
Apr 15, 2026
Merged

Sidebar polish: search copy, dividers, project reorder, fix DnD#8568
tulsi-builder merged 7 commits into
mainfrom
tulsi/sidebar-polish

Conversation

@tulsi-builder
Copy link
Copy Markdown
Collaborator

Summary

  • Search copy: Changed search placeholder to "Search conversations" in sidebar and session history (EN + ES)
  • Dividers removed: Replaced horizontal rules between nav/projects/recents with increased section header padding (pt-2pt-4) for cleaner visual separation
  • Project reorder: Added drag-and-drop reordering of projects in sidebar via reorderProjects store method with localStorage persistence
  • Auto-expand on drop: Collapsed projects auto-expand when a chat is dropped into them
  • Fix HTML5 DnD in Tauri: Set dragDropEnabled: false in tauri.conf.json — macOS native drag handler was intercepting internal drag events after dragstart, preventing dragover/drop from reaching JavaScript. File attachment drops from Finder still work via HTML5 DnD fallback in useAttachmentDropTarget

Test plan

  • Sidebar search placeholder says "Search conversations"
  • Session History search placeholder says "Search conversations"
  • No horizontal dividers between sidebar sections; clear spacing between Projects/Recents headers
  • Drag a chat from Recents onto a project header — chat moves into project, project auto-expands if collapsed
  • Drag a chat from a project onto Recents — chat unassigned from project
  • Drag a project header onto another project — projects reorder, order persists across reload
  • Drag a file from Finder into chat input — attachment still works
  • Sidebar collapse/expand animations still smooth

🤖 Generated with Claude Code

tulsi-builder and others added 3 commits April 15, 2026 15:51
- Change search placeholder to "Search conversations" in sidebar and
  session history (EN + ES locales)
- Remove horizontal dividers between nav/projects/recents sections,
  increase section header padding for visual separation
- Add drag-and-drop project reordering in sidebar with reorderProjects
  store method and localStorage persistence
- Auto-expand project when a chat is dropped into it
- Fix HTML5 drag-and-drop in Tauri by setting dragDropEnabled to false;
  native macOS drag handler was intercepting internal drag events after
  dragstart, preventing dragover/drop from reaching JavaScript

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The previous e.target !== e.currentTarget check always returned true
because drags originate on child elements inside ProjectSection, so
project reorder data was never set. Now checks whether text/x-session-id
is already present in the dataTransfer (set by chat row dragStart) to
distinguish chat drags from project reorder drags.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1dd82e8c6b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/goose2/src/features/projects/stores/projectStore.ts Outdated
Comment thread ui/goose2/src/features/projects/stores/projectStore.ts Outdated
tulsi-builder and others added 3 commits April 15, 2026 15:57
When fromIndex < toIndex, removing the source item shifts all subsequent
indices down by one. Adjust insertAt accordingly so the project lands
before the drop target, matching the visual indicator position.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add a Tauri command that writes updated order values to each project's
project.json file. The frontend calls it after every reorder so the
order survives app restart (list_projects sorts by the order field).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8023fca105

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/goose2/src/features/projects/stores/projectStore.ts
ChatView sorts projects by .order, so stale order fields after a
sidebar drag would show the old sequence until fetchProjects reloads.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@tulsi-builder tulsi-builder enabled auto-merge April 15, 2026 23:20
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d67083c692

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

return state;
const [moved] = projects.splice(fromIndex, 1);
// When dragging down, removing the source shifts the target index
const insertAt = fromIndex < toIndex ? toIndex - 1 : toIndex;
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Allow dropping a project after the last row

The new reorder index calculation always inserts before the hovered target, but the UI only exposes targets on existing project rows. That means there is no drop target representing the end of the list, so users cannot directly move a project to the bottom (for example, dragging A onto last row D in [A,B,C,D] results in [B,C,A,D], not [B,C,D,A]). Add an explicit end-of-list drop zone or special-case last-row drops to support placing items at the end.

Useful? React with 👍 / 👎.

});
const projects = get().projects;
persistProjects(projects);
void apiReorderProjects(projects.map((p, i) => [p.id, i]));
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Handle backend reorder failures instead of dropping promise

This dispatches the persistence call with void and no error handling, so any reorder_projects failure (e.g., write failure or project disappearing during the loop) is silently ignored while Zustand/localStorage keep the optimistic order. That leaves the session showing one order until restart, then reverting from disk without feedback. Make this action async (or attach a catch) so failures can be surfaced and state can be retried/reconciled.

Useful? React with 👍 / 👎.

@tulsi-builder tulsi-builder added this pull request to the merge queue Apr 15, 2026
Merged via the queue into main with commit 8b2c6e0 Apr 15, 2026
24 checks passed
@tulsi-builder tulsi-builder deleted the tulsi/sidebar-polish branch April 15, 2026 23:39
jh-block added a commit to sunilkumarvalmiki/goose that referenced this pull request Apr 16, 2026
…l-placeholder

* origin/main: (64 commits)
  fix: expand tool calls by default when Response Style is Detailed (aaif-goose#8478)
  fix: create logs dir before writing llm request log (aaif-goose#8522)
  fix: enable token usage tracking and configurable stream timeout for Ollama provider (aaif-goose#8493)
  fix tauri-plugin-dialog version constraint to match other plugins (aaif-goose#8542)
  call goose serve from tauri frontend via goose-acp client (aaif-goose#8549)
  failed the script when bundle:default fails and cleanup "alpha"  (aaif-goose#8580)
  pass globally unique conversation identifier as sessionId in databricks api call (aaif-goose#8576)
  fix: use sqlx chrono decode for thread timestamps instead of manual parsing (aaif-goose#8575)
  docs: remove stale gemini-acp references (aaif-goose#8572)
  show individual untracked files in git changes widget (aaif-goose#8574)
  fix: update publishing flow to include new sdk dir (aaif-goose#8573)
  fix: remove double border on content in chat (aaif-goose#8545)
  chore(goose2): `just goose2 <command>` with the addition of `just goose2 kill` (aaif-goose#8570)
  Lifei/oltp data (aaif-goose#8458)
  Sidebar polish: search copy, dividers, project reorder, fix DnD (aaif-goose#8568)
  remove the workflow_dispatch check (aaif-goose#8563)
  fix: one more rename (aaif-goose#8562)
  fix(desktop): accept self-signed certs from configured external goosed host (aaif-goose#8400)
  alexhancock/npm-bumps (aaif-goose#8557)
  Remove npm publish from release for now (aaif-goose#8558)
  ...
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.

2 participants