Skip to content

Frihet ERP: Initial extension submission - #33017

Open
berthelius wants to merge 6 commits into
raycast:mainfrom
berthelius:ext/frihet
Open

berthelius wants to merge 6 commits into
raycast:mainfrom
berthelius:ext/frihet

Conversation

@berthelius

@berthelius berthelius commented Nov 1, 2026 •

Copy link
Copy Markdown

Description

Initial submission of Frihet ERP with five read-only Raycast commands: Business Brief, Search Invoices, Search Clients, Search Products, and Switch Workspace & Clear Cache. Commands use a Frihet API key to read the REST API and open verified web routes for further actions.

The brief separates draft, issued and marked-paid invoices, keeps different currencies separate, and identifies incomplete coverage. Unpaid amounts are nominal invoice totals; actual balances cannot be inferred without partial-payment data. It does not claim bank reconciliation or fiscal submission acceptance.

Store review follow-up

  • Replaced all five metadata previews with genuine captures from the extension running in Raycast 2.12.0.0 on macOS, using an existing synthetic testing workspace. Each PNG is 2000×1250 on the same dark background; no personal workspace records or credentials are shown.
  • Removed src/__tests__/, test and verification scripts, scripts/verify-live-raycast-flows.mjs, the verification receipt, and the test-only React dependency from the Store package. Regression tests remain in the standalone repository branch.
  • Native testing found and fixed superseded workspace loads showing a 499 error, stale cache on invalid credentials, an incorrect API-key settings link, and UTC dates at local midnight. Financial calculations are unchanged; command details now use readable amount-source labels.

Validation

  • Standalone regression suite: 23 passed, including invalid-credential cache isolation and local-midnight/date override coverage.
  • Store package: Raycast build/TypeScript, lint, manifest, icons and metadata validation passed locally.
  • Native Raycast: all five commands loaded the synthetic workspace; 10 invoices, 5 clients and 5 products. Invoice search/status filtering, product search and repeated cache purge were exercised. The brief reported complete coverage of the inspected demo resources.
  • Screenshots: five distinct PNG files, dimensions and copies checked. Captures are of the actual app; no UI or dataset was generated for the images. Capture Window requested a new Screen Recording permission, so the capture route used direct native app-window screenshots plus deterministic framing rather than Save to Metadata.

NEW: formatAmountSource — searched provenance|formula|derived_from_items; existing formatProvenancedAmount formats monetary values, so this shared helper only supplies readable source labels for invoice and brief details.

Screenshots

The five captures are in extensions/frihet/metadata/ and visible in the PR image diff.

Checklist

  • Read the extension and publishing guidelines.
  • Built and tested the distribution in Raycast.
  • Kept runtime assets separate from Store metadata.
  • Used synthetic data for all Store captures.

- fix(manifest): align author handle with logged in raycast user viktor_berthelius
- docs(metadata): update Business Brief screenshot and add Switch Workspace isolation view
- feat(raycast): add official ray build/lint, remove admin harness from extension repo, and verify two-company isolation
- feat(raycast): official Frihet Raycast extension alpha with canonical brief contract & live verification
@raycastbot raycastbot added new extension Label for PRs with new extensions platform: macOS labels Nov 1, 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.

@berthelius berthelius changed the title Add frihet extension Frihet ERP: Initial extension submission Nov 1, 2026
@berthelius
berthelius marked this pull request as ready for review November 1, 2026 12:15
@greptile-apps

greptile-apps Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The reviewed changes appear safe to merge; no new actionable issue remains.

Summary

Frihet ERP adds five read-only Raycast commands for business briefs, invoices, clients, products, and workspace checks.

The latest changes:

  • Business Brief separates invoice activity and flags records that need review.
  • Invoice search filters results and opens full invoice details.
  • Client search finds records and shows recent CRM activity.
  • Product search filters the catalogue and shows pricing details.
  • Raycast commands connect to a Frihet workspace and clear its cached data.

No new actionable issues were found. All supplied previous threads were unnumbered and their reported problems are addressed in the current code.

Reviews (4) · Last reviewed commit: "chore(frihet): capture all five commands..." · Reviewed by Greptile

Comment thread extensions/frihet/src/lib/types.ts Resolved
berthelius pushed a commit to berthelius/frihet-raycast that referenced this pull request Nov 1, 2026
- fix(review): address greptile review findings on PR raycast#33017
- docs: add store review status badge pointing to raycast#33017

@0xdhrv 0xdhrv left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Hey @berthelius 👋

Thanks for contributing Frihet ERP 🔥 The read-only scope and tenant-isolation safeguards are welcome.

Blocking

  • Please replace all five images in metadata/ with captures of the extension running in Raycast, using Window Capture → Save to Metadata. The current images appear to be custom-rendered previews: the outlined list selections, back buttons, and literal RET / CMD+K footer labels do not match native Raycast controls. Please include at least two genuine captures with sample data.
  • Please remove src/__tests__/ from the Store submission; keep the regression tests in your own repository.
  • Please remove the test and verification scripts from package.json and scripts/verify-live-raycast-flows.mjs. Keep any test-only dependencies outside the Store package and regenerate the lockfile if needed.
  • Please move live-verification-receipt.json out of the extension folder. Review evidence belongs in the PR or your own repository, rather than the Store package.

As mentioned in our screenshots docs here ↗

When the blocking items are done, please press Ready for review.

Feel free to reach me here or on Slack if anything is unclear.

@0xdhrv
0xdhrv marked this pull request as draft November 9, 2026 20:22
@0xdhrv 0xdhrv self-assigned this Nov 9, 2026
…eipt from Store package

Keep regression tests, live verification scripts, and verification receipts in
berthelius/frihet-raycast per @0xdhrv Store review on PR raycast#33017. Retain only
standard Raycast Store scripts and dependencies and regenerate package-lock.json.

Agent: gemini
Handle invalid credentials and superseded requests safely, open the API-key settings route, use the local calendar date, and present amount sources in plain language.

Agent: codex
Use genuine Raycast macOS window captures, centered on a consistent 2000x1250 dark canvas. No personal workspace data or credentials are shown.

Agent: codex
@berthelius
berthelius marked this pull request as ready for review November 13, 2026 00:26
@berthelius

Copy link
Copy Markdown
Author

Thanks @0xdhrv. The Store package now excludes the regression tests, test/verification scripts, test-only dependency and verification receipt; those remain in the standalone repository.

All five metadata images have been replaced with genuine captures of the extension running in Raycast 2.12.0.0 on macOS, connected to a synthetic testing workspace. The PNGs are framed consistently at 2000×1250. No personal workspace data or API credentials are included. Raycast’s Capture Window requested a new Screen Recording permission, so these use direct captures of the real native app window plus deterministic framing, rather than Save to Metadata. No interface controls were recreated.

Native QA also caught and fixed a cancelled workspace-load race, cache cleanup when credentials become invalid, the API-key settings link and the brief’s calendar date at local midnight. The standalone suite passes 23 tests; the Store package passes Raycast build and lint.

The five commands have been exercised against the test workspace, including invoice search/filtering, product search and repeated cache purge. Ready for another review.

This branch has not been deployed

No deployments
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 platform: macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants