Philipinho
91ad3de258
feat(server): load bases into DuckDB and serve list queries from cache
...
- collection-loader streams base rows via postgres and bulk-inserts into an
in-memory DuckDB instance using the Appender API, then builds an index on
each indexable column
- base-query-cache service routes list() calls through the prepared-statement
path; ensureLoaded does schema-version checks with single-pass LRU eviction
- keyset param-ordering bug in the DuckDB builder fixed: placeholders appear
head-to-tail but were being pushed tail-to-head, which made DuckDB bind the
wrong value for each ? and throw Binder Error on typed columns
- base-row repo gains countActiveRows for the router to use in task 6
- seed script split into an importable helper so integration tests can seed a
10k-row base deterministically without shelling out
- new integration spec compares Postgres vs DuckDB pagination end-to-end for
a numeric sort and guards against duplicate rows from DuckDB
Integration test is skipped unless INTEGRATION_DB_URL is set.
2026-04-19 21:31:05 +01:00
Philipinho
b28597125d
fix(server): use DuckDB json_contains for multi-select filters and expand builder coverage
2026-04-19 21:11:29 +01:00
Philipinho
a9db3ef008
feat(server): add DuckDB SQL builder for base list queries
2026-04-19 21:06:41 +01:00
Philipinho
574c5316f0
feat(server): scaffold base query-cache module behind feature flag
2026-04-19 20:59:24 +01:00
Philipinho
3af2db7a8b
feat(server): add property-type to DuckDB column-spec mapping
2026-04-19 20:54:59 +01:00
Philipinho
f181c6d9e8
fix(server): case-insensitive parse for BASE_QUERY_CACHE_ENABLED env var
2026-04-19 20:52:06 +01:00
Philipinho
8ac4c97c98
docs(server): explain base-query-cache max-collections default
2026-04-19 20:50:21 +01:00
Philipinho
abd42fd007
chore(server): add duckdb dependency and query-cache env getters
2026-04-19 20:48:16 +01:00
Philipinho
95d0457a7e
refactor(base): drop /list suffix from base endpoints to match codebase convention
2026-04-18 23:36:52 +01:00
Philipinho
d9e2d7ba3d
chore(server): one-shot script to clean poisoned base view configs
2026-04-18 23:27:03 +01:00
Philipinho
44ec2dbe88
fix(base): stop jsonb char-key corruption in seed and guard view config spread
2026-04-18 23:26:03 +01:00
Philipinho
a9ea2a99b4
chore(server): let seed-base-rows script take row count via env var
2026-04-18 22:44:52 +01:00
Philipinho
f119d728a8
fix(base): handle csv export client abort and mid-stream errors
2026-04-18 18:18:34 +01:00
Philipinho
66f9194e96
feat(base): add csv export http endpoint
2026-04-18 18:14:41 +01:00
Philipinho
19b3f26cbb
feat(base): register csv export service in module
2026-04-18 18:14:01 +01:00
Philipinho
56c57afff3
feat(base): add streaming csv export service
2026-04-18 18:13:20 +01:00
Philipinho
d84aadadbb
feat(base): add export base csv dto
2026-04-18 18:11:34 +01:00
Philipinho
da0321b468
feat(base): add csv cell serializer with per-type rules
2026-04-18 18:10:47 +01:00
Philipinho
db6f82ff7a
chore(server): add csv-stringify dependency
2026-04-18 18:08:09 +01:00
Philipinho
e017209d76
feat(base): emit base:rows:deleted websocket event
2026-04-18 16:32:27 +01:00
Philipinho
fc734475df
feat(base): add POST /bases/rows/delete-many endpoint
2026-04-18 16:31:44 +01:00
Philipinho
a7f9d66778
feat(base): add deleteMany service method for batch row delete
2026-04-18 16:31:11 +01:00
Philipinho
4a9e891582
feat(base): add BASE_ROWS_DELETED event type
2026-04-18 16:29:26 +01:00
Philipinho
65c5bb11b8
feat(base): add DeleteRowsDto for batch row delete
2026-04-18 16:29:02 +01:00
Philipinho
1466d95078
feat(base): add findByIds and softDeleteMany to base-row repo
2026-04-18 16:28:39 +01:00
Philipinho
da49ffc332
fix orderBy
2026-04-18 15:17:20 +01:00
Philipinho
ede1a799f2
feat(base): disable type-conversion API for v1, preserve engine for v2
2026-04-18 14:13:08 +01:00
Philipinho
f5b19316af
Base WIP
2026-04-18 13:13:53 +01:00
Philipinho
081bb67239
Merge branch 'main' into base
2026-04-17 13:48:49 +01:00
Philipinho
271f855761
v0.80.0
2026-04-14 17:08:44 +01:00
Philipinho
3e6d915227
sync
2026-04-14 16:34:44 +01:00
Philip Okugbe
a6a7e4370a
feat(ee): PDF export api ( #2112 )
...
* feat(ee): server side PDF export
* feat: pdf export queue
* sync
* sync
2026-04-14 16:26:54 +01:00
Philip Okugbe
cc00e77dfb
fix: space overview favorites ( #2110 )
2026-04-14 02:58:24 +01:00
Philip Okugbe
4056bd0104
feat: enhancements ( #2107 )
...
* refactor
* fix
* update packages
2026-04-13 23:34:40 +01:00
Philip Okugbe
bd68e47e03
feat(ee): page verification workflow ( #2102 )
...
* feat: page verification workflow
* feat: refactor page-verification
* sync
* fix type
* fix
* fix
* notification icon
* use full word
* accept .license file
* - update templates
- update migration and notification
* fix copy
* update audit labels
* sync
* add space name
2026-04-13 20:20:34 +01:00
Philipinho
e02661974e
sync
2026-04-13 00:13:18 +01:00
Philip Okugbe
d42091ccb1
feat: favorites ( #2103 )
...
* feat: favorites and templates(ee)
* rename migrations
* fix sidebar
* cleanup tabs
* fix
* turn off templates
* cleanup
* uuid validation
2026-04-12 22:06:25 +01:00
Philip Okugbe
57efb91bd3
feat(ee): ai chat ( #2098 )
...
* feat: ai chat
* feat: ai chat
* sync
* cleanup
* view space button
2026-04-10 19:23:47 +01:00
Philip Okugbe
da9b43681e
feat: watch space ( #2096 )
2026-04-09 00:37:51 +01:00
Philipinho
4966f9b152
fix(deps): package updates
2026-04-07 10:24:46 +01:00
Philipinho
e1bbceb9a6
fix: logs
2026-04-07 10:10:41 +01:00
Philip Okugbe
895c1817ae
feat: bug fixes ( #2084 )
...
* handle enter in inline code
* fix: duplicate comment cache
* track link nodes (backlinks)
* fix en-US translation
* fix internal a-links
* overrides
* 0.71.1
2026-04-05 13:45:36 +01:00
Philipinho
147d028036
v0.71.0
2026-03-31 20:42:37 +01:00
Philipinho
992691e6e0
fix module import
2026-03-31 20:41:09 +01:00
Philip Okugbe
9aaa6c731c
feat: add AI_EMBEDDING_SUPPORTS_MRL env var to decouple pgvector dimensions from model API ( #2079 )
...
Some embedding models don't accept a `dimensions` parameter. This adds
an optional env var that controls whether the dimension is sent to the
model API, while always using it for pgvector indexing. Preset models
have this handled automatically; the env var allows explicit override
for custom models.
2026-03-31 19:39:49 +01:00
Philipinho
af8b0ddf3a
sync
2026-03-31 16:05:09 +01:00
Philip Okugbe
879aa2c3d8
feat: page update notifications ( #2074 )
...
* feat: watchers notification and email preferences
* fix: email copy
* digests
* clean up
* fix
* clean up
* move backlinks queue-up to history processor
* fix
* fix keys
* feat: group notifications
* filter
* adjust email digest window
2026-03-31 16:03:59 +01:00
Philip Okugbe
c180d0e487
feat: ratelimits ( #2073 )
...
* feat: rate limits
* ip
2026-03-30 15:38:44 +01:00
Philip Okugbe
a062f7a165
fix: enhance confluence importer ( #2072 )
...
* fix placeholder
* min resize dimensions
* fix media links
* fix
2026-03-30 13:16:40 +01:00
Philip Okugbe
cbd0dd4a0b
feat: indexes ( #2071 )
2026-03-29 20:29:12 +01:00