Commit Graph

241 Commits

Author SHA1 Message Date
Julien Calixte
006cd63388 feat: paginate repo list with infinite scroll
Load 30 repos at a time instead of 100 at once, showing data sooner.
Adds v-infinite-scroll to RepoList.vue to fetch subsequent pages on scroll.
2026-04-05 11:56:36 +02:00
Julien Calixte
b003a3e008 perf: move PouchDB/IndexedDB operations to a Web Worker
All database reads and writes now run off the main thread via a
dedicated worker, eliminating IndexedDB overhead from the frame budget.

- Create data.worker.ts exposing the Data class via Comlink
- Refactor data.ts to export a Comlink-wrapped proxy and a standalone
  generateId() pure function (workers can't expose sync methods cleanly)
- Update all 10 call sites to import generateId directly instead of
  calling data.generateId()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 11:27:45 +02:00
Julien Calixte
52d7c84bd0 perf: prevent FPS drops during navigation in FluxNoteView
- Narrow backlinks watcher from entire store to store.files only,
  reducing trigger count from ~8 to 2 per navigation
- Defer computation start by 300ms so it runs after the 250ms view
  transition animation completes
- Yield to the browser between each file iteration using
  scheduler.yield() (with setTimeout fallback) to avoid blocking frames

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 11:14:02 +02:00
Julien Calixte
20e9538983 feat: mv profile to footer 2026-03-28 20:24:08 +01:00
Julien Calixte
5f48aa5690 chore: lint and fmt 2026-03-28 09:38:55 +01:00
Julien Calixte
32f79785a8 fix: prevent stacking a duplicate of the main note when clicking a self-link 2026-03-21 22:59:10 +01:00
Julien Calixte
ddabe5082d feat: show skeleton loaders while ATProto identity resolves
- Show skeleton in PublicNoteView and StackedPublicNote while note
  content is pending author resolution
- Show skeleton h1 in PublicNoteListByDidView while author loads
- Show skeleton in SignInAtproto until auth state is known
- Load cached session from IndexedDB before OAuth restore so the
  homepage resolves immediately without waiting for network
2026-03-19 18:12:52 +01:00
Julien Calixte
944b128894 feat: add icons, better suited than emojis 2026-03-17 23:43:29 +01:00
Julien Calixte
163e3ee756 feat: shorten DID in public note URLs by stripping did:plc: prefix
URLs are now /pub/<base32id>/rkey instead of /pub/did:plc:<base32id>/rkey.
Non-plc DIDs keep their method prefix (e.g. web:example.com).
2026-03-17 01:33:51 +01:00
Julien Calixte
40c461e150 chore: move api to remanso.space 2026-03-17 00:53:58 +01:00
Julien Calixte
330bc5b41d fix: scroll to stacked note on title click
- Pass didrkey (with colons) instead of classNameId to scrollToFocusedNote in StackedPublicNote, so findIndex matches the URL-stored ID
- Revert includes() to strict === in findIndex for semantic correctness
2026-03-16 18:49:21 +01:00
Julien Calixte
e9f37a9b8e fix: preserve search params when clearing OAuth callback hash 2026-03-10 16:10:08 +01:00
Julien Calixte
97c6f01e1c fix: skip following feed fetch when all tab is active 2026-03-10 16:06:35 +01:00
Julien Calixte
cb15eac854 feat: use POST /notes/feed for following tab with server-side DID filtering 2026-03-10 15:53:25 +01:00
Julien Calixte
9b6bc62044 feat: add following tabs 2026-03-10 15:44:35 +01:00
Julien Calixte
c721338dc0 fix: atproto oauth dev redirect, tab isolation, and concurrent load guard
- Use buildLoopbackClientId(window.location) for dev to include port in redirect URI
- Bind Vite dev server to 127.0.0.1 explicitly
- Remove scope override in signInRedirect (use metadata default)
- Clear OAuth callback params from URL after session restore
- Replace follows badge with DaisyUI tabs (All / Following)
- Use separate PublicNoteList instances per tab to isolate v-infinite-scroll state
- Add isLoading guard in onLoadMore to prevent concurrent fetches
2026-03-10 14:18:41 +01:00
Julien Calixte
8843d67a80 feat: create atproto oauth login 2026-03-10 12:27:35 +01:00
Julien Calixte
1dffab12df fix: no : in class names 2026-02-21 19:37:36 +01:00
Julien Calixte
1ad59addf0 fix: note class name 2026-02-19 23:07:45 +01:00
Julien Calixte
801832c6e5 feat: handle absolute internal links for stacked notes 2026-02-19 21:32:37 +01:00
Julien Calixte
8da5dcc50f fix: scroll both body and documentElement for cross-browser compatibility 2026-02-19 19:19:49 +01:00
Julien Calixte
4a06c11b0a fix: use window scroll API for cross-browser compatibility (Safari) 2026-02-19 19:03:06 +01:00
Julien Calixte
5bad66884f fix: scroll to note 2026-02-19 17:36:44 +01:00
Julien Calixte
103b23884f refacto: use microcosm endpoint and change types 2026-02-17 09:30:27 +01:00
Julien Calixte
f017b4f0ff fix: remove frontmatter content before rendering 2026-02-17 01:12:47 +01:00
Julien Calixte
1644f241d4 chore: fix ts warning 2026-02-15 21:21:56 +01:00
Julien Calixte
8e754021bd fix: better mobile usage 2026-02-15 19:43:22 +01:00
Julien Calixte
ff8795581e feat: add public notes by author page
Extract note-list fetching into usePublicNoteList composable, add
/pub/:did route to view notes from a single author, and make author
aliases clickable links in both the note list and note view.
2026-02-15 13:18:59 +01:00
Julien Calixte
bf73f08cb2 refactor: unify NOTE_WIDTH constant with --note-width CSS variable
Read note width from the CSS custom property at runtime (cached on first
call) instead of duplicating the value in a JS constant.
2026-02-15 09:09:20 +01:00
Julien Calixte
b03626bb1a fix: note width. TODO: sync NOTE_WIDTH js constant to css variable --note-width 2026-02-15 08:40:58 +01:00
Julien Calixte
5c70232fba deps: upgrade 2026-02-15 08:00:11 +01:00
Julien Calixte
d1b0d51ec9 feat: add stacked public notes 2026-02-15 00:23:57 +01:00
Julien Calixte
77c1f41b6d refactor: extract useResizeContainer hook from useNoteView 2026-02-14 23:40:43 +01:00
Julien Calixte
cec1b1eda7 rebranding to Remanso 2026-02-14 12:18:23 +01:00
Julien Calixte
44f5663f50 feat: add font customization 2026-02-14 02:00:54 +01:00
Julien Calixte
683187b4d1 feat: render some real content 2026-02-11 03:12:52 +01:00
Julien Calixte
e316d8080b feat: saving on toggle 2026-01-20 23:02:33 +01:00
Julien Calixte
9f06c97028 fix: smaller size for todo title 2026-01-19 10:55:36 +01:00
Julien Calixte
3e417ca271 fix: Google Font
feat: add a todo view
2026-01-19 00:37:55 +01:00
Julien Calixte
b6554282f7 fix: shadow overlay 2026-01-09 23:43:19 +01:00
Julien Calixte
5eec8f036e fix: mermaid in dark mode as the background color is already dark 2025-12-03 15:58:56 +01:00
Julien Calixte
d4eb45d6e1 feat: add a error message when note is not found with the absolute path for better debugging. 2025-09-27 21:19:17 +02:00
Julien Calixte
dc94006e21 deps: upgrade deps 2025-08-02 03:08:46 +02:00
Julien Calixte
c07964844d perf: jit initialize mermaid 2025-07-12 22:31:06 +02:00
Julien Calixte
dd5d4b04f7 perf: init shikiji only when needed and limit langs 2025-07-12 22:26:07 +02:00
Julien Calixte
2ea1ec1587 refacto: better const naming 2025-07-12 17:39:34 +02:00
Julien Calixte
b93dfbd824 perf: run on nextTick only if necessary 2025-07-12 17:39:00 +02:00
Julien Calixte
178d80a872 feat: scroll to main on breadcrumb link 2025-07-09 23:24:52 +02:00
Julien Calixte
06ed2e4223 fix offset padding 2025-07-06 17:26:46 +02:00
Julien Calixte
8ec32552a5 fix: 🐞 flux note
reload page
2025-06-14 16:02:18 +02:00