Dashboard › opencode-lore › Session 0CCY7OdZ9DW7
0CCY7OdZ9DW7HVgNLValidation only in /home/byk/Code/opencode-lore-responses-accumulation current change lrqlyykx over ce88c614. Do not edit/format/install/VCS/server/network/production DB. Snapshot jj status and jj diff | sha256sum. Run the exact 12 newly added blocker tests 10 consecutive times with --printConsoleTrace (derive exact name regex from diff), complete openai-responses-recall-aware-stream.test.ts, adjacent openai-responses-stream.test.ts/openai-responses.test.ts/openai-codex.test.ts, repository format:check, workspace typecheck, lint, and production gateway bundle. Report exact counts/exits/warnings, bundle artifacts/hash, temporary DB, final status/hash unchanged. Do not fix.
<skill_content name="jj-guide"> # Skill: jj-guide # jj Guide for AI Agents Jujutsu (jj) is a Git-compatible VCS with mutable commits, automatic snapshotting, no staging area, and first-class conflicts. This skill teaches you how to use it safely from a non-interactive agent environment. If `.jj/` exists in the repo root, this is a jj repo. **Use `jj` commands, not `git`.** In a colocated repo (`.jj/` *and* `.git/`), git tools can read the state, but mutations should go through `jj` so the operation log stays consistent. ## Critical Rules - **NEVER** use interactive flags (`-i`, `--interactive`). TUI prompts hang in agent environments. This applies to `jj split -i`, `jj squash -i`, `jj commit -i`, `jj resolve`, `jj diffedit`, etc. - **ALWAYS** pass `-m "msg"` when describing/committing. Without `-m`, an editor opens and hangs. - **VERIFY** mutations with `jj st` and `jj log` after `squash`, `abandon`, `rebase`, `restore`, `commit`. ...
/home/byk/Code/opencode-lore-responses-accumulation/AGENTS.md /home/byk/Code/opencode-lore-responses-accumulation/package.json /home/byk/Code/opencode-lore-responses-accumulation/.oxfmtrc.json /home/byk/Code/opencode-lore-responses-accumulation/packages/website/package.json /home/byk/Code/opencode-lore-responses-accumulation/packages/pi/package.json /home/byk/Code/opencode-lore-responses-accumulation/packages/opencode/package.json /home/byk/Code/opencode-lore-responses-accumulation/packages/core/package.json /home/byk/Code/opencode-lore-responses-accumulation/packages/gateway/package.json
<path>/home/byk/Code/opencode-lore-responses-accumulation/AGENTS.md</path> <type>file</type> <content> 1: <!-- This section is maintained by the coding agent via lore (https://github.com/BYK/loreai) --> 2: ## Long-term Knowledge 3: 4: For long-term knowledge entries managed by [lore](https://github.com/BYK/loreai) (gotchas, patterns, decisions, architecture), see [`.lore.md`](.lore.md) in the project root. 5: <!-- End lore-managed section --> 6: 7: ## Review 8: 9: See [`quality/REVIEW.md`](quality/REVIEW.md) for the review heuristics and workflow — regression-test discipline, adversarial-order state setup, fan-out registry coverage, recurring bug-class batteries, and the two-reviewer rule. Every non-trivial PR requires an adversarial correctness review before merge. 10: 11: # Project Overview 12: 13: Lore is a **three-tier memory architecture** for AI coding agents. ...
<path>/home/byk/Code/opencode-lore-responses-accumulation/package.json</path>
<type>file</type>
<content>
1: {
2: "name": "lore-monorepo",
3: "private": true,
4: "type": "module",
5: "license": "FSL-1.1-Apache-2.0",
6: "description": "Monorepo root for Lore — three-tier memory architecture",
7: "main": "./packages/opencode/src/index.ts",
8: "exports": {
9: ".": "./packages/opencode/src/index.ts"
10: },
11: "packageManager": "pnpm@10.28.0",
12: "volta": {
13: "node": "24.16.0",
14: "pnpm": "10.28.0"
15: },
16: "pnpm": {
17: "onlyBuiltDependencies": [
18: "esbuild",
19: "onnxruntime-node",
20: "sharp"
21: ],
22: "overrides": {
23: "basic-ftp": "5.3.1",
24: "ip-address": "10.2.0",
25: "fast-xml-parser": "5.7.3",
26: "@huggingface/hub": "2.11.0",
27: "onnxruntime-node": "1.27.0",
28: "yaml": ">=2.8.3",
29: "esbuild": ">=0.28.1",
30: "@opentelemetry/core": ">=2.8.0",
31: ...
<path>/home/byk/Code/opencode-lore-responses-accumulation/quality/REVIEW.md</path> <type>file</type> <content> 1: # Review Heuristics — Lore 2: 3: This document codifies the review bar for pull requests. It exists because 4: adversarial review has repeatedly caught correctness bugs that a green test 5: suite missed — skip/early-return branches, lifecycle sequences, and fan-out 6: registry gaps. Institutionalizing these patterns so they compound. 7: 8: The review workflow (§6) is referenced from AGENTS.md. 9: 10: --- 11: 12: ## 1. Regression-test discipline 13: 14: Every adversarial-review finding that surfaces a defect **must** land a 15: deterministic regression test in the same PR. The test: 16: - fails on the base branch (proving it reproduces the bug), 17: - passes on the fix (proving the fix works), 18: - drives the *real* precondition, not an artificially-constructed state (e.g. ...
Working copy changes: M packages/gateway/src/pipeline.ts M packages/gateway/test/openai-responses-recall-aware-stream.test.ts Working copy (@) : lrqlyykx 1f123f5c fix(responses): close lifecycle gaps Parent commit (@-): tklkqxyt ce88c614 fix(responses): complete lifecycle reconciliation Warning: These bookmarks have conflicts: fix/responses-private-references Hint: Use `jj bookmark list` to see details. Use `jj bookmark set <name> -r <rev>` to resolve. lrqlyykxvwoq 1f123f5c1d92 fix(responses): close lifecycle gaps tklkqxytmpkz ce88c614c0ae fix(responses): complete lifecycle reconciliation packages/gateway/src/pipeline.ts | 101 ++++-- ...est/openai-responses-recall-aware-stream.test.ts | 364 ++++++++++++++++++++++ 2 files changed, 447 insertions(+), 18 deletions(-) 7c56d9f251cc66f2e3d46944fb9c82f95f4949d9ef5a19a255c174e0608d7b92 -
diff --git a/packages/gateway/test/openai-responses-recall-aware-stream.test.ts b/packages/gateway/test/openai-responses-recall-aware-stream.test.ts
index 026c9abab9..d5c32b75ca 100644
--- a/packages/gateway/test/openai-responses-recall-aware-stream.test.ts
+++ b/packages/gateway/test/openai-responses-recall-aware-stream.test.ts
@@ -3361,6 +3361,182 @@
},
);
+ test.each(
+ (["principal", "continuation"] as const).flatMap((stream) =>
+ (["absent", "empty"] as const).map((terminalOutput) => ({
+ stream,
+ terminalOutput,
+ })),
+ ),
+ )(
+ "materializes completed $stream Codex reasoning without item done when terminal output is $terminalOutput",
+ async ({ stream, terminalOutput }) => {
+ const responseId = `resp_reasoning_without_done_${stream}_${terminalOutput}`;
+ const itemId = `rs_reasoning_without_done_${stream}_${terminalOutput}`;
+ const privateSummary = `private ${stream} completed summary`;
+ const ...
<path>/home/byk/Code/opencode-lore-responses-accumulation/packages/core/test/setup.ts</path>
<type>file</type>
<content>
1: import { mkdtempSync, rmSync } from "node:fs";
2: import { join } from "node:path";
3: import { tmpdir } from "node:os";
4: import { afterAll, afterEach } from "vitest";
5: import { close, invalidateProjectIdCache } from "../src/db";
6: import { silenceStderr } from "../src/log";
7:
8: // Create an isolated temporary database for the entire test run.
9: // This prevents test fixtures from leaking into the live lore DB
10: // at ~/.local/share/lore/lore.db.
11: const tmp = mkdtempSync(join(tmpdir(), "lore-test-"));
12: process.env.LORE_DB_PATH = join(tmp, "test.db");
13:
14: // ---------------------------------------------------------------------------
15: // Block live network to models.dev during tests.
16: //
17: // `fetchModelData()` (gateway/src/worker-model.ts) hits
18: // https://models.dev/api.json to pull pricing/limits, and the gateway
19: // pre-warms ...
<path>/home/byk/Code/opencode-lore-responses-accumulation/vitest.config.ts</path>
<type>file</type>
<content>
1: import { defineConfig } from "vitest/config";
2: import path from "node:path";
3:
4: export default defineConfig({
5: // Alias @loreai/core and @loreai/gateway for test imports.
6: // MUST be at the top level of the vite config — putting this under
7: // `test.resolve.alias` does NOT work (vite's resolver is a top-level
8: // option, not a test.* option). The previous placement silently
9: // resolved to the stale dist build, masking real test failures.
10: resolve: {
11: alias: {
12: "@loreai/core": path.resolve(__dirname, "packages/core/src"),
13: "@loreai/gateway": path.resolve(__dirname, "packages/gateway/src"),
14: },
15: },
16: test: {
17: // Run all packages' tests
18: include: [
19: "packages/core/test/**/*.test.ts",
20: // Fast, pure unit tests for the eval suite's own logic (scorers,
21: // analysis). ...
+ regex='(materializes completed (principal|continuation) Codex reasoning without item done when terminal output is (absent|empty)|rejects mixed complete and incomplete (principal|continuation) Codex message parts without item done|rejects forged response\.(reasoning_summary_private|reasoning_text_private)\.done on a (principal|continuation) before recall side effects|rejects a shifted continuation with an omitted (done-only|data-only) output index at the principal boundary)$'
+ overall=0
+ for run in {1..10}
+ pnpm exec vitest run packages/gateway/test/openai-responses-recall-aware-stream.test.ts -t '(materializes completed (principal|continuation) Codex reasoning without item done when terminal output is (absent|empty)|rejects mixed complete and incomplete (principal|continuation) Codex message parts without item done|rejects forged response\.(reasoning_summary_private|reasoning_text_private)\.done on a (principal|continuation) before recall side effects|rejects a shifted ...
RUN v4.1.8 /home/byk/Code/opencode-lore-responses-accumulation ↓ packages/gateway/test/openai-responses-recall-aware-stream.test.ts > streamResponsesRecallAware > forwards events live with NO recall — no header hold-back ↓ packages/gateway/test/openai-responses-recall-aware-stream.test.ts > streamResponsesRecallAware > finalizes when the client cancels immediately after a no-recall terminal ↓ packages/gateway/test/openai-responses-recall-aware-stream.test.ts > streamResponsesRecallAware > forwards a principal response.failed exactly once when no recall occurs ↓ packages/gateway/test/openai-responses-recall-aware-stream.test.ts > streamResponsesRecallAware > accepts an empty Codex terminal output after streamed items ↓ packages/gateway/test/openai-responses-recall-aware-stream.test.ts > streamResponsesRecallAware > accepts a partial Codex terminal output after streamed items ↓ packages/gateway/test/openai-responses-recall-aware-stream.test.ts > streamResponsesRecallAware > ...
+ regex='(materializes completed '\''(principal|continuation)'\'' Codex reasoning without item done when terminal output is '\''(absent|empty)'\''|rejects mixed complete and incomplete (principal|continuation) Codex message parts without item done|rejects forged '\''response\.(reasoning_summary_private|reasoning_text_private)\.done'\'' on a '\''(principal|continuation)'\'' before recall side effects|rejects a shifted continuation with an omitted (done-only|data-only) output index at the principal boundary)$'
+ overall=0
+ for run in {1..10}
+ pnpm exec vitest run packages/gateway/test/openai-responses-recall-aware-stream.test.ts -t '(materializes completed '\''(principal|continuation)'\'' Codex reasoning without item done when terminal output is '\''(absent|empty)'\''|rejects mixed complete and incomplete (principal|continuation) Codex message parts without item done|rejects forged '\''response\.(reasoning_summary_private|reasoning_text_private)\.done'\'' on a ...
RUN v4.1.8 /home/byk/Code/opencode-lore-responses-accumulation stderr | packages/gateway/test/openai-responses-recall-aware-stream.test.ts > streamResponsesRecallAware > rejects mixed complete and incomplete principal Codex message parts without item done [lore] openai-responses recall-aware stream failed category=principal_protocol ❯ Module.error packages/core/src/log.ts:499:38 ❯ packages/gateway/src/pipeline.ts:11957:17 stderr | packages/gateway/test/openai-responses-recall-aware-stream.test.ts > streamResponsesRecallAware > rejects mixed complete and incomplete continuation Codex message parts without item done [lore] recall follow-up stream failed category=follow_up_protocol ❯ Module.error packages/core/src/log.ts:499:38 ❯ runPrincipalAttempt packages/gateway/src/pipeline.ts:11681:25 ❯ packages/gateway/src/pipeline.ts:11803:15 stderr | packages/gateway/test/openai-responses-recall-aware-stream.test.ts > streamResponsesRecallAware > rejects mixed complete and incomplete ...
RUN v4.1.8 /home/byk/Code/opencode-lore-responses-accumulation
Test Files 1 passed (1)
Tests 12 passed | 255 skipped (267)
Start at 20:43:01
Duration 13.15s (transform 7.57s, setup 1.11s, import 11.03s, tests 347ms, environment 6ms)
+ regex='(materializes completed '\''(principal|continuation)'\'' Codex reasoning without item done when terminal output is '\''(absent|empty)'\''|rejects mixed complete and incomplete (principal|continuation) Codex message parts without item done|rejects forged '\''response\.(reasoning_summary_private\.do…|reasoning_text_private\.done)'\'' on a '\''(principal|continuation)'\'' before recall side effects|rejects a shifted continuation with an omitted (done-only|data-only) output index at the principal boundary)$'
+ overall=0
+ for run in {1..10}
+ pnpm exec vitest run packages/gateway/test/openai-responses-recall-aware-stream.test.ts -t '(materializes completed '\''(principal|continuation)'\'' Codex reasoning without item done when terminal output is '\''(absent|empty)'\''|rejects mixed complete and incomplete (principal|continuation) Codex message parts without item done|rejects forged '\''response\.(reasoning_summary_private\.do…|reasoning_text_private\.done)'\'' on a ...
RUN v4.1.8 /home/byk/Code/opencode-lore-responses-accumulation
Test Files 1 passed (1)
Tests 267 passed (267)
Start at 20:46:50
Duration 29.09s (transform 6.59s, setup 1.15s, import 10.61s, tests 16.50s, environment 0ms)
RUN v4.1.8 /home/byk/Code/opencode-lore-responses-accumulation
Test Files 3 passed (3)
Tests 242 passed (242)
Start at 20:47:35
Duration 16.98s (transform 18.08s, setup 3.35s, import 32.73s, tests 4.73s, environment 0ms)
<path>/home/byk/Code/opencode-lore-responses-accumulation/packages/gateway/package.json</path>
<type>file</type>
<content>
1: {
2: "name": "@loreai/gateway",
3: "version": "0.40.0",
4: "type": "module",
5: "license": "FSL-1.1-Apache-2.0",
6: "description": "Lore as a transparent LLM proxy — context management for any AI coding client",
7: "main": "./dist/index.cjs",
8: "types": "./dist/index.d.cts",
9: "exports": {
10: ".": {
11: "types": "./dist/index.d.cts",
12: "bun": "./dist/index.bun.js",
13: "require": "./dist/index.cjs",
14: "default": "./dist/index.cjs"
15: }
16: },
17: "bin": {
18: "lore": "./dist/bin.cjs",
19: "lore-gateway": "./dist/bin.cjs"
20: },
21: "scripts": {
22: "typecheck": "tsc --noEmit",
23: "build": "tsx script/build.ts",
24: "bundle": "tsx script/bundle.ts",
25: "build:binary": "tsx script/build.ts --binary",
26: "build:binary:sea": "tsx script/build-binary-sea.ts",
27: ...
> lore-monorepo@ format:check /home/byk/Code/opencode-lore-responses-accumulation > oxfmt --check Checking formatting... All matched files use the correct format. Finished in 1467ms on 874 files using 4 threads.
> lore-monorepo@ typecheck /home/byk/Code/opencode-lore-responses-accumulation > pnpm -r run typecheck Scope: 5 of 6 workspace projects packages/core typecheck$ tsc --noEmit && tsc --noEmit -p tsconfig.eval.json packages/core typecheck: Done packages/gateway typecheck$ tsc --noEmit packages/gateway typecheck: Done packages/opencode typecheck$ tsc --noEmit packages/pi typecheck$ tsc --noEmit packages/opencode typecheck: Done packages/pi typecheck: Done
...output truncated... Full output saved to: /home/byk/.local/share/opencode/tool-output/tool_0abfdcea7001iD8vw2EVPqf1Oe packages/core/test/recall-file-refs.test.ts:88:17: warning typescript(no-non-null-assertion): Forbidden non-null assertion. help: Consider using the optional chain operator `?.` instead. `x!.y` is equivalent to `x.y` at runtime and will throw if `x` is `null` or `undefined`, but `x?.y` will return `undefined`. packages/core/test/recall-file-refs.test.ts:130:17: warning typescript(no-non-null-assertion): Forbidden non-null assertion. help: Consider using the optional chain operator `?.` instead. `x!.y` is equivalent to `x.y` at runtime and will throw if `x` is `null` or `undefined`, but `x?.y` will return `undefined`. packages/core/test/recall-code-anchors.test.ts:46:17: warning typescript(no-non-null-assertion): Forbidden non-null assertion. help: Consider using the optional chain operator `?.` instead. `x!.y` is equivalent to `x.y` at runtime and will throw if ...
<path>/home/byk/.local/share/opencode/tool-output/tool_0abfdcea7001iD8vw2EVPqf1Oe</path> <type>file</type> <content> 1: 2: > lore-monorepo@ lint /home/byk/Code/opencode-lore-responses-accumulation 3: > oxlint --type-aware 4: 5: packages/gateway/src/worker-health.ts:776:3: warning typescript(no-non-null-assertion): Forbidden non-null assertion. help: Consider using the optional chain operator `?.` instead. `x!.y` is equivalent to `x.y` at runtime and will throw if `x` is `null` or `undefined`, but `x?.y` will return `undefined`. 6: packages/gateway/src/worker-health.ts:777:8: warning typescript(no-non-null-assertion): Forbidden non-null assertion. help: Consider using the optional chain operator `?.` instead. `x!.y` is equivalent to `x.y` at runtime and will throw if `x` is `null` or `undefined`, but `x?.y` will return `undefined`. 7: packages/gateway/test/supabase.test.ts:276:12: warning typescript(no-non-null-assertion): Forbidden non-null assertion. ...
<path>/home/byk/.local/share/opencode/tool-output/tool_0abfdcea7001iD8vw2EVPqf1Oe</path> <type>file</type> <content> 255: packages/gateway/test/claude-usage-headers.test.ts:72:11: warning typescript(no-non-null-assertion): Forbidden non-null assertion. help: Consider using the optional chain operator `?.` instead. `x!.y` is equivalent to `x.y` at runtime and will throw if `x` is `null` or `undefined`, but `x?.y` will return `undefined`. 256: packages/gateway/test/doctor.test.ts:449:21: warning typescript(no-non-null-assertion): Forbidden non-null assertion. 257: packages/gateway/test/doctor.test.ts:451:17: warning typescript(no-non-null-assertion): Forbidden non-null assertion. 258: packages/gateway/test/doctor.test.ts:461:21: warning typescript(no-non-null-assertion): Forbidden non-null assertion. 259: packages/gateway/test/doctor.test.ts:477:16: warning typescript(no-non-null-assertion): Forbidden non-null assertion. 260: packages/gateway/test/doctor.test.ts:480:20: warning ...
271
> @loreai/gateway@0.40.0 bundle /home/byk/Code/opencode-lore-responses-accumulation/packages/gateway > tsx script/bundle.ts dist/index.cjs 16.7mb ⚠️ dist/index.cjs.map 43.7mb ⚡ Done in 4041ms dist/index.bun.js 16.2mb ⚠️ ⚡ Done in 2388ms dist/embedding-worker.cjs 565.1kb ⚡ Done in 376ms dist/embedding-worker.js 564.9kb ⚡ Done in 293ms dist/vector-worker.cjs 11.1kb ⚡ Done in 17ms dist/vector-worker.js 10.3kb ⚡ Done in 7ms ✓ Debug ID injected: abc504b2-a461-44e9-96c8-7a6141b7fb0d No SENTRY_AUTH_TOKEN — skipping sourcemap upload ✓ @loreai/gateway npm bundle complete (v0.40.0) dist/index.cjs — CJS bundle (Node.js, node:sqlite) dist/index.bun.js — ESM bundle (Bun, bun:sqlite) dist/embedding-worker.cjs — embedding worker CJS (Node.js) dist/embedding-worker.js — embedding worker ESM (Bun) dist/vector-worker.cjs — vector-search worker CJS (Node.js) dist/vector-worker.js — vector-search worker ESM (Bun) ...
No files found
<path>/home/byk/Code/opencode-lore-responses-accumulation/packages/gateway/dist</path> <type>directory</type> <entries> bin.cjs embedding-worker.cjs embedding-worker.js index.bun.js index.cjs index.cjs.map index.d.cts ort-wasm-simd-threaded.mjs ort-wasm-simd-threaded.wasm vector-worker.cjs vector-worker.js (11 entries) </entries>
packages/gateway/dist/bin.cjs 804 bytes packages/gateway/dist/embedding-worker.cjs 578646 bytes packages/gateway/dist/embedding-worker.js 578430 bytes packages/gateway/dist/index.bun.js 16969651 bytes packages/gateway/dist/index.cjs 17531187 bytes packages/gateway/dist/index.cjs.map 44150594 bytes packages/gateway/dist/index.d.cts 3000 bytes packages/gateway/dist/ort-wasm-simd-threaded.mjs 20856 bytes packages/gateway/dist/ort-wasm-simd-threaded.wasm 11133407 bytes packages/gateway/dist/vector-worker.cjs 11329 bytes packages/gateway/dist/vector-worker.js 10579 bytes 17fb4c7c81ae02493349a6be7dbf55f2f2ac9bbdbe0ed67423149ab9022e367f packages/gateway/dist/bin.cjs 23e8d7b5a7ce15bfa769fd948d75fb616599a3e13b84cc056932ef0abd9f2393 packages/gateway/dist/embedding-worker.cjs 73335bf3711ff7ea9b693206c44b99db734d4e2f2f1f0d962276d28b77790276 packages/gateway/dist/embedding-worker.js 0967b4ff11a23253e1174e39d5e1875a82ecfc6dbebd56248756d65ce298106e ...
Working copy changes: M packages/gateway/src/pipeline.ts M packages/gateway/test/openai-responses-recall-aware-stream.test.ts Working copy (@) : lrqlyykx 1f123f5c fix(responses): close lifecycle gaps Parent commit (@-): tklkqxyt ce88c614 fix(responses): complete lifecycle reconciliation Warning: These bookmarks have conflicts: fix/responses-private-references Hint: Use `jj bookmark list` to see details. Use `jj bookmark set <name> -r <rev>` to resolve. lrqlyykxvwoq 1f123f5c1d92 fix(responses): close lifecycle gaps tklkqxytmpkz ce88c614c0ae fix(responses): complete lifecycle reconciliation 7c56d9f251cc66f2e3d46944fb9c82f95f4949d9ef5a19a255c174e0608d7b92 -
Candidate verified:
lrqlyykxvwoq / 1f123f5c1d92tklkqxytmpkz / ce88c614c0aejj diff | sha256sum:
7c56d9f251cc66f2e3d46944fb9c82f95f4949d9ef5a19a255c174e0608d7b92fix/responses-private-references.Final regex matched all 12 added tests. It includes Vitest’s truncated interpolated summary event name (do…).
Ten consecutive runs:
| Run | Result | Duration | |---:|---|---:| | 1 | 12 passed, 255 skipped, exit 0 | 22.25s | | 2 | 12 passed, 255 skipped, exit 0 | 13.48s | | 3 | 12 passed, 255 skipped, exit 0 | 13.25s | | 4 | 12 passed, 255 skipped, exit 0 | 7.12s | | 5 | 12 passed, 255 skipped, exit 0 | 10.74s | | 6 | 12 passed, 255 skipped, exit 0 | 11.58s | | 7 | 12 passed, 255 skipped, exit 0 | 23.46s | | 8 | 12 passed, 255 skipped, exit 0 | 24.91s | | 9 | 12 passed, 255 skipped, exit 0 | 11.53s | | 10 | 12 passed, 255 skipped, exit 0 | 13.19s |
Total: 120/120 passed.
Selector calibration initially matched only 4, then 10 tests because Vitest quotes and truncates interpolated names. Those runs all exited 0 but were discarded. A corrected 12-test smoke run passed before the final ten-run sequence.
format:check: 874 files, exit 0, no formatting errors.typescript(no-non-null-assertion).index.cjs 16.7 MB; index.bun.js 16.2 MB.abc504b2-a461-44e9-96c8-7a6141b7fb0dSENTRY_AUTH_TOKEN; sourcemap upload skipped. ...