-
Notifications
You must be signed in to change notification settings - Fork 0
fix(reliability): contain Hangul engine cleanup failures #365
Copy link
Copy link
Open
Labels
area: authAuthentication, authorization, identity, or tenant isolationAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainCI, GitHub Actions, checks, release, or supply chainarea: dataDatabase, schema, migration, ETL, or lineageDatabase, schema, migration, ETL, or lineagearea: securitySecurity boundary, hardening, or vulnerability preventionSecurity boundary, hardening, or vulnerability preventionbugSomething isn't workingSomething isn't workingpriority: mediumNormal-priority or P2 workNormal-priority or P2 workstatus: triagedOpen issue has an organization taxonomy assignmentOpen issue has an organization taxonomy assignmenttype: bugDefect or incorrect behaviorDefect or incorrect behavior
Description
Activity
Metadata
Metadata
Assignees
Labels
area: authAuthentication, authorization, identity, or tenant isolationAuthentication, authorization, identity, or tenant isolationarea: ci-cdCI, GitHub Actions, checks, release, or supply chainCI, GitHub Actions, checks, release, or supply chainarea: dataDatabase, schema, migration, ETL, or lineageDatabase, schema, migration, ETL, or lineagearea: securitySecurity boundary, hardening, or vulnerability preventionSecurity boundary, hardening, or vulnerability preventionbugSomething isn't workingSomething isn't workingpriority: mediumNormal-priority or P2 workNormal-priority or P2 workstatus: triagedOpen issue has an organization taxonomy assignmentOpen issue has an organization taxonomy assignmenttype: bugDefect or incorrect behaviorDefect or incorrect behavior
Current authoritative state
This cleanup-containment defect is repaired on the existing canonical single-writer Draft PR #320 / branch
feat/hwp-hwpx-authoring. Protected shipped truth remainsmain@3b38ead2d00f44eb578d0689087b9293b3dabe1e; current exact Draft head is5ee6e4d0c3b2a804f39a8d186a8bdd7c2a38a782.Current
src/hangul/index.tsroutes both public import and export cleanup through module-ownedfreeHangulDocument(). Unknown host cleanup throws are caught without reading, stringifying, coercing, or otherwise reflecting the thrown value. If cleanup fails after an otherwise successful operation, Inkspan surfaces the stable payload-redactedHangulDocumentError('ENGINE_CLEANUP_FAILED', 'The Hangul engine failed during cleanup.'). If a normalized primary import/exportHangulDocumentErroralready exists, that primary failure remains authoritative and the secondary cleanup failure is contained.This remains Inkspan-owned local adapter reliability/error-containment scope. The host continues to own the HWP/HWPX engine, filesystem/network/WASM initialization, credentials, persistence, publication, and telemetry.
Test-first lineage
4481666a6bbddb467ac0d9318c45d3b37a411cadproved hostfree()throws could escape or replace an existing normalized Inkspan failure.521900fde4347bc8b9cb4b966d7f1a930e9c7155introduced the module-owned cleanup boundary and stableENGINE_CLEANUP_FAILEDbehavior while preserving an already-established primary error.5ee6e4d0c3b2a804f39a8d186a8bdd7c2a38a782carries that repair together with the broader feat(hangul): import, edit, and export HWP/HWPX #320 Hangul lane, including later engine-boundary hardening. Predecessor workflow/review evidence does not transfer after head movement.Exact-current-head evidence
For unchanged exact head
5ee6e4d0c3b2a804f39a8d186a8bdd7c2a38a782against protectedmain@3b38ead2d00f44eb578d0689087b9293b3dabe1eat the latest fresh refetch:32395091285: completed / success; build/test96510085342checked out the exact head and completed 161 files / 898 tests at 100% statement/branch/function/line coverage, with package/build verification;32395091192: completed / success;32395091052: completed / success;All observed repository-owned exact-head workflows are terminal success. The absent qualifying approval remains non-passing; repository technical success does not replace separately applicable central or review governance.
Integration boundary
The behavioral defect is repaired on active Draft #320 but is not protected-main shipped behavior. Keep this issue open until #320 integrates under live governance. Keep #320 Draft/unmerged while #118 owns the frozen
v0.6.0publication/provenance boundary. Any #320 head/base/ruleset movement invalidates corresponding exact-head evidence and requires fresh revalidation. Do not create a competing Hangul writer, transfer predecessor evidence, self-approve, weaken gates, move protected main, or fabricate release identity.