fix(reliability): validate runtime image configuration - #216
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
Signed-off-by: Seongho Bae <me@seonghobae.me>
Signed-off-by: Seongho Bae <me@seonghobae.me>
|
Restacked onto current protected Validation at
Malformed containers, hostile descriptors, unknown keys, and invalid numeric image settings fail closed before extension setup; documented zero-disable semantics remain intact. @codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Remove the duplicated Python support contract changes from this image-config branch. PR #405 remains the single writer while this branch keeps its runtime validation delta. Signed-off-by: Seongho Bae <seonghobae@users.noreply.github.com> Commit-Message-Assisted-by: Claude (via Claude Code)
Closes #215.
Closes #220.
Scope and ownership
This Draft is the canonical single-writer lane for fail-closed runtime validation of public
BuildExtensionsOptionsand nestedImageConfig. JavaScript, deserialized, or otherwise untyped hosts must not be able to weaken local image/resource policy through malformed containers, accessors, unknown keys, hostile reflection/proxies, or invalid numeric values. This remains Inkspan-owned local extension configuration only; transport, persistence, authorization, tenancy, credentials, network/model/provider policy, deployment, migration, retention, and durable audit remain host-owned.TDD lineage
3995d336c4a8aa06b4632732fadc48816683165acovered malformed containers/accessors/non-enumerable runtime configuration.f18fd401775a34ea1fa679df6d71cc9945ce52db: CI31511031148failed at the new unknown string/symbol regressions while Security31511031203and SAST31511031166succeeded.9e1611b281c3cdb2243107c9e69b4dd9b919cc65added hostile own-key redaction coverage; its hosted run was cancelled by the next source push and is not promoted as passing evidence.Current branch behavior rejects malformed top-level build options and nested image configuration, uses bounded own-key/descriptor reflection before reads, accepts only documented enumerable data-property keys, validates
maxSizeBytes/maxDimensionas non-negative safe integers (zero preserving documented disable semantics), validatesqualityas finite[0,1], redacts hostile reflection failures, and preserves valid/default extension, image, paste/drop/upload, package, and host-composition behavior.Protected-main synchronization
Protected shipped truth and the frozen
v0.6.0source candidate aremain@3b38ead2d00f44eb578d0689087b9293b3dabe1e.Current exact head is
85aac6e55b4839b456b6ed464dbab78fd9d402c6. It is a non-destructive two-parent synchronization commit whose first parent is prior branch headc2d6219e175b5e0471dc76054a877225447c3d1cand whose second parent is exact protected main3b38ead2d00f44eb578d0689087b9293b3dabe1e. Its tree is exact protected main plus only:src/extensions/buildExtensionsRuntimeBoundary.test.ts;src/extensions/imageConfigRuntime.test.ts;src/extensions/kit.ts.Fresh compare resolves the merge base exactly to protected main, reports 15 ahead / 0 behind, and reports exactly those three files. No force push or destructive rebase was used.
Exact-current-head evidence
For unchanged exact head
85aac6e55b4839b456b6ed464dbab78fd9d402c6at the latest refetch:32101702170: completed / success;32101702155: completed / success;32101702154: completed / success;The earlier queued/in-progress snapshot is superseded by these terminal repository results. They are exact-current-head technical evidence only: they do not establish any separately applicable central required workflow or qualifying independent approval. Absent, queued, skipped, cancelled, stale, predecessor-only, status-only, or model-only evidence remains non-passing.
Governance and integration boundary
Keep this PR Draft/unmerged while #118 owns exact protected
v0.6.0tag/publication/provenance/digest operational acceptance and while qualifying independent approval plus every applicable exact-current-head governance gate remain incomplete. Before any lifecycle transition, refetch unchanged head, protected main, ancestry/mergeability, live rules, formal reviews/threads, and every applicable repository/central workflow. Do not transfer predecessor evidence, weaken gates, self-approve, move protected main, or fabricate tag/release identity.