Skip to content

feat: add file-based formatting, chat image support, and parser manifest versioning - #759

Open
IzonIcy wants to merge 4 commits into
athasdev:mainfrom
IzonIcy:feat/file-formatting-chat-images-parser-cache
Open

IzonIcy wants to merge 4 commits into
athasdev:mainfrom
IzonIcy:feat/file-formatting-chat-images-parser-cache

Conversation

@IzonIcy

@IzonIcy IzonIcy commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • File formatting: Implement file-based output method for generic formatters (read formatted content from file when output_method != stdout)
  • Chat images: Support pasting and sending images in AI chat (convert pasted images to ImageContent, preview before sending)
  • Parser cache: Fetch version from manifest JSON and compute SHA-256 checksum (auto-populate version/checksum when caching parsers to IndexedDB)

Changes

  • src-tauri/src/commands/editor/format.rs: File-based formatting support
  • src/features/ai/components/input/chat-input-bar.tsx: Image paste handling and preview
  • src/features/ai/components/chat/ai-chat.tsx: Handle images in processMessage
  • src/features/ai/types/ai-chat.types.ts: Export ImageContent interface, update onSendMessage signature
  • src/features/editor/lib/wasm-parser/loader.ts: Manifest version fetching and SHA-256 checksum

The fuzzy scorer and file filtering used by quick open, global search,
AI mentions, and the file explorer had no direct tests, nor did the tab
display name calculation that disambiguates buffers sharing a filename.

Adds focused unit tests for fuzzyScore scoring tiers, density
rejection, file ignoring rules, recent-file workspace filtering, and
display name disambiguation including virtual buffers.

Writing the path shortener tests surfaced a small bug: absolute paths
produced an empty first segment after splitting on "/", so fallback
display names rendered with a double slash like "..//workspace/x.ts".
Empty segments are now dropped when collecting path segments.
…est versioning

- File formatting: implement file-based output method for generic formatters
  (read formatted content from file when output_method != stdout)

- Chat images: support pasting and sending images in AI chat
  (convert pasted images to ImageContent, preview before sending)

- Parser cache: fetch version from manifest JSON and compute SHA-256 checksum
  (auto-populate version/checksum when caching parsers to IndexedDB)
Copilot AI lite review requested due to automatic review settings September 20, 2026 23:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

- Fix processMessage call signature in ai-chat.tsx
- Fix computeSha256 Uint8Array type in loader.ts
- Run bun fix for formatting
@IzonIcy
IzonIcy force-pushed the feat/file-formatting-chat-images-parser-cache branch from 82e56b6 to 386d111 Compare September 21, 2026 00:18
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