oficina / docs Public

Implement native Docs editing, recovery, and Apple validation

Paul Campbell pushed by codex agent, operated by paul@keymail.dev c1b9ac9dc004439c17cadeca4326b5aec13cea0a parent 82d57c0
107 files changed, +7292 −200
  • .amadan/ci.d/20-native +7 −0
  • .gitignore +4 −0
  • docs/superpowers/specs/2026-09-13-native-apple-design.md +13 −0
  • fixtures/native-wire.mjs +19 −0
  • native/BUILDING.md +46 −0
  • native/LICENSE.lucide +43 −0
  • native/PARITY.md +33 −0
  • native/REVIEW.md +49 −0
  • native/apple/Package.resolved +14 −0
  • native/apple/Package.swift +3 −3
  • native/apple/Sources/DocsApp/DocsApp.swift +3 −0
  • native/apple/Sources/DocsKit/CRDTReplica.swift +122 −43
  • native/apple/Sources/DocsKit/DocsAttachments.swift +147 −0
  • native/apple/Sources/DocsKit/DocsClipboardWriter.swift +106 −0
  • native/apple/Sources/DocsKit/DocsCloseGuard.swift +86 −0
  • native/apple/Sources/DocsKit/DocsFonts.swift +38 −0
  • native/apple/Sources/DocsKit/DocsHTMLClipboard.swift +237 −0
  • native/apple/Sources/DocsKit/DocsHTMLScanner.swift +62 −0
  • native/apple/Sources/DocsKit/DocsJumpControls.swift +131 −0
  • native/apple/Sources/DocsKit/DocsModel.swift +147 −25
  • native/apple/Sources/DocsKit/DocsModels.swift +1 −0
  • native/apple/Sources/DocsKit/DocsPagedTextView.swift +123 −0
  • native/apple/Sources/DocsKit/DocsPaging.swift +67 −0
  • native/apple/Sources/DocsKit/DocsResources.swift +8 −0
  • native/apple/Sources/DocsKit/DocsRichClipboard.swift +212 −0
  • native/apple/Sources/DocsKit/DocsRuleDiagnostics.swift +16 −0
  • native/apple/Sources/DocsKit/DocsToolsControls.swift +32 −2
  • native/apple/Sources/DocsKit/DocsWorkspace.swift +58 −14
  • native/apple/Sources/DocsKit/DocumentClipboardInsertion.swift +69 −0
  • native/apple/Sources/DocsKit/DocumentCommands.swift +167 −0
  • native/apple/Sources/DocsKit/DocumentComposition.swift +173 −0
  • native/apple/Sources/DocsKit/DocumentExportControls.swift +105 −0
  • native/apple/Sources/DocsKit/DocumentInputRules.swift +58 −0
  • native/apple/Sources/DocsKit/DocumentKeyboardBindings.swift +33 −0
  • native/apple/Sources/DocsKit/DocumentNativeInputRules.swift +98 −0
  • native/apple/Sources/DocsKit/DocumentPublication.swift +17 −0
  • native/apple/Sources/DocsKit/DocumentThumbnail.swift +34 −0
  • native/apple/Sources/DocsKit/DocumentWordCounts.swift +6 −2
  • native/apple/Sources/DocsKit/EditorToolbar.swift +29 −30
  • native/apple/Sources/DocsKit/NativeDocumentTextView.swift +237 −29
  • native/apple/Sources/DocsKit/NativeTextProjection.swift +34 −31
  • native/apple/Sources/DocsKit/Resources/Fonts/LICENSE-OFL-1.1.txt +91 −0
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationMono-Bold.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationMono-BoldItalic.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationMono-Italic.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationMono-Regular.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationSans-Bold.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationSans-BoldItalic.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationSans-Italic.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationSans-Regular.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationSerif-Bold.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationSerif-BoldItalic.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationSerif-Italic.ttf binary
  • native/apple/Sources/DocsKit/Resources/Fonts/LiberationSerif-Regular.ttf binary
  • native/apple/Sources/DocsKit/Resources/HTMLEntities.json +1 −0
  • native/apple/Sources/DocsKit/Resources/ar.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/bn.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/en.lproj/Localizable.strings +19 −1
  • native/apple/Sources/DocsKit/Resources/es.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/ga.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/hi.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/ja.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/pt.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/ru.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/vi.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/yue.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/Resources/zh-Hans.lproj/Localizable.strings +173 −0
  • native/apple/Sources/DocsKit/TextEditMapping.swift +26 −1
  • native/apple/Tests/DocsKitTests/CRDTClipboardTests.swift +48 −0
  • native/apple/Tests/DocsKitTests/CRDTGenerationTests.swift +31 −0
  • native/apple/Tests/DocsKitTests/CRDTSourceReuseTests.swift +54 −0
  • native/apple/Tests/DocsKitTests/DocumentAssetsTests.swift +40 −0
  • native/apple/Tests/DocsKitTests/DocumentCommandsTests.swift +62 −0
  • native/apple/Tests/DocsKitTests/DocumentCompositionTests.swift +34 −0
  • native/apple/Tests/DocsKitTests/DocumentInputRulesTests.swift +48 −0
  • native/apple/Tests/DocsKitTests/DocumentListCommandTests.swift +32 −0
  • native/apple/Tests/DocsKitTests/DocumentPublicationTests.swift +26 −0
  • native/apple/Tests/DocsKitTests/DocumentWordCountsTests.swift +8 −0
  • native/apple/Tests/DocsKitTests/KeyboardBindingTests.swift +13 −0
  • native/apple/Tests/DocsKitTests/NativeClipboardInputTests.swift +92 −0
  • native/apple/Tests/DocsKitTests/NativeRenderTests.swift +87 −0
  • native/apple/Tests/DocsKitTests/PagingTests.swift +58 −0
  • native/apple/Tests/DocsKitTests/RichClipboardTests.swift +147 −0
  • native/benchmarks/NativePerformanceProbeTests.swift +41 −0
  • native/benchmarks/README.md +101 −0
  • native/crdt/src/bin/wire_fixture.rs +22 −0
  • native/crdt/src/display.rs +140 −0
  • native/crdt/src/input_rules.rs +45 −0
  • native/crdt/src/lib.rs +33 −6
  • native/crdt/src/lists.rs +153 −0
  • native/crdt/src/paste.rs +74 −0
  • native/crdt/src/structure.rs +128 −6
  • native/crdt/tests/replica.rs +216 −0
  • native/crdt/tests/structural_commands.rs +92 −0
  • native/host/src/lib.rs +10 −1
  • native/host/tests/sandbox.rs +39 −0
  • native/ios/Assets.xcassets/AppIcon.appiconset/AppIcon.png binary
  • native/ios/Assets.xcassets/AppIcon.appiconset/Contents.json +1 −0
  • native/ios/Review/DocsReviewPhone.swift +22 −0
  • native/ios/UITests/NativeUITests.swift +178 −0
  • native/ios/project.yml +38 −2
  • native/scripts/build-crdt.sh +6 −3
  • native/scripts/build-iphone.sh +1 −0
  • native/scripts/build-mac.sh +3 −1
  • native/scripts/check-mutations.py +38 −0
  • native/scripts/check-native.sh +35 −0
  • native/scripts/review-ios.py +169 −0
.amadan/ci.d/20-native

Loading diff…

.gitignore

Loading diff…

docs/superpowers/specs/2026-09-13-native-apple-design.md

Loading diff…

fixtures/native-wire.mjs

Loading diff…

native/BUILDING.md

Loading diff…

native/LICENSE.lucide

Loading diff…

native/PARITY.md

Loading diff…

native/REVIEW.md

Loading diff…

native/apple/Package.resolved

Loading diff…

native/apple/Package.swift

Loading diff…

native/apple/Sources/DocsApp/DocsApp.swift

Loading diff…

native/apple/Sources/DocsKit/CRDTReplica.swift

Loading diff…

native/apple/Sources/DocsKit/DocsAttachments.swift

Loading diff…

native/apple/Sources/DocsKit/DocsClipboardWriter.swift

Loading diff…

native/apple/Sources/DocsKit/DocsCloseGuard.swift

Loading diff…

native/apple/Sources/DocsKit/DocsFonts.swift

Loading diff…

native/apple/Sources/DocsKit/DocsHTMLClipboard.swift

Loading diff…

native/apple/Sources/DocsKit/DocsHTMLScanner.swift

Loading diff…

native/apple/Sources/DocsKit/DocsJumpControls.swift

Loading diff…

native/apple/Sources/DocsKit/DocsModel.swift

Loading diff…

native/apple/Sources/DocsKit/DocsModels.swift

Loading diff…

native/apple/Sources/DocsKit/DocsPagedTextView.swift

Loading diff…

native/apple/Sources/DocsKit/DocsPaging.swift

Loading diff…

native/apple/Sources/DocsKit/DocsResources.swift

Loading diff…

native/apple/Sources/DocsKit/DocsRichClipboard.swift

Loading diff…

native/apple/Sources/DocsKit/DocsRuleDiagnostics.swift

Loading diff…

native/apple/Sources/DocsKit/DocsToolsControls.swift

Loading diff…

native/apple/Sources/DocsKit/DocsWorkspace.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentClipboardInsertion.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentCommands.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentComposition.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentExportControls.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentInputRules.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentKeyboardBindings.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentNativeInputRules.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentPublication.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentThumbnail.swift

Loading diff…

native/apple/Sources/DocsKit/DocumentWordCounts.swift

Loading diff…

native/apple/Sources/DocsKit/EditorToolbar.swift

Loading diff…

native/apple/Sources/DocsKit/NativeDocumentTextView.swift

Loading diff…

native/apple/Sources/DocsKit/NativeTextProjection.swift

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LICENSE-OFL-1.1.txt

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationMono-Bold.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationMono-BoldItalic.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationMono-Italic.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationMono-Regular.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationSans-Bold.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationSans-BoldItalic.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationSans-Italic.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationSans-Regular.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationSerif-Bold.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationSerif-BoldItalic.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationSerif-Italic.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/Fonts/LiberationSerif-Regular.ttf

Loading diff…

native/apple/Sources/DocsKit/Resources/HTMLEntities.json

Loading diff…

native/apple/Sources/DocsKit/Resources/ar.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/bn.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/en.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/es.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/ga.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/hi.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/ja.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/pt.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/ru.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/vi.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/yue.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/Resources/zh-Hans.lproj/Localizable.strings

Loading diff…

native/apple/Sources/DocsKit/TextEditMapping.swift

Loading diff…

native/apple/Tests/DocsKitTests/CRDTClipboardTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/CRDTGenerationTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/CRDTSourceReuseTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/DocumentAssetsTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/DocumentCommandsTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/DocumentCompositionTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/DocumentInputRulesTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/DocumentListCommandTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/DocumentPublicationTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/DocumentWordCountsTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/KeyboardBindingTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/NativeClipboardInputTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/NativeRenderTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/PagingTests.swift

Loading diff…

native/apple/Tests/DocsKitTests/RichClipboardTests.swift

Loading diff…

native/benchmarks/NativePerformanceProbeTests.swift

Loading diff…

native/benchmarks/README.md

Loading diff…

native/crdt/src/bin/wire_fixture.rs

Loading diff…

native/crdt/src/display.rs

Loading diff…

native/crdt/src/input_rules.rs

Loading diff…

native/crdt/src/lib.rs

Loading diff…

native/crdt/src/lists.rs

Loading diff…

native/crdt/src/paste.rs

Loading diff…

native/crdt/src/structure.rs

Loading diff…

native/crdt/tests/replica.rs

Loading diff…

native/crdt/tests/structural_commands.rs

Loading diff…

native/host/src/lib.rs

Loading diff…

native/host/tests/sandbox.rs

Loading diff…

native/ios/Assets.xcassets/AppIcon.appiconset/AppIcon.png

Loading diff…

native/ios/Assets.xcassets/AppIcon.appiconset/Contents.json

Loading diff…

native/ios/Review/DocsReviewPhone.swift

Loading diff…

native/ios/UITests/NativeUITests.swift

Loading diff…

native/ios/project.yml

Loading diff…

native/scripts/build-crdt.sh

Loading diff…

native/scripts/build-iphone.sh

Loading diff…

native/scripts/build-mac.sh

Loading diff…

native/scripts/check-mutations.py

Loading diff…

native/scripts/check-native.sh

Loading diff…

native/scripts/review-ios.py

Loading diff…