Skip to content

Add visigrid extension - #30130

Open
robertdoneill wants to merge 13 commits into
raycast:mainfrom
robertdoneill:ext/visigrid
Open

Add visigrid extension#30130
robertdoneill wants to merge 13 commits into
raycast:mainfrom
robertdoneill:ext/visigrid

Conversation

@robertdoneill

@robertdoneill robertdoneill commented Aug 10, 2026

Copy link
Copy Markdown

Description

Screencast

Checklist

- Store metadata: author handle + two 2000x1250 screenshots
- Lint toolchain: ESLint 9 flat config + @raycast/eslint-config v2
- Store submission prep: README, CHANGELOG, metadata dir, lint --fix
- Quick Calc: normalize real-world tables (Slack spacing, email money formats)
- Quick Calc: detect TSV clipboards (cells copied from apps arrive tabbed)
- Quick Calc form: show what the clipboard grid holds before evaluating
- Quick Calc: read the formula from onSubmit values, not controlled state
- Raycast extension v1: Quick Calc, Peek Spreadsheet, Open Workbook
@raycastbot raycastbot added the new extension Label for PRs with new extensions label Aug 10, 2026
@raycastbot

Copy link
Copy Markdown
Collaborator

Congratulations on your new Raycast extension! 🚀

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 15 business days.

Once the PR is approved and merged, the extension will be available on our Store.

@greptile-apps

greptile-apps Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds a VisiGrid extension with formula evaluation, spreadsheet previews, and workbook opening. The latest changes bound filesystem work, widen Spotlight date queries, use generated manifest types, and allow literal formulas to run without clipboard data.

Confidence Score: 4/5

The PR is not yet safe to merge because the spreadsheet fallback can still omit the newest files needed to fill the displayed list.

The unrestricted fallback truncates unordered Spotlight output before modification times are read, so users with a large archive and fewer than 50 files from the last three years can receive an incorrectly ordered and incomplete newest-files list.

Files Needing Attention: extensions/visigrid/src/spreadsheet-files.ts

Important Files Changed

Filename Overview
extensions/visigrid/src/spreadsheet-files.ts Adds bounded batched stat processing and widening date windows, but the final fallback can still violate newest-first ordering by truncating unordered Spotlight output before stat.
extensions/visigrid/src/quick-calc.tsx Removes the empty-clipboard precondition and uses generated command argument types; no remaining blocking failure is established.
extensions/visigrid/src/vgrid.ts Resolves the CLI from preferences or standard Homebrew paths and uses the generated Preferences type.
extensions/visigrid/package.json Defines the new extension’s commands, metadata, preference, and dependencies without an accepted blocking issue.
extensions/visigrid/src/peek.tsx Implements spreadsheet previews through the shared discovery and VisiGrid execution helpers.
extensions/visigrid/src/open-workbook.tsx Implements recent-workbook discovery and actions for opening or locating selected files.
Prompt To Fix All With AI
### Issue 1
extensions/visigrid/src/spreadsheet-files.ts:88
**Fallback Cap Breaks Recency Ordering**

If fewer than 50 spreadsheets were modified within the last three years but more than 2,000 older spreadsheets match, this slices unordered `mdfind` output before reading modification times. A newer file beyond the arbitrary cutoff is then omitted while an older selected file appears in the newest-first results.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (4): Last reviewed commit: "Discovery: widening date windows, bounde..." | Re-trigger Greptile

Comment thread extensions/visigrid/src/quick-calc.tsx
Comment thread extensions/visigrid/src/spreadsheet-files.ts Outdated
Comment thread extensions/visigrid/package.json
Comment thread extensions/visigrid/src/vgrid.ts Outdated
Comment thread extensions/visigrid/src/spreadsheet-files.ts Outdated
Comment thread extensions/visigrid/src/spreadsheet-files.ts
if (paths.length >= limit) break;
}
if (paths.length < limit) {
paths = (await mdfindPaths(NAME_QUERY)).slice(0, FALLBACK_CAP);

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.

P1 Fallback Cap Breaks Recency Ordering

If fewer than 50 spreadsheets were modified within the last three years but more than 2,000 older spreadsheets match, this slices unordered mdfind output before reading modification times. A newer file beyond the arbitrary cutoff is then omitted while an older selected file appears in the newest-first results.

Prompt To Fix With AI
This is a comment left during a code review.
Path: extensions/visigrid/src/spreadsheet-files.ts
Line: 88

Comment:
**Fallback Cap Breaks Recency Ordering**

If fewer than 50 spreadsheets were modified within the last three years but more than 2,000 older spreadsheets match, this slices unordered `mdfind` output before reading modification times. A newer file beyond the arbitrary cutoff is then omitted while an older selected file appears in the newest-first results.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

@robertdoneill

Copy link
Copy Markdown
Author

The cap is intentional and documented at its definition. The last three review rounds are in tension: statting every match is unbounded work (flagged in round 2), and any pre-stat truncation is imperfect ordering (flagged now). The fallback only triggers when fewer than 50 spreadsheets were modified in the past three years and more than 2,000 older files match — in that corner, exact mtime ordering among multi-year-old files has no user value, and bounded latency does. Happy to change the tradeoff if the Raycast team prefers a different one.

@robertdoneill
robertdoneill marked this pull request as ready for review August 11, 2026 12:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new extension Label for PRs with new extensions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants