native/sync-batching
docs/superpowers/specs/2026-09-20-mac-document-windows.md
+85 −0
docs/superpowers/specs/2026-09-20-mac-document-windows.mdLoading diff…
internal/docs/app.go
+1 −0
internal/docs/app.goLoading diff…
internal/docs/handlers.go
+54 −1
internal/docs/handlers.goLoading diff…
internal/docs/migrations/0008_document_creation_token.sql
+2 −0
internal/docs/migrations/0008_document_creation_token.sqlLoading diff…
internal/docs/models.go
+2 −1
internal/docs/models.goLoading diff…
internal/docs/native_test.go
+51 −0
internal/docs/native_test.goLoading diff…
internal/docs/store.go
+37 −0
internal/docs/store.goLoading diff…
native/INSTANT-DOCUMENTS.md
+28 −0
native/INSTANT-DOCUMENTS.mdLoading diff…
native/PrivacyInfo.xcprivacy
+17 −0
native/PrivacyInfo.xcprivacyLoading diff…
native/apple/Package.resolved
+11 −2
native/apple/Package.resolvedLoading diff…
native/apple/Package.swift
+8 −2
native/apple/Package.swiftLoading diff…
native/apple/Sources/DocsApp/DocsAccountWindow.swift
+52 −0
native/apple/Sources/DocsApp/DocsAccountWindow.swiftLoading diff…
native/apple/Sources/DocsApp/DocsApp.swift
+24 −10
native/apple/Sources/DocsApp/DocsApp.swiftLoading diff…
native/apple/Sources/DocsApp/DocsDocumentWindow.swift
+23 −0
native/apple/Sources/DocsApp/DocsDocumentWindow.swiftLoading diff…
native/apple/Sources/DocsApp/DocsWindowCommands.swift
+48 −0
native/apple/Sources/DocsApp/DocsWindowCommands.swiftLoading diff…
native/apple/Sources/DocsApp/DocsWindows.swift
+63 −0
native/apple/Sources/DocsApp/DocsWindows.swiftLoading diff…
native/apple/Sources/DocsKit/CRDTReplica.swift
+12 −1
native/apple/Sources/DocsKit/CRDTReplica.swiftLoading diff…
native/apple/Sources/DocsKit/DocsAccountActions.swift
+10 −0
native/apple/Sources/DocsKit/DocsAccountActions.swiftLoading diff…
native/apple/Sources/DocsKit/DocsDocumentMenu.swift
+28 −0
native/apple/Sources/DocsKit/DocsDocumentMenu.swiftLoading diff…
native/apple/Sources/DocsKit/DocsEditorCommands.swift
+58 −0
native/apple/Sources/DocsKit/DocsEditorCommands.swiftLoading diff…
native/apple/Sources/DocsKit/DocsEditorContext.swift
+21 −0
native/apple/Sources/DocsKit/DocsEditorContext.swiftLoading diff…
native/apple/Sources/DocsKit/DocsFonts.swift
+1 −0
native/apple/Sources/DocsKit/DocsFonts.swiftLoading diff…
native/apple/Sources/DocsKit/DocsLayoutManager.swift
+70 −0
native/apple/Sources/DocsKit/DocsLayoutManager.swiftLoading diff…
native/apple/Sources/DocsKit/DocsMacStrings.swift
+5 −0
native/apple/Sources/DocsKit/DocsMacStrings.swiftLoading diff…
native/apple/Sources/DocsKit/DocsModel.swift
+142 −14
native/apple/Sources/DocsKit/DocsModel.swiftLoading diff…
native/apple/Sources/DocsKit/DocsPagedTextView.swift
+86 −21
native/apple/Sources/DocsKit/DocsPagedTextView.swiftLoading diff…
native/apple/Sources/DocsKit/DocsPaging.swift
+28 −2
native/apple/Sources/DocsKit/DocsPaging.swiftLoading diff…
native/apple/Sources/DocsKit/DocsWorkspace.swift
+205 −35
native/apple/Sources/DocsKit/DocsWorkspace.swiftLoading diff…
native/apple/Sources/DocsKit/DocumentBlockSpacing.swift
+54 −0
native/apple/Sources/DocsKit/DocumentBlockSpacing.swiftLoading diff…
native/apple/Sources/DocsKit/DocumentCommands.swift
+3 −1
native/apple/Sources/DocsKit/DocumentCommands.swiftLoading diff…
native/apple/Sources/DocsKit/DocumentExportControls.swift
+9 −0
native/apple/Sources/DocsKit/DocumentExportControls.swiftLoading diff…
native/apple/Sources/DocsKit/DocumentInlineCode.swift
+38 −0
native/apple/Sources/DocsKit/DocumentInlineCode.swiftLoading diff…
native/apple/Sources/DocsKit/DocumentPageLayout.swift
+64 −0
native/apple/Sources/DocsKit/DocumentPageLayout.swiftLoading diff…
native/apple/Sources/DocsKit/DocumentRenderReconciliation.swift
+21 −0
native/apple/Sources/DocsKit/DocumentRenderReconciliation.swiftLoading diff…
native/apple/Sources/DocsKit/DocumentThumbnail.swift
+3 −1
native/apple/Sources/DocsKit/DocumentThumbnail.swiftLoading diff…
native/apple/Sources/DocsKit/DocumentToolbarSelection.swift
+38 −0
native/apple/Sources/DocsKit/DocumentToolbarSelection.swiftLoading diff…
native/apple/Sources/DocsKit/EditorToolbar.swift
+39 −20
native/apple/Sources/DocsKit/EditorToolbar.swiftLoading diff…
native/apple/Sources/DocsKit/NativeDocumentTextView.swift
+17 −3
native/apple/Sources/DocsKit/NativeDocumentTextView.swiftLoading diff…
native/apple/Sources/DocsKit/NativeTextProjection.swift
+53 −6
native/apple/Sources/DocsKit/NativeTextProjection.swiftLoading diff…
native/apple/Sources/DocsKit/Resources/ar.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/ar.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/ar.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/ar.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/bn.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/bn.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/bn.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/bn.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/en.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/en.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/en.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/en.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/es.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/es.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/es.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/es.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/ga.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/ga.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/ga.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/ga.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/hi.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/hi.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/hi.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/hi.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/ja.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/ja.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/ja.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/ja.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/pt.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/pt.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/pt.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/pt.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/ru.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/ru.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/ru.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/ru.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/vi.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/vi.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/vi.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/vi.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/yue.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/yue.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/yue.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/yue.lproj/Mac.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/zh-Hans.lproj/Localizable.strings
+2 −0
native/apple/Sources/DocsKit/Resources/zh-Hans.lproj/Localizable.stringsLoading diff…
native/apple/Sources/DocsKit/Resources/zh-Hans.lproj/Mac.strings
+51 −0
native/apple/Sources/DocsKit/Resources/zh-Hans.lproj/Mac.stringsLoading diff…
native/apple/Tests/DocsKitTests/BrowserTypographyTests.swift
+179 −0
native/apple/Tests/DocsKitTests/BrowserTypographyTests.swiftLoading diff…
native/apple/Tests/DocsKitTests/DocumentDraftTests.swift
+72 −0
native/apple/Tests/DocsKitTests/DocumentDraftTests.swiftLoading diff…
native/apple/Tests/DocsKitTests/DocumentPageEditingTests.swift
+113 −0
native/apple/Tests/DocsKitTests/DocumentPageEditingTests.swiftLoading diff…
native/apple/Tests/DocsKitTests/DocumentRenderReconciliationTests.swift
+49 −0
native/apple/Tests/DocsKitTests/DocumentRenderReconciliationTests.swiftLoading diff…
native/apple/Tests/DocsKitTests/DocumentSyncIntegrationTests.swift
+61 −0
native/apple/Tests/DocsKitTests/DocumentSyncIntegrationTests.swiftLoading diff…
native/apple/Tests/DocsKitTests/DocumentToolbarSelectionTests.swift
+82 −0
native/apple/Tests/DocsKitTests/DocumentToolbarSelectionTests.swiftLoading diff…
native/apple/Tests/DocsKitTests/DocumentTypographyTests.swift
+47 −0
native/apple/Tests/DocsKitTests/DocumentTypographyTests.swiftLoading diff…
native/apple/Tests/DocsKitTests/HomeLoadingTests.swift
+22 −0
native/apple/Tests/DocsKitTests/HomeLoadingTests.swiftLoading diff…
native/apple/Tests/DocsWindowTests/WindowRoutingTests.swift
+44 −0
native/apple/Tests/DocsWindowTests/WindowRoutingTests.swiftLoading diff…
native/crdt/examples/caret_fixture.rs
+11 −0
native/crdt/examples/caret_fixture.rsLoading diff…
native/crdt/src/lib.rs
+22 −9
native/crdt/src/lib.rsLoading diff…
native/crdt/tests/replica.rs
+24 −0
native/crdt/tests/replica.rsLoading diff…
native/ios/Assets.xcassets/AppIcon.appiconset/AppIcon.png
binary
native/ios/Assets.xcassets/AppIcon.appiconset/AppIcon.pngLoading diff…
native/ios/Info.plist
+35 −0
native/ios/Info.plistLoading diff…
native/ios/project.yml
+44 −24
native/ios/project.ymlLoading diff…
native/mac-updates.json
+6 −0
native/mac-updates.jsonLoading diff…
native/macos/AppIcon.icns
binary
native/macos/AppIcon.icnsLoading diff…
native/macos/AppStore.entitlements
+12 −0
native/macos/AppStore.entitlementsLoading diff…
native/macos/Info.plist
+43 −0
native/macos/Info.plistLoading diff…
native/macos/project.yml
+54 −0
native/macos/project.ymlLoading diff…
native/scripts/build-mac.sh
+2 −1
native/scripts/build-mac.shLoading diff…
native/scripts/test-document-drafts.py
+77 −0
native/scripts/test-document-drafts.pyLoading diff…
native/scripts/test-document-window.py
+63 −0
native/scripts/test-document-window.pyLoading diff…
native/scripts/test-home-loading.py
+36 −0
native/scripts/test-home-loading.pyLoading diff…
native/scripts/test-sync-latency.py
+61 −0
native/scripts/test-sync-latency.pyLoading diff…
native/smoke/document-window/Package.resolved
+23 −0
native/smoke/document-window/Package.resolvedLoading diff…
native/smoke/document-window/Package.swift
+7 −0
native/smoke/document-window/Package.swiftLoading diff…
native/smoke/document-window/README.md
+41 −0
native/smoke/document-window/README.mdLoading diff…
native/smoke/document-window/Sources/DocsWindowCommands.swift
+1 −0
native/smoke/document-window/Sources/DocsWindowCommands.swiftLoading diff…
native/smoke/document-window/Sources/DocsWindows.swift
+1 −0
native/smoke/document-window/Sources/DocsWindows.swiftLoading diff…
native/smoke/document-window/Sources/Smoke.swift
+192 −0
native/smoke/document-window/Sources/Smoke.swiftLoading diff…