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