Skip to content
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
484 commits
Select commit Hold shift + click to select a range
bff157c
test(workflow): reject impossible claim attempt at command boundary
seonghobae Sep 3, 2026
cfb9a02
fix(workflow): reject impossible claim attempts before arbitration
seonghobae Sep 3, 2026
0c0c681
test(workflow): require exact effect-start authority before invocation
seonghobae Sep 3, 2026
637da32
fix(workflow): fail closed on unproven effect-start authority
seonghobae Sep 3, 2026
891fa74
test(workflow): require durable terminal authority
seonghobae Sep 3, 2026
3685ce5
fix(workflow): verify durable terminal authority
seonghobae Sep 4, 2026
4f4625d
test(workflow): reject substituted task-effect claim authority
seonghobae Sep 4, 2026
da225d1
fix(workflow): bind runner claims to admitted task authority
seonghobae Sep 4, 2026
c744f9d
test(workflow): reject impossible runner claim attempts
seonghobae Sep 4, 2026
f3a0226
fix(workflow): reject impossible runner claim attempts
seonghobae Sep 4, 2026
3f42df7
test(workflow): reject non-canonical runner claim authority
seonghobae Sep 4, 2026
da3c53c
fix(workflow): enforce canonical runner claim identity
seonghobae Sep 4, 2026
fb54bab
test(workflow): reject malformed claim before state port
seonghobae Sep 4, 2026
eca1e63
fix(workflow): admit claim id before state mutation
seonghobae Sep 4, 2026
5c17c82
fix(toolchain): regenerate lockfile and repair stale test fixtures
claude Sep 4, 2026
a14cbe0
fix(ci): make wheel isolation contract indentation-agnostic
seonghobae Sep 4, 2026
7188da7
Merge remote-tracking branch 'origin/main' into workflow-state-store-…
seonghobae Sep 4, 2026
190908e
Merge remote-tracking branch 'origin/main' into cloudflare-toolchain-…
seonghobae Sep 4, 2026
03f08ed
fix(reviewer): bind failed checks to actionable source evidence
seonghobae Sep 4, 2026
182d63e
test(reviewer): require one RCA per failed check
seonghobae Sep 4, 2026
6ff7954
fix(reviewer): model exact failed-check source binding
seonghobae Sep 4, 2026
2ad138f
fix(reviewer): bind each failed check to its own RCA
seonghobae Sep 4, 2026
bd364a0
test(reviewer): bind actionable RCA to exact check
seonghobae Sep 4, 2026
20c35e7
fix(reviewer): require exact failed-check identity in RCA
seonghobae Sep 4, 2026
2361b76
test(reviewer): cover exact failed-check causal binding
seonghobae Sep 4, 2026
1f7d76d
docs(reviewer): document failed-check causal binding
seonghobae Sep 4, 2026
2238410
docs(reviewer): make failed-check RCA contract code-current
seonghobae Sep 4, 2026
0a6fac8
feat(reviewer): enforce actionable finding contract (#549)
seonghobae Sep 4, 2026
b2d2853
docs(reviewer): align sandbox contract with actionable findings
seonghobae Sep 4, 2026
7d4aa92
docs(reviewer): document actionable finding publication
seonghobae Sep 4, 2026
e924c46
Merge fix/codegraph-smoke-semantic-gate into failed-check RCA
seonghobae Sep 4, 2026
8a30e4a
Merge fix/codegraph-smoke-semantic-gate into failed-check RCA
seonghobae Sep 4, 2026
5531a53
Merge protected main into noema-core package lane
seonghobae Sep 4, 2026
83c319b
Merge protected main into docs-gate regression lane
seonghobae Sep 4, 2026
ce40546
Merge protected main into acquisition evidence lane
seonghobae Sep 4, 2026
ba480c8
Merge current CodeGraph provenance authority into failed-check RCA
seonghobae Sep 4, 2026
eae8803
Merge current CodeGraph response-classification authority into failed…
seonghobae Sep 4, 2026
dd5c0f0
test(reviewer): inherit lifecycle-prefixed empty-result regression
seonghobae Sep 4, 2026
3e2615f
fix(reviewer): inherit lifecycle-aware CodeGraph classification
seonghobae Sep 4, 2026
ebe554a
style(reviewer): preserve stacked gate structure after restack repair
seonghobae Sep 4, 2026
df7f499
docs(reviewer): inherit semantic empty-result prefix contract
seonghobae Sep 4, 2026
b31de77
merge: restack failed-check RCA on current CodeGraph gate
seonghobae Sep 4, 2026
bc7111a
ci(actions): isolate pull request concurrency
seonghobae Sep 4, 2026
a8d6ba9
test(ci): align image concurrency contract
seonghobae Sep 4, 2026
e4adc92
merge: restack failed-check RCA on reviewer fixture repair
seonghobae Sep 4, 2026
889ceb0
test(ci): require lockfile proof on enabled CI identity
seonghobae Sep 4, 2026
531c0b1
fix(ci): run lockfile reproducibility on enabled CI
seonghobae Sep 4, 2026
49a66e4
fix(ci): retire disabled branch-only lockfile workflow
seonghobae Sep 4, 2026
efe4073
test(ci): track lockfile evidence on application CI
seonghobae Sep 4, 2026
85589b1
docs(gaps): reconcile live Noema commercial lanes
seonghobae Sep 4, 2026
8d0f949
docs(reviewer): carry symbol-seeded recovery contract into failed-che…
seonghobae Sep 4, 2026
39adb66
merge: restack failed-check lane on symbol-seeded reviewer recovery
seonghobae Sep 4, 2026
765757b
fix(actions): centralize hourly development admission
seonghobae Sep 4, 2026
cb04d4f
test(actions): align central development dispatch contract
seonghobae Sep 4, 2026
068ea2f
fix(actions): dispatch centralized product development
seonghobae Sep 4, 2026
f0f9f61
test(actions): reject elapsed model-run termination
seonghobae Sep 4, 2026
b23435f
fix(actions): separate admin timeout from model execution
seonghobae Sep 4, 2026
9e46758
test(actions): drop obsolete model timeout budget assertion
seonghobae Sep 4, 2026
552abc4
test(actions): distinguish admin and model termination
seonghobae Sep 4, 2026
258d0b5
test(actions): remove obsolete elapsed-time budget helper
seonghobae Sep 4, 2026
1cd5cfa
docs(actions): distinguish admin and model termination
seonghobae Sep 4, 2026
482e773
merge: restack failed-check lane on unambiguous CodeGraph recovery
seonghobae Sep 4, 2026
97227ab
merge: inherit bounded CodeGraph recovery coverage
seonghobae Sep 4, 2026
1d8fbdf
merge: inherit lifecycle-safe CodeGraph recovery
seonghobae Sep 4, 2026
dd405f1
merge: inherit exact-whitespace CodeGraph recovery
seonghobae Sep 4, 2026
b61daf1
docs(reviewer): preserve exact-whitespace retrieval contract
seonghobae Sep 4, 2026
3d76ab1
merge: inherit code-current CodeGraph recovery docs
seonghobae Sep 4, 2026
ca300fe
fix(reviewer): preserve exact CodeGraph path scope in failed-check lane
seonghobae Sep 4, 2026
39325bd
docs(reviewer): inherit exact CodeGraph path scope contract
seonghobae Sep 4, 2026
fababd1
test(reviewer): inherit long CodeGraph path identity regression
seonghobae Sep 4, 2026
ef046ed
merge: inherit exact CodeGraph path identity prerequisite
seonghobae Sep 4, 2026
1a2ec03
test(reviewer): inherit CodeGraph scope coverage guard
seonghobae Sep 4, 2026
19c24b4
merge: inherit CodeGraph scope coverage prerequisite
seonghobae Sep 4, 2026
3fdfc1c
docs(reviewer): compose exact long-path recovery with actionable find…
seonghobae Sep 4, 2026
f0ed4b2
merge: inherit exact long-path CodeGraph recovery
seonghobae Sep 4, 2026
0663476
fix(runtime): narrow canonical execution identity after admission
seonghobae Sep 4, 2026
29ad7ac
feat(ci): add exact lockfile policy candidate generator
seonghobae Sep 4, 2026
cfe98c8
fix(ci): bind exact toolchain lockfile transition
seonghobae Sep 4, 2026
32cf314
fix(reviewer): inherit CodeGraph environment isolation
seonghobae Sep 5, 2026
581e5ca
test(reviewer): preserve CodeGraph environment isolation
seonghobae Sep 5, 2026
7c039a8
test(reviewer): inherit ambient CodeGraph authority regression
seonghobae Sep 5, 2026
4df310b
docs(reviewer): retain CodeGraph ambient-authority boundary
seonghobae Sep 5, 2026
99b168e
merge: restack failed-check evidence on CodeGraph isolation
seonghobae Sep 5, 2026
19ebf00
fix(reviewer): preserve actionability while excluding self-check
seonghobae Sep 5, 2026
d3c69c5
test(reviewer): retain self-check cycle regression
seonghobae Sep 5, 2026
70d160e
test(reviewer): retain isolated CodeGraph home regression
seonghobae Sep 5, 2026
a61cc29
fix(reviewer): preserve causal logs with isolated CodeGraph home
seonghobae Sep 5, 2026
491ecad
docs(reviewer): compose actionability with self-check and isolated home
seonghobae Sep 5, 2026
626670d
merge: inherit reviewer self-check and isolated-home prerequisite
seonghobae Sep 5, 2026
61599f8
docs(reviewer): compose complete CodeGraph recovery contract
seonghobae Sep 5, 2026
13749c1
merge: inherit complete CodeGraph recovery boundary
seonghobae Sep 5, 2026
6d9626e
test(reviewer): inherit independent check evidence RED
seonghobae Sep 5, 2026
2c041db
fix(reviewer): compose independent check evidence boundary
seonghobae Sep 5, 2026
1160aca
docs(reviewer): compose independent evidence cycle rule
seonghobae Sep 5, 2026
76c5d70
merge: inherit independent evidence prerequisite
seonghobae Sep 5, 2026
decfcfb
test(actions): keep buyer-gap development work-conserving
seonghobae Sep 5, 2026
5e84885
fix(actions): keep buyer-gap development work-conserving
seonghobae Sep 5, 2026
9032aea
fix(actions): isolate concurrent buyer-gap proposal paths
seonghobae Sep 5, 2026
024a94a
docs(actions): document work-conserving path isolation
seonghobae Sep 5, 2026
da66ec6
docs(doctoring): record work-conserving isolation decision
seonghobae Sep 5, 2026
7d850f6
test(actions): require work-conserving path isolation
seonghobae Sep 5, 2026
3bc5449
fix(reviewer): preserve distinct deterministic findings
seonghobae Sep 5, 2026
10f4241
test(reviewer): retain distinct deterministic finding evidence
seonghobae Sep 5, 2026
08720c9
merge: compose deterministic finding identity prerequisite
seonghobae Sep 5, 2026
db1b6a6
test(reviewer): inherit CodeGraph probe-budget boundary
seonghobae Sep 5, 2026
5b6bdc8
merge: restack #548 on #546 reviewer prerequisite
seonghobae Sep 5, 2026
5bf6ed6
merge: restack #548 on complete CodeGraph recovery
seonghobae Sep 5, 2026
dcb961a
fix(reviewer): preserve complete CodeGraph primary scope
seonghobae Sep 5, 2026
fed0831
docs(reviewer): retain exact CodeGraph scope in actionable lane
seonghobae Sep 5, 2026
52804b1
merge: restack #548 on complete CodeGraph primary scope
seonghobae Sep 5, 2026
76d20ff
merge(reviewer): compose symlink-safe CodeGraph seed boundary
seonghobae Sep 5, 2026
852fae2
merge(reviewer): inherit symlink-parent recovery regression
seonghobae Sep 5, 2026
a80493d
merge(reviewer): document symlink-free recovery on #548
seonghobae Sep 5, 2026
51b3bf8
merge: restack #548 on symlink-safe CodeGraph seed boundary
seonghobae Sep 5, 2026
0b7b911
merge: restack #548 on review-wait cycle repair
seonghobae Sep 5, 2026
c5ed0cf
merge: restack #548 on complete symbol-map recovery
seonghobae Sep 5, 2026
1b26024
fix(runtime): document durable routing exports
seonghobae Sep 5, 2026
5d97fa8
fix(tests): align commercial dispatch with work-conserving admission
seonghobae Sep 5, 2026
b91b1c4
fix(tests): track path-isolated publisher revalidation
seonghobae Sep 5, 2026
abaf95c
merge: restack #548 on physical CodeGraph checkout provenance
seonghobae Sep 5, 2026
86038ef
merge: restack #548 on exact CodeGraph path identity
seonghobae Sep 5, 2026
f69b3a8
docs: fix stale "active PR #80" references in automation-threat-model.md
claude Sep 5, 2026
0a039bf
merge: restack #548 on Unicode CodeGraph scope parity
seonghobae Sep 5, 2026
7cbdeee
merge: restack #548 on executable CodeGraph retry semantics
seonghobae Sep 5, 2026
fa93ba3
merge: restack #548 on physical Docker checkout provenance
seonghobae Sep 5, 2026
2814e5e
test(docs): bind publisher threat controls to protected implementation
seonghobae Sep 5, 2026
107a973
docs: reflect protected atomic publisher controls
seonghobae Sep 5, 2026
19315d9
merge: restack #548 on complete reviewer context
seonghobae Sep 5, 2026
a7066ea
merge: restack #548 on fail-before-execution reviewer scope
seonghobae Sep 5, 2026
6f57924
fix(reviewer): preserve prompt-data boundary in failed-check lane
seonghobae Sep 5, 2026
7e2522e
merge: restack #548 on JSON-scope reviewer recovery
seonghobae Sep 5, 2026
24c9993
merge: restack #548 on JSON-safe symbol recovery
seonghobae Sep 5, 2026
1209874
docs(reviewer): merge JSON-safe seed contract into #548
seonghobae Sep 5, 2026
bb7aacf
merge: restack #548 on reviewer recovery documentation
seonghobae Sep 5, 2026
f0685c2
test(workflow): cover failure authority boundaries
seonghobae Sep 5, 2026
7e5ff9c
test(workflow): cover both foreign snapshot identities
seonghobae Sep 5, 2026
dd73533
merge: restack #548 on exact Linux path identity prerequisite
seonghobae Sep 5, 2026
19c6fa2
test(workflow): fail on extra durable command payload
seonghobae Sep 5, 2026
10708af
fix(workflow): minimize durable command transport payload
seonghobae Sep 5, 2026
65a256b
test(reviewer): align #548 deterministic identity fixture
seonghobae Sep 5, 2026
bb8fe78
merge: restack #548 on reviewer hosted-RED repair
seonghobae Sep 5, 2026
a545af0
test(actions): make spawn spy test callback async
seonghobae Sep 5, 2026
00e871e
test(workflow): pin command operation during transport
seonghobae Sep 5, 2026
1f7f5b9
fix(workflow): snapshot command operation for transport
seonghobae Sep 5, 2026
e88a379
test(workflow): reject nested claim payload leakage
seonghobae Sep 5, 2026
81abbab
test(workflow): cover nested checkpoint transport minimization
seonghobae Sep 5, 2026
f915d13
test(workflow): preserve fail-closed nested payload validation
seonghobae Sep 5, 2026
037ec4e
fix(workflow): minimize nested durable command payloads
seonghobae Sep 5, 2026
d3b42ac
merge: restack #548 on reviewer docstring repair
seonghobae Sep 5, 2026
d23a055
test(actions): align readiness fixtures with current authority
seonghobae Sep 5, 2026
74a9493
test(workflow): cover missing durable state authority paths
seonghobae Sep 5, 2026
6793a32
test(workflow): cover unexpected durable state errors
seonghobae Sep 5, 2026
4d8f314
test(reviewer): cover failed-check edge branches
seonghobae Sep 5, 2026
2fa21a1
merge: restack #548 on protected reviewer truth
seonghobae Sep 6, 2026
d4e3f27
merge: restack #542 on protected reviewer truth
seonghobae Sep 6, 2026
b0f747a
merge: restack #553 on protected reviewer truth
seonghobae Sep 6, 2026
f6c6af5
merge: restack #543 on protected reviewer truth
seonghobae Sep 6, 2026
2de27d2
merge: restack #550 on protected reviewer truth
seonghobae Sep 6, 2026
e32e7e7
Restack acquisition evidence on protected reviewer foundation
seonghobae Sep 6, 2026
ffea69e
Restack Cloudflare toolchain on protected reviewer foundation
seonghobae Sep 6, 2026
52b66ca
merge(reviewer): restack shared noema-core on protected reviewer foun…
seonghobae Sep 6, 2026
cf5dfa1
merge(context-fabric): restack shared noema-core on protected context…
seonghobae Sep 6, 2026
6f09d16
merge(context-fabric): restack required-gate regression on protected …
seonghobae Sep 6, 2026
ec3dbdf
merge(context-fabric): restack automation threat-model docs on protec…
seonghobae Sep 6, 2026
a0823f1
merge(context-fabric): restack failed-check evidence on protected con…
seonghobae Sep 6, 2026
81ef8b7
merge(context-fabric): restack acquisition evidence on protected cont…
seonghobae Sep 6, 2026
158d818
merge(context-fabric): restack concurrency owner on protected context…
seonghobae Sep 6, 2026
6953eaa
merge(context-fabric): restack durable workflow authority on protecte…
seonghobae Sep 6, 2026
7224d65
fix(lockfile): rebind policy to protected context admission
seonghobae Sep 6, 2026
197fb05
merge(context-fabric): restack Cloudflare toolchain on protected cont…
seonghobae Sep 6, 2026
6551a86
test(reviewer): expose non-exact finding line admission
seonghobae Sep 6, 2026
5c20453
fix(reviewer): require exact positive finding lines
seonghobae Sep 6, 2026
02ec900
chore(reviewer): keep line-contract repair minimal
seonghobae Sep 6, 2026
908d9cc
docs(release): restore noema-core Unreleased note
seonghobae Sep 6, 2026
f6ec87a
fix(reviewer): retain self-cycle exclusion
seonghobae Sep 6, 2026
fc2655b
merge: converge automation threat model onto protected #533 truth
seonghobae Sep 6, 2026
c9c2d86
merge: converge exact-head gate regression onto protected #533 truth
seonghobae Sep 6, 2026
3cb7261
merge: converge failed-check evidence onto protected #533 truth
seonghobae Sep 6, 2026
6d6e0a4
merge: converge noema-core Shared Kernel onto protected #533 truth
seonghobae Sep 6, 2026
fec1025
chore(hourly): restack run-independence lane on protected main
seonghobae Sep 6, 2026
a1172fc
merge: converge noema-core Shared Kernel onto protected #552 truth
seonghobae Sep 6, 2026
12f8e3d
merge: converge workflow-concurrency lane onto protected #552 truth
seonghobae Sep 6, 2026
a6970ca
merge: converge exact-head gate regression onto protected #552 truth
seonghobae Sep 6, 2026
722fa12
merge: converge automation threat model onto protected #552 truth
seonghobae Sep 6, 2026
75f93fd
merge: converge failed-check evidence onto protected #552 truth
seonghobae Sep 6, 2026
93bfa5e
merge: converge durable workflow authority onto protected #552 truth
seonghobae Sep 6, 2026
424c149
fix(toolchain): rebind lock policy to current protected base
seonghobae Sep 6, 2026
591795a
merge: converge Cloudflare toolchain lane onto protected #552 truth
seonghobae Sep 6, 2026
21ead9f
fix(acquisition): converge evidence authority on current main
seonghobae Sep 6, 2026
049a57d
merge: restack reviewer evidence after #527 trust integration
seonghobae Sep 6, 2026
8415e3c
merge: restack noema-core after #527 trust integration
seonghobae Sep 6, 2026
f07679d
merge: restack exact-head gate regression after #527 trust integration
seonghobae Sep 6, 2026
4659f8b
merge: restack automation threat model after #527 trust integration
seonghobae Sep 6, 2026
ad0f512
merge: restack workflow concurrency after #527 trust integration
seonghobae Sep 6, 2026
bd4c907
merge: restack acquisition evidence after #527 trust integration
seonghobae Sep 6, 2026
7c8c269
fix(toolchain): rebind lockfile policy to protected #527 trust merge
seonghobae Sep 6, 2026
6b7f0a7
merge: restack toolchain boundary after #527 trust integration
seonghobae Sep 6, 2026
9236775
merge: restack durable workflow state after #527 trust integration
seonghobae Sep 6, 2026
8e7e0bb
test(workflow): reject deleted retained transition receipts
seonghobae Sep 6, 2026
35f80f2
fix(workflow): fail closed on deleted retained transition receipts
seonghobae Sep 6, 2026
8afef54
test(workflow): reject explicit empty transition ledger
seonghobae Sep 6, 2026
55194e1
fix(workflow): reject explicit empty transition ledger
seonghobae Sep 6, 2026
4185df2
test(workflow): reject missing initialized provenance root
seonghobae Sep 6, 2026
1909f23
fix(workflow): require initialized provenance root
seonghobae Sep 6, 2026
84a2cd0
fix(workflow): preserve legacy first-claim provenance
seonghobae Sep 6, 2026
2bb6076
test(workflow): cover malformed retained receipt rejection
seonghobae Sep 6, 2026
7f743f4
merge(main): restack durable workflow state after trusted source roll…
seonghobae Sep 6, 2026
399d51d
merge(main): restack acquisition evidence after protected trust integ…
seonghobae Sep 6, 2026
3ed5bd9
merge(main): restack workflow concurrency after protected trust integ…
seonghobae Sep 6, 2026
a016521
merge(main): restack automation threat model after protected trust in…
seonghobae Sep 6, 2026
e255bf1
merge(main): restack exact-head gate regression after protected trust…
seonghobae Sep 6, 2026
82366b2
merge(main): restack noema-core after protected trust integration
seonghobae Sep 6, 2026
e24d310
merge(main): restack reviewer evidence after protected trust integration
seonghobae Sep 6, 2026
4616b5e
test(workflow): isolate malformed retained receipt invariant
seonghobae Sep 6, 2026
61632a6
fix(lockfile): bind policy to current protected base
seonghobae Sep 6, 2026
2eba9d6
merge(main): restack toolchain policy after protected trust integration
seonghobae Sep 6, 2026
d9b2a95
Merge pull request #526 from ContextualWisdomLab/fix/acquisition-sour…
seonghobae Sep 7, 2026
b14b37c
merge(restack): rebase #543 onto protected main d9b2a95
seonghobae Sep 7, 2026
4c213e1
merge(restack): converge #553 on protected main d9b2a95
seonghobae Sep 7, 2026
46439b1
merge(main): non-force restack durable workflow lane after #526
seonghobae Sep 7, 2026
aeb9c46
merge(main): non-force restack workflow concurrency after #526
seonghobae Sep 7, 2026
a5cd666
chore: restack noema-core foundation on protected main
seonghobae Sep 7, 2026
fdf1d8e
docs: preserve noema-core changelog on current main
seonghobae Sep 7, 2026
5cd6341
Merge pull request #543 from ContextualWisdomLab/chore/paths-ignore-fix
seonghobae Sep 7, 2026
4fe6fe8
chore: restack noema-core on protected main
seonghobae Sep 7, 2026
4c92578
merge(main): non-force restack threat-model docs after #543
seonghobae Sep 7, 2026
289fbb0
merge(main): non-force restack workflow concurrency after #543
seonghobae Sep 7, 2026
6cb43c1
merge(main): non-force restack durable workflow lane after #543
seonghobae Sep 7, 2026
4c1d174
Merge pull request #536 from ContextualWisdomLab/feat/noema-core-shar…
seonghobae Sep 7, 2026
fb44888
chore(restack): merge protected main into #548 branch
seonghobae Sep 7, 2026
31d2e5c
chore: converge #553 on current protected main
seonghobae Sep 7, 2026
210fd23
chore: converge #550 on protected #536 foundation
seonghobae Sep 7, 2026
5380e91
merge(main): non-force converge durable workflow after #536
seonghobae Sep 7, 2026
9f2b8af
fix(workflow): preserve protected noema-core authority
seonghobae Sep 7, 2026
e6de53a
Merge pull request #548 from ContextualWisdomLab/codex/noema-failed-c…
seonghobae Sep 7, 2026
c03d946
chore: converge automation threat model after reviewer evidence merge
seonghobae Sep 7, 2026
f2ec2dc
chore: converge workflow concurrency after reviewer evidence merge
seonghobae Sep 7, 2026
195fdd7
chore: converge durable workflow after reviewer evidence merge
seonghobae Sep 7, 2026
6b5b2c8
Merge pull request #550 from ContextualWisdomLab/codex/actions-concur…
seonghobae Sep 7, 2026
3bd9f54
docs: converge automation threat model after workflow concurrency merge
seonghobae Sep 7, 2026
c2bb6fa
merge(main): converge durable workflow execution after #550
seonghobae Sep 7, 2026
39f3683
Merge pull request #553 from ContextualWisdomLab/docs/fix-stale-pr80-…
seonghobae Sep 7, 2026
ca83929
merge(main): converge durable workflow execution after #553
seonghobae Sep 7, 2026
116ce85
test(toolchain): require post-#553 Cloudflare cleanup convergence
seonghobae Sep 7, 2026
e420b5d
fix(toolchain): implement direct Cloudflare runtime boundary
seonghobae Sep 7, 2026
fd8a38b
fix(ci): strip direct toolchain binaries from validator image
seonghobae Sep 7, 2026
d6394b2
feat(workflow): add atomic durable task claim and checkpoint CAS (#542)
seonghobae Sep 7, 2026
9aa2d9c
fix(toolchain): converge validator boundary after durable workflow in…
seonghobae Sep 7, 2026
c20d915
fix(ci): bind lockfile policy to current protected base
seonghobae Sep 7, 2026
05bc2d4
fix(ci): restore canonical lockfile regeneration evidence
seonghobae Sep 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
271 changes: 262 additions & 9 deletions .github/lockfile-change-policy.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,276 @@
{
"baseSha": "6bc8ed016dc07f95d4e041a3b79ac00c4086b182",
"baseSha": "e1ac9d50f6c646f04be8c137c8acdc7200182fcd",
"bulkChange": null,
"justification": "Remediate GHSA-2v37-7h3g-55p8 by advancing the single transitive nanoid package-lock node from 3.3.17 to the patched 3.3.18 release. Preserve all top-level lock metadata, PostCSS dependency declarations, and unrelated package nodes.",
"justification": "Replace the Wrangler/Miniflare/Sharp transitive development path with direct pinned workerd@1.20260625.1 and esbuild@0.28.1 dependencies for Noema Worker development and deployment tooling. The reviewed lockfile transition removes the Wrangler-owned Miniflare/Sharp/Libvips package set, preserves unchanged package objects and top-level lockfile metadata, and binds the exact protected-main base and regenerated head bytes.",
"packageDigests": {
"node_modules/nanoid": {
"afterSha256": "d05f52cccf4bb2b3faa241c82560bdff38872191f8c2fc9e0fe11d1863c6689c",
"beforeSha256": "eb31926c2b062d6831f465580d52d350ebd0ec8cb0ae8c9b36a92e1bec871af4"
"": {
"afterSha256": "bc4820765f3986a162070a7c499943d4976663ce9dbf4bc0d039bc8111d14c87",
"beforeSha256": "bc4df75e5f7a57a7b5cbb8fca21fe3aada716dcd26e4bad5b889d93c5251e20c"
},
"node_modules/@cloudflare/kv-asset-handler": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "baf9a6828aa48335b6b1ddc90c064891668bf48ed319cb98bad1aae065e5b110"
},
"node_modules/@cloudflare/unenv-preset": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "3975dc435686ec2387ff6065520031589c8608c4040c1bffcfcf169693670bc6"
},
"node_modules/@cspotcode/source-map-support": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "be3b4d0e114620b28f168efe57e2f082751ec98c255e5ff44642903ca8c8abc1"
},
"node_modules/@img/colour": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "0ec9a3855c0d275ee3ddf26fc218c24bcd73c70ae1be64bc783adcee728fabd3"
},
"node_modules/@img/sharp-darwin-arm64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "33753afdce1a4ef04bdbe3955ee21f6f7ec2d0e24950d2d48853ac21d06e0207"
},
"node_modules/@img/sharp-darwin-x64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "92c5e9c8a824389e0d714e015b25bbfe4304b1968f9fc4551c31aeaa84953d7e"
},
"node_modules/@img/sharp-freebsd-wasm32": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "e93d997495809b38e24ee02aae3570fd5388f6f29aca13ecc5790df62c4bf2ee"
},
"node_modules/@img/sharp-libvips-darwin-arm64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "5cbb579d4f882d736f41709f4ab8df92b444cc24a04ddf4568b6248903988dea"
},
"node_modules/@img/sharp-libvips-darwin-x64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "52cc3b0d34d5f51e30fc3018eea0cf640c5963e6b662cacf9f6c377cc35b6dda"
},
"node_modules/@img/sharp-libvips-linux-arm": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "e5de57abbf3750ebae77db880bdee4dd9bd5823468fe4d6a54b6f0076508c120"
},
"node_modules/@img/sharp-libvips-linux-arm64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "b86ba40d539fb3254d0a045e330fa90141a3907deefadaf264ce4831512035a4"
},
"node_modules/@img/sharp-libvips-linux-ppc64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "666eb414e63b3f4a6f2338f14d6f59127c6f73562659425004d9258a499160a8"
},
"node_modules/@img/sharp-libvips-linux-riscv64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "c3e3d0a53cec8bb22b1319219dfcd6fc5d059cd2b133827668fac6e301f77c53"
},
"node_modules/@img/sharp-libvips-linux-s390x": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "6273b939a75e550fe2088ac52d90f1bb9918f93330d6b83a7df7db46b7b41efd"
},
"node_modules/@img/sharp-libvips-linux-x64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "21453f05d9d156d477d80b5f6726993033c6e7cc1ffba71d93042fa51648acb4"
},
"node_modules/@img/sharp-libvips-linuxmusl-arm64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "84a3b95e19257d67c939f31d82dc6549cad376ead8dc7a9e451e6cfb1d1b3b3e"
},
"node_modules/@img/sharp-libvips-linuxmusl-x64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "4c5fa48ebba69feada47c1b31653a099b461543c104807afdcecf437a1f05f3e"
},
"node_modules/@img/sharp-linux-arm": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "a65b10a97d8310bcb4d5e97be980320e91267d69b2b8fcd80aaa8134609e282c"
},
"node_modules/@img/sharp-linux-arm64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "07b70ea8a68735233da5aabe69863f359f77bf152addd717311907255038bd5c"
},
"node_modules/@img/sharp-linux-ppc64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "5a3f8bb47ada74df86462a8eb4c283cf2f5fc072974c81db4d98a5bd2774bfc6"
},
"node_modules/@img/sharp-linux-riscv64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "807f16be2b136919b9089a0df5fc506b3f66f2708205659eb7e11945a578e070"
},
"node_modules/@img/sharp-linux-s390x": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "dea04183a47348ebf4455ffc9f7b56d750a388bd59900937a3501a5f886fb0b5"
},
"node_modules/@img/sharp-linux-x64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "e8b884ec932accbb31472f9532d30d9dea8cf69e3665a02a47ff8a278f4a5d26"
},
"node_modules/@img/sharp-linuxmusl-arm64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "5d81370f988ddf9cfd71f818640fb1ddba3c61f34936ccd16f9318abb45e070a"
},
"node_modules/@img/sharp-linuxmusl-x64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "dcb1c509e3d9a5a917cfe6b3868acfe372bd4045a4bdeedb3c265d1c9ab2c1d8"
},
"node_modules/@img/sharp-wasm32": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "d372231a4a3a965acefef6e4082f35d7faafee7c0ac332d333267eed0230f73f"
},
"node_modules/@img/sharp-webcontainers-wasm32": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "3950aee6b7b49d472361e907dd0a38966a4362a9dcd8e3a94cb91187965051da"
},
"node_modules/@img/sharp-win32-arm64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "d7b719d77aad3ce761066678008a2b59ee708da1eac1edca5a52d595d064623c"
},
"node_modules/@img/sharp-win32-ia32": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "6ac2a1af086a1bd93c725d3379a2d63abb1ccb96fa22d11c320fab8ee9323c0e"
},
"node_modules/@img/sharp-win32-x64": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "83788206d3b5d601a59383a2e647e679ae3499f41a4c7c609f5d414fc876edf8"
},
"node_modules/@jridgewell/trace-mapping": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "946e048fd4f5f06fd3a2558cecdd7a7e1a179d1c60f88c1a10deff92904cefb6"
},
"node_modules/@poppinss/colors": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "9f6d9e5e656687bf9365aad30b1cd57e2005670d483825ff6a9041eb264c0a8c"
},
"node_modules/@poppinss/dumper": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "4636d1e8ce5d92e9e6a74b8e331a1d0599151c423620605b7f0d391a6a324f45"
},
"node_modules/@poppinss/exception": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "511ab6d7dda3a25412e2d6459b7458c52d35e8d5a38ccea9e8a1c767c2c2b6a3"
},
"node_modules/@sindresorhus/is": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "9cf703780184209ca125688afa81e6cf6a49ca4cee7a6442648003875ffa7ede"
},
"node_modules/@speed-highlight/core": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "b0d9aede1a43525b35c83c66cfe23301fefa32d437344a723f156bcb3bde75c6"
},
"node_modules/blake3-wasm": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "2edd7b9afb0a3edfde7bf65df2176834db86926fb79bcb81757f823ece33e0e8"
},
"node_modules/cookie": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "c83cc50b9edf74fff002ee1696f718a7893a2790be1c87668878d4259a9ed661"
},
"node_modules/error-stack-parser-es": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "07d175e9a9ce5da0ce6a91827c6c941d31f51684281f0060b3dc3df25db6cc02"
},
"node_modules/kleur": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "03d1698c44fce7057c0b68d8cba4bfad5ca7382a948e162d49d806f81ee4859c"
},
"node_modules/miniflare": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "3e4f60462e1a727ae18971cc7805b70cee7a5e1ba6265490550d3cd545ce7c2e"
},
"node_modules/path-to-regexp": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "206d20489bfee22f1bd8a9ef8b31f0c7bdf9544b7272decd73314db823528dd1"
},
"node_modules/sharp": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "185d39448de75db02f7418462440e6b8755e9f1e94fd88b66712835a9f22153a"
},
"node_modules/supports-color": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "1a548a2b86a1d2addc0f2fd3dc4a3da1f2a81cd8e94fe1f0d431de96989d234c"
},
"node_modules/undici": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "ab97f8ae955e187ed30dae56574c6f24277da4c4068383998f42dd18990d6c9b"
},
"node_modules/unenv": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "cd1ef9a2d07200fe1d861ae9a4f81c1b1990312c1c6d88ecf844246efb33f6fe"
},
"node_modules/wrangler": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "b52ea831e8e92ebe06b3ed1776cc1f781f7de77ece30a4237a95ff477df65455"
},
"node_modules/ws": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "8312a6b5d3e17eda63344fe09189e016ad35b526bbbef54af5468d22eb9902a6"
},
"node_modules/youch": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "faaf7ca34f95ab4401519c3222a9b37ef594158220cdb37ea4f3c483817e81d4"
},
"node_modules/youch-core": {
"afterSha256": "398b676e47d03a29016ee92fe378b8b4f1b3e965390c4c64ce78d27f79df74d1",
"beforeSha256": "054aee49bedca6747ec8256719b1a9d6c5e834903f6606daa12ef8497dc70043"
}
},
"schemaVersion": 3,
"sources": [
"https://github.com/advisories/GHSA-2v37-7h3g-55p8",
"https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz"
"https://registry.npmjs.org/wrangler/-/wrangler-4.105.0.tgz",
"https://registry.npmjs.org/miniflare/-/miniflare-4.20260625.0.tgz",
"https://registry.npmjs.org/sharp/-/sharp-0.35.3.tgz",
"https://registry.npmjs.org/workerd/-/workerd-1.20260625.1.tgz",
"https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz"
],
"targetPackages": [
"node_modules/nanoid"
"",
"node_modules/@cloudflare/kv-asset-handler",
"node_modules/@cloudflare/unenv-preset",
"node_modules/@cspotcode/source-map-support",
"node_modules/@img/colour",
"node_modules/@img/sharp-darwin-arm64",
"node_modules/@img/sharp-darwin-x64",
"node_modules/@img/sharp-freebsd-wasm32",
"node_modules/@img/sharp-libvips-darwin-arm64",
"node_modules/@img/sharp-libvips-darwin-x64",
"node_modules/@img/sharp-libvips-linux-arm",
"node_modules/@img/sharp-libvips-linux-arm64",
"node_modules/@img/sharp-libvips-linux-ppc64",
"node_modules/@img/sharp-libvips-linux-riscv64",
"node_modules/@img/sharp-libvips-linux-s390x",
"node_modules/@img/sharp-libvips-linux-x64",
"node_modules/@img/sharp-libvips-linuxmusl-arm64",
"node_modules/@img/sharp-libvips-linuxmusl-x64",
"node_modules/@img/sharp-linux-arm",
"node_modules/@img/sharp-linux-arm64",
"node_modules/@img/sharp-linux-ppc64",
"node_modules/@img/sharp-linux-riscv64",
"node_modules/@img/sharp-linux-s390x",
"node_modules/@img/sharp-linux-x64",
"node_modules/@img/sharp-linuxmusl-arm64",
"node_modules/@img/sharp-linuxmusl-x64",
"node_modules/@img/sharp-wasm32",
"node_modules/@img/sharp-webcontainers-wasm32",
"node_modules/@img/sharp-win32-arm64",
"node_modules/@img/sharp-win32-ia32",
"node_modules/@img/sharp-win32-x64",
"node_modules/@jridgewell/trace-mapping",
"node_modules/@poppinss/colors",
"node_modules/@poppinss/dumper",
"node_modules/@poppinss/exception",
"node_modules/@sindresorhus/is",
"node_modules/@speed-highlight/core",
"node_modules/blake3-wasm",
"node_modules/cookie",
"node_modules/error-stack-parser-es",
"node_modules/kleur",
"node_modules/miniflare",
"node_modules/path-to-regexp",
"node_modules/sharp",
"node_modules/supports-color",
"node_modules/undici",
"node_modules/unenv",
"node_modules/wrangler",
"node_modules/ws",
"node_modules/youch",
"node_modules/youch-core"
],
"topLevelMetadataDigests": {
"afterSha256": "354c77096d1795b6f33b903ac8b54c3922a045279413f3e8681c78c1fe5278b1",
"beforeSha256": "354c77096d1795b6f33b903ac8b54c3922a045279413f3e8681c78c1fe5278b1"
}
}
}
46 changes: 46 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,52 @@
console.log(`Lockfile change control passed for ${result.changedPackages.length} changed package node(s).`);
NODE

- name: regenerate canonical lockfile in disposable workspace
id: regenerate_lockfile
shell: bash
run: |
set -euo pipefail
regeneration_root="$RUNNER_TEMP/noema-lockfile-regeneration"
rm -rf "$regeneration_root"
mkdir -p "$regeneration_root"
cp package.json package-lock.json .npmrc "$regeneration_root/"
(
cd "$regeneration_root"
npm install \
Comment thread
seonghobae marked this conversation as resolved.
--package-lock-only \
--ignore-scripts \
--no-audit \
--no-fund \
--legacy-peer-deps=false \
--install-links=false
)
cp "$regeneration_root/package-lock.json" "$RUNNER_TEMP/noema-package-lock-regenerated.json"
if cmp --silent package-lock.json "$RUNNER_TEMP/noema-package-lock-regenerated.json"; then
printf 'match=true\n' >> "$GITHUB_OUTPUT"
else
printf 'match=false\n' >> "$GITHUB_OUTPUT"
diff -u package-lock.json "$RUNNER_TEMP/noema-package-lock-regenerated.json" \
> "$RUNNER_TEMP/noema-package-lock-regeneration.diff" || true
fi

- name: upload regenerated lockfile evidence
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: noema-lockfile-regeneration-${{ github.event.pull_request.head.sha || github.sha }}
path: |
${{ runner.temp }}/noema-package-lock-regenerated.json
${{ runner.temp }}/noema-package-lock-regeneration.diff
if-no-files-found: error
retention-days: 1

- name: require committed lockfile reproducibility
if: steps.regenerate_lockfile.outputs.match != 'true'
shell: bash
run: |
printf '::error::package-lock.json is not the canonical output of the pinned Node/npm toolchain.\n'
exit 1

- name: install
run: npm ci --legacy-peer-deps=false --install-links=false

Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/patch-validator-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,11 @@ jobs:
npm_config_os=wasip1-threads \
npm_config_cpu=wasm32 \
npm ci --include=optional --ignore-scripts --no-audit --no-fund
npm pkg delete devDependencies.@cloudflare/workers-types devDependencies.wrangler
npm pkg delete \
devDependencies.@cloudflare/workers-types \
devDependencies.wrangler \
devDependencies.workerd \
devDependencies.esbuild
timeout --signal=TERM --kill-after=30s 5m env \
npm_config_os=wasip1-threads \
npm_config_cpu=wasm32 \
Expand All @@ -160,6 +164,8 @@ jobs:
test ! -e node_modules/@cloudflare/workers-types
test ! -e node_modules/wrangler
test ! -e node_modules/workerd
test ! -e node_modules/esbuild
test ! -e node_modules/@esbuild
test ! -e node_modules/miniflare
)

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
node_modules/
.wrangler/
.noema-dev/
coverage/
dist/
*.log
Expand Down
Loading
Loading