Commit graph

2721 commits

Author SHA1 Message Date
Rohan Verma
df8a12217c
Merge pull request #1273 from Tacite243/perf/lazy-load-document-content-1242
perf: lazy-load DocumentTabContent to reduce initial dashboard bundle…
2026-04-20 21:00:59 -07:00
Rohan Verma
517c40f060
Merge pull request #1272 from mvanhorn/osc/1247-functional-setIsDark
fix(theme-toggle): use functional setIsDark in toggleTheme (#1247)
2026-04-20 20:59:04 -07:00
Rohan Verma
6bd4ffb98e
Merge pull request #1268 from aaron-seq/fix/move-open-reset-effects-to-onOpenChange
fix(dialogs): move open-reset effects into onOpenChange handlers
2026-04-20 20:58:27 -07:00
Matt Van Horn
8cf957b301
fix(theme-toggle): use functional setIsDark in toggleTheme (#1247)
Closes #1247.

toggleTheme's previous implementation read isDark from the closure via
setIsDark(!isDark), which forced isDark into the useCallback dependency
array. As a result toggleTheme's reference changed on every click,
invalidating any downstream memoization.

Switched to the functional updater setIsDark((prev) => !prev) and
dropped isDark from the dependency list. The sibling setCrazyLightTheme
and setCrazyDarkTheme callbacks already use this pattern (they pass
concrete values to setIsDark without listing isDark in deps), so this
keeps the three theme callbacks consistent.

No observable behavior change — clicking the theme toggle still flips
isDark. The callback reference is now stable between clicks, which is
also safer under concurrent updates per React's standard guidance.
2026-04-20 01:58:20 -07:00
Tacite243
be2e011375 perf: lazy-load DocumentTabContent to reduce initial dashboard bundle size 2026-04-19 14:50:55 +02:00
Aaron Sequeira
2d4adcea64 fix(dialogs): move open-reset effects into onOpenChange handlers 2026-04-19 16:09:34 +05:30
Matt Van Horn
c2e52fbb48
refactor(documents-sidebar): convert discarded isExportingKB state to ref
Closes #1250
2026-04-18 23:15:31 -07:00
Rohan Verma
2b2453e015
Merge pull request #1240 from AnishSarkar22/feat/resume-builder
Some checks failed
Build and Push Docker Images / tag_release (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Has been cancelled
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Has been cancelled
feat: resume builder
2026-04-17 13:41:32 -07:00
Anish Sarkar
0fa32c3a10 chore: ran linting 2026-04-17 16:45:14 +05:30
Matt Van Horn
dbd1706811
fix(new-chat): remove unused _hasScrolledToCited state in source-detail-panel
The useState was declared but its value was never read in render
(only the setter was called). Each setter call scheduled a re-render
that changed nothing visible.

The actual scroll/highlight behavior is driven by hasScrolledRef
and setActiveChunkIndex; this state was effectively dead.

Closes #1249
2026-04-17 02:00:29 -04:00
DESKTOP-RTLN3BA\$punk
b613b4f9cd chore: added missed changelogs 2026-04-16 22:14:44 -07:00
Anish Sarkar
aef4c90107 refactor: update UI components for improved layout in assistant message, public chat footer, and report panel 2026-04-17 09:03:34 +05:30
Rohan Verma
c3b9d419ba
Merge pull request #1238 from xr843/ux/form-max-length
feat: add maxLength constraints to auth and settings form inputs
2026-04-16 15:51:43 -07:00
Rohan Verma
69ded37151
Merge pull request #1237 from xr843/a11y/nested-main-landmark
fix(a11y): remove nested <main> landmarks under (home) layout
2026-04-16 15:50:13 -07:00
Rohan Verma
cae137e7f8
Merge pull request #1233 from mvanhorn/osc/1092-clear-scroll-timers
fix: clear scroll-to-citation timers on panel close/unmount
2026-04-16 15:49:33 -07:00
Anish Sarkar
abf758997a feat: optimize PDF viewer performance with improved page rendering and visibility management 2026-04-16 23:44:15 +05:30
Anish Sarkar
706d5b9821 feat: enhance PDF viewer and report panel with public access handling and UI updates 2026-04-16 22:53:17 +05:30
Anish Sarkar
e2cd0557a5 feat: add public report PDF preview endpoint and update report content handling for Typst-based resumes 2026-04-16 22:51:36 +05:30
xianren
b8e663e8f4 feat: add maxLength constraints to auth and settings form inputs
Gives users immediate client-side feedback and prevents pathologically
long values from being typed. Caps match Zod schema limits where they
exist; email uses the RFC 5321 maximum.

Files touched (5):
- (home)/login/LocalLoginForm.tsx — email → 254
- (home)/register/page.tsx — email → 254
- dashboard/.../user-settings/.../ProfileContent.tsx — display name → 100
- components/settings/general-settings-manager.tsx — search space name → 100
- components/settings/roles-manager.tsx — role name (create+edit dialogs) → 100,
  role description (create+edit dialogs) → 500

Closes #948
2026-04-16 22:33:01 +08:00
xianren
3f85f2a56b fix(a11y): remove nested <main> landmarks under (home) layout
The (home)/layout.tsx already wraps children in <main>. Having another
<main> inside each child page produces nested landmarks, which is
invalid HTML and confuses screen readers.

Changed the outermost wrapper from <main> → <div> in:
- surfsense_web/app/(home)/page.tsx (homepage)
- surfsense_web/app/(home)/free/page.tsx (free AI chat landing)

Other (home) descendants (login/register/privacy/terms/changelog/
announcements/blog/contact/free/[model_slug]) were already using <div>.

Closes #1191
2026-04-16 22:30:55 +08:00
DESKTOP-RTLN3BA\$punk
2cb30c604d try: ip fix for cludflare
- Introduced AI File Sorting functionality to automatically organize documents into a smart folder hierarchy based on source, date, and topic.
- Updated README.md to include the new feature.
- Enhanced homepage components with new illustrations and descriptions for AI File Sorting.
- Refactored rate limiting logic to extract real client IPs more accurately.
2026-04-16 02:13:52 -07:00
DESKTOP-RTLN3BA\$punk
e7fba022c1 chore: bumped version to 0.0.16 2026-04-16 01:18:03 -07:00
DESKTOP-RTLN3BA\$punk
2f793e7a69 refactor: improve content extraction and encoding handling
- Enhanced Azure Document Intelligence parser to raise an error for empty or whitespace-only content.
- Updated LLMRouterService to log premium model strings more clearly.
- Added automatic encoding detection for file reading in document processors.
- Improved error handling for empty markdown content extraction in file processors.
- Refactored DocumentUploadTab component for better accessibility and user interaction.
2026-04-16 00:25:46 -07:00
DESKTOP-RTLN3BA\$punk
4a51ccdc2c cloud: added openrouter integration with global configs 2026-04-15 23:46:29 -07:00
Anish Sarkar
6037058a09 refactor: enhance PDF thumbnail loading and error handling in resume component, introducing skeleton loader and improved state management 2026-04-16 11:45:33 +05:30
Anish Sarkar
df88fcd0fb refactor: streamline PDF handling in viewer and resume components by replacing react-pdf with pdfjs-dist, enhancing loading states and error management 2026-04-16 11:23:13 +05:30
Anish Sarkar
6e7f832181 chore: remove react-pdf dependency and add pdfjs-dist for PDF handling 2026-04-16 11:10:35 +05:30
Anish Sarkar
d5a1f4ac01 fix: improve user information requirements and template handling in resume generation tool 2026-04-16 10:29:13 +05:30
Matt Van Horn
008c464660
fix: clear scroll-to-citation timers on panel close/unmount
Store setTimeout IDs in a ref and clear them when the source detail
panel closes or unmounts, preventing state updates on unmounted
components.

Fixes #1092
2026-04-15 22:00:56 -04:00
DESKTOP-RTLN3BA\$punk
ff4e0f9b62 feat: no login experience and prem tokens
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
2026-04-15 17:02:00 -07:00
Rohan Verma
87452bb315
Merge pull request #1232 from xr843/fix/clear-announcement-toast-stagger-timers
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
fix(web): clear announcement stagger timers on unmount
2026-04-15 10:47:43 -07:00
Rohan Verma
5bbb7b98cc
Merge pull request #1230 from xr843/fix/memoize-zero-provider-opts
fix(web): memoize Zero provider opts to prevent reconnect churn
2026-04-15 10:46:57 -07:00
Rohan Verma
5b8fdff6b6
Merge pull request #1229 from xr843/fix/remove-react-dom-server
fix(web): drop react-dom/server from inline-mention-editor bundle
2026-04-15 10:46:19 -07:00
Anish Sarkar
2f58b14440 fix: enhance error handling and loading states in report panel and resume generation components 2026-04-15 23:08:19 +05:30
Anish Sarkar
4d577a20a9 refactor: update PDF viewer and report card components for improved accessibility and UI consistency 2026-04-15 21:56:18 +05:30
Anish Sarkar
45752a7e73 feat: add GenerateResumeToolUI component for managing resume generation states and display 2026-04-15 21:43:00 +05:30
Anish Sarkar
06c344d66e feat: implement PDF viewer for resume previews and integrate with report panel 2026-04-15 21:42:50 +05:30
Anish Sarkar
07bd076317 feat: add content type support for reports and include new resume generation tool in dashboard 2026-04-15 21:13:56 +05:30
Anish Sarkar
15aacf1a80 feat: add react-pdf dependency and update pnpm-lock.yaml 2026-04-15 20:39:03 +05:30
Tim Ren
c03a1e177a fix(web): clear announcement stagger timers on unmount
The cleanup for the announcement-toast effect only cleared the outer
1500ms timer, leaving the per-announcement stagger timers (i * 800ms)
untracked. If the root layout unmounts during the stagger window, those
timers fire after cleanup and attempt to toast against a dead tree.

Track the inner timer ids in an array and clear them alongside the outer
timer in the effect cleanup.

Fixes #1094.
2026-04-15 20:07:20 +08:00
Tim Ren
68e6acd504 fix(web): memoize Zero provider opts to prevent reconnect churn
Wrap the opts object and derived context in useMemo so ZeroReactProvider
receives stable references across parent re-renders. Before this change
opts was rebuilt on every render of ZeroProvider, which can cause the
Rocicorp Zero client to churn its internal state / reconnect if it
compares props by reference.

Fixes #1097.
2026-04-15 20:07:12 +08:00
Tim Ren
2727aebcc6 fix(web): drop react-dom/server from inline-mention-editor bundle
Replace ReactDOMServer.renderToString with a tiny createRoot + flushSync
helper so react-dom/server is no longer pulled into the client bundle on
every chat page load. react-dom is already in the bundle (React itself
uses it), so this adds zero new runtime weight.

Fixes #1189.
2026-04-15 20:01:16 +08:00
Trevin Chow
95130d894c refactor: extract shared TYPE_ICONS into dedicated module
Move the duplicated TYPE_ICONS record from citation.tsx and
citation-list.tsx into a new type-icons.ts module so the mapping lives
in one place and both components import from the same source.

Resolves #1190
2026-04-14 23:22:29 -07:00
DESKTOP-RTLN3BA\$punk
656e061f84 feat: add processing mode support for document uploads and ETL pipeline, improded error handling ux
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
- Introduced a `ProcessingMode` enum to differentiate between basic and premium processing modes.
- Updated `EtlRequest` to include a `processing_mode` field, defaulting to basic.
- Enhanced ETL pipeline services to utilize the selected processing mode for Azure Document Intelligence and LlamaCloud parsing.
- Modified various routes and services to handle processing mode, affecting document upload and indexing tasks.
- Improved error handling and logging to include processing mode details.
- Added tests to validate processing mode functionality and its impact on ETL operations.
2026-04-14 21:26:00 -07:00
Rohan Verma
b659f41bab
Merge pull request #1225 from oscarzhou511/feat/obsidian-connector-visibility
Some checks are pending
Build and Push Docker Images / tag_release (push) Waiting to run
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Blocked by required conditions
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Blocked by required conditions
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Blocked by required conditions
feat: improve Obsidian connector visibility and desktop sync flow
2026-04-14 13:10:57 -07:00
Anish Sarkar
a74ed014cc refactor: update UI components for better accessibility and styling consistency 2026-04-14 21:50:34 +05:30
Anish Sarkar
2021f6c4b7 refactor: simplify AI sort button implementation and improve styling 2026-04-14 21:39:11 +05:30
Anish Sarkar
1714922830 refactor: improve password input layout and enhance chat thread title update logic 2026-04-14 21:13:01 +05:30
Anish Sarkar
292fcb1a2c feat: enhance model selector UI abd added github models icon 2026-04-14 20:35:16 +05:30
Anish Sarkar
8fd7664f8f Merge remote-tracking branch 'upstream/dev' into feat/token-calculation 2026-04-14 15:49:39 +05:30