Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
082dfa7
feat(documents): add HTML-based AI editing
urjitc Aug 1, 2026
cb093c5
feat(ai-chat): group document edit review actions
urjitc Aug 1, 2026
d2591d6
refactor(documents): persist Yjs state with a single put
urjitc Aug 1, 2026
760cd8a
refactor(documents): trim document edit review plumbing
urjitc Aug 1, 2026
b3db075
perf(documents): fingerprint AI block refs from JSON
urjitc Aug 1, 2026
5099b0e
revert(workspaces): restore main's content read budget
urjitc Aug 1, 2026
b29514a
feat(documents): make AI change review calmer to read
urjitc Aug 1, 2026
b608473
feat(documents): report what each AI edit changed
urjitc Aug 1, 2026
39c84b7
fix(documents): mark reviewed changes inline instead of boxing blocks
urjitc Aug 1, 2026
28b4da9
feat(documents): end AI change review only when the reader says so
urjitc Aug 1, 2026
3fc6dbc
feat(documents): make AI change review a read-only mode
urjitc Aug 1, 2026
a25944e
feat(documents): count AI edits in lines
urjitc Aug 1, 2026
fffd1ad
feat(documents): allow undo from the review toolbar
urjitc Aug 1, 2026
af24a88
feat(documents): confirm undo and scope review to the open view
urjitc Aug 1, 2026
6066c8c
refactor(ai-chat): make the receipt row open review
urjitc Aug 1, 2026
c71c60c
fix(documents): match review controls to toolbar metrics
urjitc Aug 1, 2026
0fe54f2
fix(ai-chat): render the edit receipt at full message width
urjitc Aug 1, 2026
aca33f9
style(documents): punctuate the review toolbar label
urjitc Aug 1, 2026
84c543c
fix(documents): keep review alive when opening another document
urjitc Aug 1, 2026
2b58e68
style(documents): outline the undo button, drop the sticky row tint
urjitc Aug 1, 2026
7c01432
fix(documents): open review on a freshly opened document
urjitc Aug 1, 2026
91a3dcf
refactor(documents): scope AI change review to the document
urjitc Aug 1, 2026
291c170
fix(documents): reject document content that is not HTML
urjitc Aug 1, 2026
cac7e29
fix(ai-chat): keep every edited document in the receipt
urjitc Aug 1, 2026
4dac7af
fix(documents): re-check review staleness and bound stored receipts
urjitc Aug 1, 2026
47b6670
refactor(documents): keep one rule for assigning AI block refs
urjitc Aug 1, 2026
ca15c80
feat(documents): open document links on click
urjitc Aug 1, 2026
c0b2ca4
refactor(ai-chat): record what an edit did, not what is left
urjitc Aug 1, 2026
c5716d2
refactor(documents): drop the leftover receipt query plumbing
urjitc Aug 1, 2026
cc160e9
feat(documents): add a fourth heading level
urjitc Aug 1, 2026
bf39894
feat(documents): tell the model why its HTML was refused
urjitc Aug 1, 2026
5b486fa
fix(documents): stop citation tags from failing a document write
urjitc Aug 1, 2026
b13e1be
feat(documents): cite workspace sources inside documents
urjitc Aug 1, 2026
75eb424
refactor(documents): cite documents with the same ref as chat
urjitc Aug 1, 2026
bb9456a
refactor(documents): pass citation locations as locations
urjitc Aug 1, 2026
104b3a3
fix(documents): act only on a review verdict asked for now
urjitc Aug 1, 2026
61431e0
refactor(documents): key the review verdict by the open it answers
urjitc Aug 1, 2026
0b0820a
refactor(documents): fetch the review where the reader asks for it
urjitc Aug 1, 2026
55c523c
fix(documents): name a citation after the source it points at
urjitc Aug 1, 2026
66652c4
perf(documents): skip the name lookup when no citation resolved
urjitc Aug 1, 2026
2afa80a
fix(documents): re-name a citation a rewrite left nameless
urjitc Aug 1, 2026
04c17c0
refactor(documents): draw a citation the way chat draws one
urjitc Aug 1, 2026
7e578b9
refactor(documents): keep undo where it is used
urjitc Aug 2, 2026
2552e97
test(workspaces): run worker tests against the durable objects
urjitc Aug 2, 2026
676e89a
fix(workspaces): stop reading a kernel schema its purge deleted
urjitc Aug 2, 2026
953b92f
fix(workspaces): create the kernel schema behind the concurrency gate
urjitc Aug 2, 2026
c06f8b0
fix(workspaces): stop reading a user store schema its purge deleted
urjitc Aug 2, 2026
7e8db43
fix(documents): say undone only when the undo did something
urjitc Aug 2, 2026
1165e06
docs(workspaces): say which queries the purge guard covers
urjitc Aug 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion knip.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
"ignoreBinaries": ["infisical"],
"ignoreDependencies": [
"@babel/plugin-proposal-decorators",
"@cloudflare/vitest-pool-workers",
"@tailwindcss/typography",
"@tanstack/devtools-event-client",
"@tanstack/router-plugin",
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"knip": "knip",
"prepare": "vp config --no-agent",
"test": "vp test --run",
"test:workers": "vp test --run --passWithNoTests --config vitest.cloudflare.config.ts",
"test:workers": "vp test --run --project=workers",
"deploy:worker": "CLOUDFLARE_ENV=production wrangler deploy",
"deploy:worker:staging": "CLOUDFLARE_ENV=staging wrangler deploy --containers-rollout=none",
"deploy": "vp run build:production && vp run deploy:worker",
Expand Down Expand Up @@ -112,6 +112,7 @@
"drizzle-orm": "^0.45.1",
"hast-util-to-string": "^3.0.1",
"katex": "^0.17.0",
"linkedom": "0.18.13",
"lucide-react": "^1.27.0",
"matter-js": "^0.20.0",
"mermaid": "11.16.0",
Expand Down
151 changes: 149 additions & 2 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions src/durable-objects.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// Single source of truth for the Worker's stateful exports. The app entry and
// the test entry both re-export this list so a new Durable Object cannot reach
// production while staying invisible to the worker test project.
export { CodemodeRuntime } from "@cloudflare/codemode";
export { Sandbox } from "@cloudflare/sandbox";
export { AIThread, UserAIStore } from "#/features/workspaces/ai/user-ai-agents";
export { OfficePdfConverter } from "#/features/workspaces/conversion/office-pdf-converter";
export { DocumentSession } from "#/features/workspaces/documents/document-session";
export { WorkspaceFileExtractionWorkflow } from "#/features/workspaces/extraction/workspace-file-extraction-workflow";
export { WorkspaceFileProcessor } from "#/features/workspaces/files/workspace-file-processor";
export { WorkspaceKernel } from "#/features/workspaces/kernel/workspace-kernel";
Loading