Commit graph

4250 commits

Author SHA1 Message Date
CREDO23
0916c1addd remove stale ElectricSQL references from changelog and test fixtures 2026-03-24 17:07:11 +02:00
CREDO23
657f546908 fix: always render ZeroProvider, allow anon queries without 401 2026-03-24 16:59:42 +02:00
Anish Sarkar
a99791009a refactor: enhance markdown rendering with syntax highlighting and theme support 2026-03-24 20:24:30 +05:30
CREDO23
54ffdc5aad fix: always init Zero when user exists, pass auth as optional 2026-03-24 16:39:37 +02:00
CREDO23
5c98f1c717 add ZERO_MUTATE_URL and no-op mutate endpoint for zero-cache auth passthrough 2026-03-24 16:25:13 +02:00
CREDO23
0e49cc33f8 format: auto-fix via pnpm format:fix 2026-03-24 16:07:28 +02:00
CREDO23
a74aa4da4f add auth to Zero query endpoint and ZeroProvider 2026-03-24 16:06:20 +02:00
Anish Sarkar
9eb8e4c48d refactor: reintroduce display_image tool for legacy AI generated images handling 2026-03-24 19:13:54 +05:30
Anish Sarkar
c926c3f62e refactor: remove display_image tool and associated UI components to streamline chat functionality 2026-03-24 19:00:55 +05:30
Anish Sarkar
337bab3650 refactor: add placeholder implementations for link_preview, multi_link_preview, and scrape_webpage tools in assistant-message and public-thread components 2026-03-24 18:57:14 +05:30
Anish Sarkar
3f4e1a7dfd refactor: remove frontend of scrape_webpage tool 2026-03-24 18:55:06 +05:30
CREDO23
cab33d9f4c fix: make ZERO_QUERY_URL portable across all environments
- Default to Docker service networking (http://frontend:3000) in both
  compose files — works when all services run in Docker
- Add extra_hosts (host.docker.internal:host-gateway) for cross-platform
  host access when running frontend outside Docker
- Document override examples in .env.example for local dev and
  custom domain setups
2026-03-24 15:06:58 +02:00
likiosliu
323788e9a3 fix: replace any types with proper types in contact form component
- Replace `any` props type with `React.ComponentProps<"svg">` plus explicit named props
- Replace `any` tuple type with `[number, number]` in squares mapper

Closes #912
2026-03-24 19:55:33 +08:00
likiosliu
a3b3852452 fix: add AbortController to fetch call in audio download
Abort in-flight download when the component unmounts or a new download
starts, preventing wasted bandwidth on navigation.

Closes #919
2026-03-24 19:53:14 +08:00
Anish Sarkar
a009cae62a refactor: remove link_preview tool and associated components to streamline agent functionality 2026-03-24 17:15:29 +05:30
Anish Sarkar
6c507989d2 refactor: remove display_image tool and update related components to streamline image handling 2026-03-24 16:28:11 +05:30
Matt Van Horn
ac2333ee1c
fix: separate nested interactive elements in roles manager
Moves the RolePermissionsDialog trigger to wrap only the text content
area instead of the entire card. The dropdown menu is now a sibling,
not nested inside the dialog button. Removes stopPropagation hacks.

Fixes #921
2026-03-24 03:11:30 -07:00
Rohan Verma
c41e79860f
Merge pull request #924 from MODSetter/fix_hero
fix: improved lighthouse scores
2026-03-24 01:44:44 -07:00
DESKTOP-RTLN3BA\$punk
7f134efa03 fix: improved lighthouse scores
- Implemented dynamic import for HeroCarousel to improve loading performance.
- Added IntersectionObserver to manage video playback based on visibility.
- Removed unused video prefetching logic and adjusted autoplay conditions.
- Updated button styles for better consistency and user experience.
2026-03-24 01:44:15 -07:00
DESKTOP-RTLN3BA\$punk
2800878f9d Merge commit '354d80bf7a' into dev 2026-03-24 00:19:04 -07:00
Rohan Verma
354d80bf7a
Merge pull request #923 from mvanhorn/osc/905-catch-error-handling
fix: add error logging to empty catch blocks in useMessagesElectric
2026-03-24 00:14:50 -07:00
Rohan Verma
3776d3d6bc
Merge pull request #922 from mvanhorn/osc/904-console-log-guard
fix: gate console.log calls behind development check
2026-03-24 00:12:44 -07:00
Matt Van Horn
15e9f113e5
fix: add error logging to empty catch blocks in useMessagesElectric
Replaces 4 silent catch blocks with console.warn calls so sync
failures are observable in the browser console. Cleanup catches
at lines 147/155 stay silent since PGlite may already be closed.

Fixes #905
2026-03-23 23:34:17 -07:00
Matt Van Horn
b240057c61
fix: gate console.log calls behind development check
Wraps unguarded console.log statements in use-connectors-electric,
mcp-config-validator, and ElectricProvider behind an IS_DEV guard,
matching the existing pattern in lib/electric/client.ts. Keeps
console.error calls untouched so real errors still surface.

Fixes #904
2026-03-23 23:29:16 -07:00
DESKTOP-RTLN3BA\$punk
3c4bdc12f0 Merge commit '5da2d95d80' into dev 2026-03-23 18:22:00 -07:00
Rohan Verma
c5d740f162
Merge pull request #896 from AnishSarkar22/feat/human-in-the-loop
feat: sensitive actions using HITL & unified indexing pipeline for google connectors
2026-03-23 18:20:45 -07:00
Anish Sarkar
eed792c19a refactor: remove deprecated DeepAgentThinking component and redefine ThinkingStep interface for improved clarity 2026-03-24 02:56:42 +05:30
Anish Sarkar
e587b588c9 refactor: migrate thinking steps handling to new data structure and streamline related components 2026-03-24 02:23:05 +05:30
Anish Sarkar
b8f3f41326 refactor: update dependencies and streamline assistant-ui package usages 2026-03-24 02:22:51 +05:30
CREDO23
8dd539c384 feat: add Zero query endpoint and configure ZERO_QUERY_URL
- Create app/api/zero/query/route.ts — resolves named queries to ZQL
  using handleQueryRequest and mustGetQuery from @rocicorp/zero
- Add ZERO_QUERY_URL to both docker-compose files:
  - dev: http://host.docker.internal:3000 (reaches local Next.js from Docker)
  - prod: http://frontend:3000 (Docker service networking)

Without this endpoint, zero-cache cannot resolve named queries and
no data syncs to the client.
2026-03-23 20:58:42 +02:00
CREDO23
4efb4fab4b fix: make migration 107 idempotent for video_presentations table
Check information_schema before creating table to avoid
DuplicateTableError when table already exists from model metadata.
Original op.create_table preserved exactly, only skipped if exists.
2026-03-23 20:27:09 +02:00
CREDO23
29b9cc814f fix: make migration 104 idempotent with if_not_exists on index creation
The notification composite indexes may already exist from the model's
__table_args__, causing DuplicateTableError on fresh migrations.
2026-03-23 20:22:48 +02:00
CREDO23
7d7d032e78 docs: add database permission requirements for Zero in managed environments
Document that the Postgres user needs REPLICATION and CREATE privileges
for zero-cache. Docker setup handles this automatically (superuser), but
managed databases (RDS, Supabase, etc.) may need explicit grants.
2026-03-23 20:01:06 +02:00
CREDO23
cf21eaacfc fix: critical timestamp parsing and audit fixes
- Fix timestamp conversion: String(epochMs) → new Date(epochMs).toISOString()
  in use-messages-sync, use-comments-sync, use-documents, use-inbox.
  Without this, date comparisons (isEdited, cutoff filters) would fail.
- Fix updated_at: undefined → null in use-inbox to match InboxItem type
- Fix ZeroProvider: skip Zero connection for unauthenticated users
- Clean 30+ stale "Electric SQL" comments in backend Python code
2026-03-23 19:49:28 +02:00
CREDO23
f04ab89418 refactor: rename Electric hooks and clean consumer components
Rename hooks to remove Electric branding:
- use-connectors-electric → use-connectors-sync (useConnectorsSync)
- use-messages-electric → use-messages-sync (useMessagesSync)
- use-comments-electric → use-comments-sync (useCommentsSync)

Clean all Electric/PGlite references in consumer components:
connector-popup.tsx, thread.tsx, page.tsx, use-indexing-connectors.ts,
use-connector-dialog.ts
2026-03-23 19:29:08 +02:00
CREDO23
a02bc54e40 feat: rewrite use-inbox and use-documents hooks from Electric to Zero
use-inbox: Keep all API calls (initial load, pagination, unread counts,
markAsRead/markAllAsRead optimistic updates). Replace Electric
sync+PGlite with Zero useQuery. Category filtering in JS. 458 → 273 lines.

use-documents: Keep all API calls (initial load, pagination, type counts,
user enrichment). Replace Electric sync+PGlite with Zero useQuery.
Remove baseline dedup. 511 → 361 lines.

All 7 Electric hooks are now rewritten to use Zero.
2026-03-23 19:21:20 +02:00
CREDO23
833fbb2a76 feat: rewrite use-documents hook from Electric to Zero
Keep all API calls (initial load, pagination, type counts, user
enrichment). Replace Electric sync+PGlite with Zero useQuery for
real-time deltas. Remove baseline dedup. 511 → 361 lines.
2026-03-23 19:16:38 +02:00
CREDO23
cd9d8ca991 feat: rewrite use-comments-electric hook from Electric to Zero
Replace PGlite sync+live query+stream subscriber with Zero useQuery.
All transformation logic preserved exactly: nested comments, mention
rendering, permissions, React Query cache writes. 414 → 207 lines.
2026-03-23 19:08:17 +02:00
CREDO23
5dd101b203 feat: rewrite use-documents-processing hook from Electric to Zero
Replace PGlite aggregate SQL (SUM/CASE) with Zero useQuery + client-side
status counting. State machine (idle/processing/success/error) preserved
exactly. 167 → 79 lines.
2026-03-23 19:06:32 +02:00
CREDO23
c60d2f071c feat: rewrite use-connectors-electric hook from Electric to Zero
Replace PGlite sync+live query with Zero useQuery. Maps camelCase
to snake_case for SearchSourceConnector type. 217 → 44 lines.
2026-03-23 19:04:51 +02:00
CREDO23
5ad25d10ea feat: rewrite use-messages-electric hook from Electric to Zero
Replace PGlite sync+live query with Zero useQuery. Maps camelCase
output to snake_case to preserve consumer contract. 162 → 38 lines.
2026-03-23 19:00:20 +02:00
CREDO23
b27061e44a feat: rewrite use-chat-session-state hook from Electric to Zero
Replace @electric-sql/react useShape with @rocicorp/zero/react useQuery.
Same Jotai atom update, same logic, same consumer contract.
2026-03-23 18:56:32 +02:00
CREDO23
6ad5ead320 docs: add Zero sync documentation and update existing docs
- Create how-to/zero-sync.mdx setup guide
- Update docker-compose.mdx with zero-cache service, env vars, troubleshooting
- Update dev-compose.mdx with Zero build arg
- Update install-script.mdx with zero-cache URL
- Update manual-installation.mdx with Zero frontend env var
- Add Zero sync page to how-to index, meta.json, and sitemap
2026-03-23 18:35:39 +02:00
CREDO23
f29a3edcab chore: update postgresql.conf and contracts comments for Zero
- Replace Electric SQL references in postgresql.conf with Zero-cache
- Clean Electric SQL comments in chat-comments.types.ts and chat-messages.types.ts
2026-03-23 18:30:49 +02:00
CREDO23
f9ba7e52d9 feat: add Zero infra — docker-compose, env vars, Dockerfile, CI workflows
- Add zero-cache service to docker-compose.yml and docker-compose.dev.yml
- Add ZERO_* env vars to docker/.env.example
- Add NEXT_PUBLIC_ZERO_CACHE_URL to surfsense_web/.env.example
- Add NEXT_PUBLIC_ZERO_CACHE_URL placeholder ARG/ENV to Dockerfile
- Add NEXT_PUBLIC_ZERO_CACHE_URL runtime substitution to docker-entrypoint.js
- Add NEXT_PUBLIC_ZERO_CACHE_URL build arg to docker-build.yml and desktop-release.yml
2026-03-23 18:27:18 +02:00
CREDO23
61610106f4 feat: add zero-cache service to production docker-compose
- Add rocicorp/zero:0.26.2 service with Postgres connection,
  SQLite replica volume, healthcheck, and admin password
- Add NEXT_PUBLIC_ZERO_CACHE_URL to frontend env vars
- Frontend now depends on zero-cache health
2026-03-23 18:19:37 +02:00
CREDO23
6143a91406 feat: add ZeroProvider and wire into app layout
- Create components/providers/ZeroProvider.tsx with schema, queries,
  userID, context, and cacheURL configuration
- Wire ZeroProvider into app/layout.tsx wrapping GlobalLoadingProvider
  inside ReactQueryClientProvider (same position ElectricProvider had)
2026-03-23 18:09:59 +02:00
CREDO23
da8f90bfe2 feat: add Zero queries for all 6 synced tables
Define named queries matching each Electric hook's data needs:
- notifications.byUser (use-inbox)
- documents.bySpace (use-documents, use-documents-processing)
- connectors.bySpace (use-connectors-electric)
- messages.byThread (use-messages-electric)
- comments.byThread (use-comments-electric)
- chatSession.byThread (use-chat-session-state)

Also moves schema files from zero/tables/ to zero/schema/ for
consistent modular folder structure.
2026-03-23 17:54:43 +02:00
CREDO23
af2bd744fb feat: add Zero schema with 6 table definitions and relationships
- Create zero/tables/inbox.ts (notifications)
- Create zero/tables/documents.ts (documents, search_source_connectors)
- Create zero/tables/chat.ts (new_chat_messages, chat_comments, chat_session_state)
- Create zero/schema.ts (combines tables, defines relationships, exports zql)
- Consolidate Zero type augmentations into types/zero.d.ts
2026-03-23 17:44:05 +02:00
CREDO23
8298aad2d7 feat: add @rocicorp/zero package and auth context type
- Install @rocicorp/zero@0.26.2 (replaces 4 @electric-sql/* packages)
- Add types/zero-auth.d.ts with Context type for Zero's permission system
2026-03-23 17:23:49 +02:00