Commit Graph

21 Commits

Author SHA1 Message Date
Arjun Patel d60b948262 chore: bump version to v1.9.0 (#303) 2026-06-21 11:48:33 -07:00
Arjun Patel bfe53b46cf chore: bump desktop version to v1.8.0 (#293) 2026-06-20 17:27:38 -07:00
Arjun Patel c11c5074ce chore: bump version to v1.7.1 (#285) 2026-06-13 12:18:21 -07:00
Arjun Patel 9249cb4107 chore: bump desktop to v1.7.0 (#281) 2026-06-12 12:52:05 -07:00
Arjun Patel 9e3a30f74e bump version (#276) 2026-06-11 15:38:05 -07:00
Arjun Patel ca3bbf204e fix: text compose papercuts (#270)
* make fixes

* cleanup
2026-06-11 12:08:34 -07:00
Arjun Patel cf94003b3f chore: bump desktop to v1.5.2 (#257) 2026-06-10 16:38:22 -07:00
Arjun Patel e886c56dd9 fix: prebundle deps before loading electron app (#254)
Electron Forge restarts the renderer process without fully restarting the Vite dev server, so the browser gets a fresh page with a new hash but the Vite server still has the old pre-bundle cache — mismatch causes the 504 outdated error every other time we launch.
2026-06-09 11:11:01 -07:00
Arjun Patel 946d141897 infra: cleanup tsconfig and add typecheck (#253) 2026-06-09 10:47:48 -07:00
Arjun Patel c1f5b6c8c1 Implement membership notifications and deep-link handling for Electron desktop app (#246)
* security: add cors for desktop app scheme

* Revert "security: add cors for desktop app scheme"

This reverts commit d450fced75.

* ignore tags

* add commands for windows dev

* cleanup unnecessary parts of main desktop process

* resolve lint errors

* add format command for go

* fix: send email on new member joining

Closes #228

* add proper deeplinking on desktop

The desktop app was merely focusing before, but now it will navigate to the proper route

* honor email notifications setting

* prevent sending email when no recipients
2026-06-09 08:04:18 -07:00
Arjun Patel 99622743c9 chore: bump desktop version to v1.5.1 (#234)
* create runbook for deployments

* create runbook for deployments
2026-06-02 08:40:10 -07:00
Arjun Patel a8a0b7db1b infra: add linting and formatting for js projects (#230)
* wip

* wip

* wip

* format

* wip(mobile): lint and format

* cleanup

* nits

* nits

* idiomatic react

* nit

* format all root files
2026-06-02 07:44:24 -07:00
Arjun Patel 613a350292 chore: bump versions 2026-05-30 11:12:08 -07:00
Arjun Patel 2eba834838 feat: use inline markdown editor (#227)
* Use inline WYSIWYG markdown editor for long text messages

Desktop: replace the Write/Preview tab toggle in the compose card with
MDXEditor, an inline WYSIWYG that renders markdown as you type (Obsidian/
Notion feel) and round-trips plain markdown, matching how particle content
is stored. Immersive mode is unchanged — short, plain notes still get the
centered large-type textarea, and ⌘+M still drops into the rich editor.
Shortcut handling moves to the capture phase so ⌘+Enter / Esc win over the
editor's own key handling.

Mobile: render markdown on the display side via react-native-marked's
useMarkdown hook (no FlatList, so it nests cleanly in the existing
ScrollView). Mirrors desktop's immersive-vs-card logic: short plain notes
stay centered; anything with markdown renders formatted instead of showing
raw syntax. Composer stays plain text.

https://claude.ai/code/session_019DU6V5z6Nr4Vu7b1fBDnq4

* cleanup desktop app description

* Fix markdown editor rendering and pasted-link duplication

- Restore heading/list typography in the editor: MDXEditor relies on the
  browser's default styles for <h1>/<ul> sizing, which Tailwind's Preflight
  resets. Markdown shortcuts fired but the block looked unchanged. Style the
  editor content explicitly, mirroring the rendered display.
- Keep pasted/typed URLs as plain text (linkPlugin disableAutoLink) so they
  don't become `[url](url)`, which duplicated both the URL and its preview
  card. Also dedupe extractUrls defensively so a repeated URL yields one card.

https://claude.ai/code/session_019DU6V5z6Nr4Vu7b1fBDnq4

* Complete GFM support: tables, task lists, strikethrough

Editor: add tablePlugin so markdown tables round-trip and render. Task
lists (`- [ ]`), strikethrough, code (inline + fenced), headings, lists,
quotes, and links already work via listsPlugin/core/markdownShortcut. CSS:
suppress the disc bullet on task-list items (they draw their own checkbox)
and style tables.

Display: render task-list checkboxes (no stray bullet), GFM tables, and
strikethrough so the read view matches what the editor produces.

https://claude.ai/code/session_019DU6V5z6Nr4Vu7b1fBDnq4

* Unify markdown on one engine (Milkdown Crepe)

Replace the two-engine setup (MDXEditor for editing + react-markdown for
display) with a single Crepe-based component used for both. Editing is inline
WYSIWYG with full GFM that actually works — task lists, tables, and code
blocks via type-to-create / the slash menu — and read-only mode renders the
exact same way, so write and read can no longer drift (the root cause of the
heading/list/table/checkbox bugs).

- markdown-editor.tsx: Crepe wrapper supporting edit + readOnly, themed to the
  glass card via --crepe-* variable overrides (scoped to .milkdown so they win
  over frame-dark's own definitions).
- text-particle-view.tsx: render the message card with the read-only editor;
  drop the react-markdown component map.
- Remove now-unused deps: @mdxeditor/editor, react-markdown, remark-gfm,
  rehype-highlight, highlight.js.

The compose immersive mode (short, centered plain text) is unchanged.

https://claude.ai/code/session_019DU6V5z6Nr4Vu7b1fBDnq4

* Fix Crepe slash-menu transparency and match the app font

The floating menus (slash menu, toolbar, link tooltip) portal to <body>,
outside .milkdown, so the --crepe-* overrides never reached them and their
background fell back to transparent — unreadable over the content. Declare the
palette on those selectors too, keep --crepe-color-surface (near-)opaque so the
menus read clearly, and add a backdrop blur.

Also set --crepe-font-default/title to inherit (and a monospace stack for code)
so the editor uses the application font instead of Crepe's bundled Noto faces.

https://claude.ai/code/session_019DU6V5z6Nr4Vu7b1fBDnq4

* Give the slash menu the full card by padding the editor, not the card

Crepe appends the slash menu to .milkdown and (in this version) doesn't expose
a way to portal it to <body>, so it's clipped by the editor's scroll box. That
box sat inside the card's p-5 padding, so the menu cut off at the padding edge.
Move the padding onto the ProseMirror content instead and drop the redundant
inner scroll container, so the menu's clipping bounds become the full card.

https://claude.ai/code/session_019DU6V5z6Nr4Vu7b1fBDnq4

* tweaks

* mobile: render markdown text consistent with desktop

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-05-30 11:10:49 -07:00
Arjun Patel 832ebe9376 chore: bump version 2026-05-28 13:08:04 -07:00
talksik 91abacc2de chore: bump version 2026-05-28 10:30:44 -07:00
Arjun Patel 64f02d1c3b feat: ship a web app (#218)
* feat(orion): add endpoint for link metadata

* refactor: cleanup comments

* wip: plumbing for building a web app

* setup deployment materials for web app

* fix(web): favicon
2026-05-26 15:37:35 -07:00
talksik a564ea819b bump version 2026-05-17 16:52:23 -07:00
talksik 1a08bfac8c chore: bump version 2026-04-30 17:57:14 -07:00
talksik ef7d5bfa59 fix desktop playback aspect ratio for mobile 2026-04-29 18:17:45 -07:00
Arjun Patel 3a11a82cd3 refactor: organize desktop vs. mobile into separate folders 2026-04-29 08:42:56 -07:00