feat(hangul): import, edit, and export HWP/HWPX - #320
Draft
seonghobae wants to merge 42 commits into
Draft
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #319 when this Draft satisfies all applicable exact-head gates and the release freeze permits integration.
Problem and scope
Inkspan needs local HWP/HWPX import, editing, and export without granting the library filesystem, network, credential, service, database, model, tenancy, or deployment authority. The implementation therefore keeps the document engine host-injected and projects only a bounded structural document JSON contract across the public package boundary.
Implemented slice
HangulDocumentEngine.finallypaths./hangulpackage surface without requiring consumers to resolve TipTap declaration types.This slice does not execute macros, scripts, links, or external relationships and does not acquire transport, persistence, authn/authz, tenancy, durable audit, migration, retention, credential, model/provider, or release authority.
Test-first and repair lineage
42bf1638d5e10a9b2d56e6a36866f0ef77bf194ddefined the HWP/HWPX authoring contract before the implementation.f49b1a1adcb171d2193c016ed0dea68db9709e86and43d48779c2b5e475e5402346fdff88552b582811introduced the bounded bridge and editable document behavior.c9290106ba222b318907abfb59e140a15d39351dremoved unreachable nullish mark fallbacks that alone prevented the repository's 100% branch-coverage gate.c87be1f9ccbc456639ecdb65177cb2fa27e39b85replaced the emitted@tiptap/coredeclaration dependency with a framework-neutral structural JSON contract so a strict standalone packed consumer can compile the/hangulsubpath.e25a93599d55fe8c34db73eb4ce67413443a72f6: added exact assertions that unsupported caller-controlled block and mark types must not be reflected in diagnostics.8d6e8754fc1db137cea2bb38e0819d271a821a26: changed those two diagnostics to fixed payload-redacted messages while preserving stable error codes.Current contract
UNSUPPORTED_DOCUMENT_MARKand a fixed message.UNSUPPORTED_DOCUMENT_NODEand a fixed message.typevalue.Exact-head evidence
Current exact head:
8d6e8754fc1db137cea2bb38e0819d271a821a26.31763028607: successful.31763028698: successful.31763028634: successful.0.0.31763027808: still in progress and therefore not counted as passing.The live protected base is
main@e8109ec2a17de8bd6594487aa12c8c8a93cb2c03. Any later head movement invalidates this exact-head evidence and requires fresh verification.Integration and release boundary
Keep this PR Draft and unmerged while #118 freezes the protected
v0.6.0release candidate. Do not advance protected main, fabricate tag/release identity, or describe this next-release feature as shipped. Readiness requires the unchanged current head, completion of every applicable required workflow including Strix, zero valid unresolved findings, and release-order authorization.