Skip to content

chore: TypeScript 7.0.2 - #74

Merged
sebyx07 merged 1 commit into
mainfrom
chore/typescript-7
Sep 8, 2026
Merged

sebyx07 merged 1 commit into
mainfrom
chore/typescript-7

Conversation

@sebyx07

@sebyx07 sebyx07 commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Bumps TypeScript. TypeScript 7 is the Go port (typescript-go) — tsc is a native binary, substantially faster.

Verified: repo's own typecheck passes on the new version.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Summary by CodeRabbit

  • Chores
    • Updated the TypeScript development tooling to version 7.0.2 across the project and web package.

@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Essentials

Run ID: 51e9b120-f367-422a-aabd-16bafc4d8191

📥 Commits

Reviewing files that changed from the base of the PR and between b3dc019 and ecd2c67.

⛔ Files ignored due to path filters (2)
  • bun.lock is excluded by !**/*.lock
  • dummy/web/bun.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • dummy/web/package.json
  • package.json

Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

📜 Recent review details
⚠️ CI failures not shown inline (2)

GitHub Actions: ci / 0_bun (lint + typecheck + test).txt: chore: TypeScript 7.0.2

Conclusion: failure

View job details

##[group]src/services/session-builder.test.ts:
 (pass) resolveRunTarget overrides a web target url with the per-run url [0.19ms]
 (pass) resolveRunTarget keeps the configured url when no per-run url is given [0.11ms]
 (pass) resolveRunTarget requires a url for a web target that has none [0.10ms]
 (pass) resolveRunTarget rejects a url override for a non-web target [0.08ms]
 (pass) buildSession rejects an unknown target before touching disk or the browser [0.18ms]
 (pass) an inherited Object.prototype key is not a target (constructor, toString, __proto__) [0.20ms]
 (pass) buildSession wires a desktop target (addendum + adapter) without launching [0.54ms]
 (pass) buildSession writes story.md with goal, criteria, and target [0.51ms]
 (pass) buildSession records the app address in story.md for a web run [1885.36ms]
 (pass) buildSession honors a per-run url override in story.md [171.24ms]
 (pass) buildSession prunes old session dirs, keeping the newest 5 including this run [1.66ms]
 (pass) buildSession writes story.md without a criteria section when none given [0.56ms]
 (pass) buildSession wires an android target (addendum + adapter) without launching [0.39ms]
 (pass) buildSession creates the target-configured profile dir under the workspace [268.01ms]
 (pass) buildSession leaves the default profile dir alone when `profile` is unset [226.45ms]
 (pass) buildSession wires a web target end-to-end (real headless Chromium, no navigation) [273.13ms]
 (pass) buildSession composes the target's notes into the driver's system prompt [3.45ms]
 (pass) buildSession sends no notes section for a target that declares none [2.36ms]
 (pass) buildSession rejects an unknown persona before touching disk or the browser [0.32ms]
 (pass) buildSession rejects a persona on a target that has no auth block [0.15ms]
 (pass) buildSession rejects a persona on a non-web target [0.10ms]
 (pass) a persona signs the run in before the first step, and leaves no credential in the logs [915.85ms]
 killed 3 ...

GitHub Actions: ci / bun (lint + typecheck + test): chore: TypeScript 7.0.2

Conclusion: failure

View job details

##[group]src/services/session-builder.test.ts:
 (pass) resolveRunTarget overrides a web target url with the per-run url [0.19ms]
 (pass) resolveRunTarget keeps the configured url when no per-run url is given [0.11ms]
 (pass) resolveRunTarget requires a url for a web target that has none [0.10ms]
 (pass) resolveRunTarget rejects a url override for a non-web target [0.08ms]
 (pass) buildSession rejects an unknown target before touching disk or the browser [0.18ms]
 (pass) an inherited Object.prototype key is not a target (constructor, toString, __proto__) [0.20ms]
 (pass) buildSession wires a desktop target (addendum + adapter) without launching [0.54ms]
 (pass) buildSession writes story.md with goal, criteria, and target [0.51ms]
 (pass) buildSession records the app address in story.md for a web run [1885.36ms]
 (pass) buildSession honors a per-run url override in story.md [171.24ms]
 (pass) buildSession prunes old session dirs, keeping the newest 5 including this run [1.66ms]
 (pass) buildSession writes story.md without a criteria section when none given [0.56ms]
 (pass) buildSession wires an android target (addendum + adapter) without launching [0.39ms]
 (pass) buildSession creates the target-configured profile dir under the workspace [268.01ms]
 (pass) buildSession leaves the default profile dir alone when `profile` is unset [226.45ms]
 (pass) buildSession wires a web target end-to-end (real headless Chromium, no navigation) [273.13ms]
 (pass) buildSession composes the target's notes into the driver's system prompt [3.45ms]
 (pass) buildSession sends no notes section for a target that declares none [2.36ms]
 (pass) buildSession rejects an unknown persona before touching disk or the browser [0.32ms]
 (pass) buildSession rejects a persona on a target that has no auth block [0.15ms]
 (pass) buildSession rejects a persona on a non-web target [0.10ms]
 (pass) a persona signs the run in before the first step, and leaves no credential in the logs [915.85ms]
 killed 3 ...
🔇 Additional comments (2)
package.json (1)

54-54: LGTM!

dummy/web/package.json (1)

25-25: LGTM!


📝 Walkthrough

Walkthrough

Both package manifests update the TypeScript development dependency to version ^7.0.2.

Changes

TypeScript Toolchain

Layer / File(s) Summary
Align TypeScript development dependencies
package.json, dummy/web/package.json
Both package manifests now require TypeScript ^7.0.2 for development.

Priority: ⬇️ Low — Defer this change because it only updates the TypeScript development dependency and leaves public declarations unchanged.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to ecd2c

The project and dummy web package now use TypeScript 7.0.2; no current merge-readiness risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely identifies the main change: updating the project to TypeScript 7.0.2.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/typescript-7

A rabbit checks the TypeScript line
Two packages now align just fine
The version hops to seven
Clean tools brighten the burrow heaven
And builds nibble carrots in time

Comment @coderabbitai help to get the list of available commands.

@sebyx07
sebyx07 merged commit fd35055 into main Sep 8, 2026
1 of 2 checks passed
@sebyx07
sebyx07 deleted the chore/typescript-7 branch September 8, 2026 16:52
sebyx07 added a commit that referenced this pull request Sep 8, 2026
…ejects (#75)

`a persona whose credentials are wrong fails the run instead of opening
it signed out` has been red on `main` since **2026-09-02** (runs
33969855127, 33647731476), timing out at exactly 30,000ms. This is the
failure that was already red when #74 merged.

## The cause is the assertion, not the behaviour

Awaiting a long, multi-round-trip browser flow **through the `.rejects`
matcher** starves the loop driving it: every CDP call inside the pending
promise then costs ~1s. This login types 20 characters and presses 6
keys, so it could never finish inside the test's 30s ceiling.

Isolated with an A/B in the same process, same test file — same
`performLogin`, same adapter, same page, same config, same profile dir,
same log sink. Only the await differs:

| how the flow is awaited | time |
|---|---|
| `await performLogin(...)` in try/catch | **1.4s** |
| `await expect(performLogin(...)).rejects.toThrow(...)` | **31.5s** |

Everything else was ruled out first by elimination: browser binary
(system Chrome vs Playwright's), the log sink (real `FindingsStore` vs
no-op — it receives 6 lines total), the profile dir, launch options
(byte-identical), single vs double navigation, and launch order.

## Why the previous fix wasn't enough

`login.ts`'s `NAVIGATION_SETTLE_MS` comment already chased this exact
timeout and fixed a genuine contributor — a settle wait that could run
the full 30s budget, now capped at 5s. That fix is real and stays. It
just wasn't the whole cost: instrumented here, the settle wait measures
**3ms** while the typing measured **32s**.

## The fix

Catch the rejection and assert on the caught error, taking the flow out
of the matcher. **30s timeout → 1.84s**, well inside the existing
ceiling — so no timeout needed raising, which is the outcome worth
having: the test is fast because the work is fast, not because it was
given more room.

`.rejects` is left alone everywhere else in the suite. Every other use
wraps a call that fails on one round trip or none, where a single stall
costs nothing. The rule is about how much work is in flight, not about
the matcher — the comment in the test says so, so the next person
doesn't "tidy" it back.

## Verified

- the previously failing test: **1.84s, passing**
- `bun test src/services` — 127/127
- `bun run lint`, `bun run typecheck` — clean

The 29 failures in `browser-adapter.integration.test.ts` are
pre-existing and environmental (they need the `dummy/web` fixture CI
builds, which isn't built locally); they fail identically on stock
`main`, before this change.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_015KQipy9s9tJFkGBeGWnZCX

<!-- codesmith:footer -->
---
<a
href="https://app.blacksmith.sh/developerz-ai/codesmith/ui-debugger-mcp/pr/75"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-light-v2.svg"><img
alt="View with [code]smith"
src="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"></picture></a>
<a
href="https://backend.blacksmith.sh/track/enable-autofix?expires=1791480803&installation_model_id=11168&pr_number=75&repository=developerz-ai%2Fui-debugger-mcp&return_to=https%3A%2F%2Fgithub.com%2Fdeveloperz-ai%2Fui-debugger-mcp%2Fpull%2F75&signature=97dd762de806072742d2e1a1e9438c8fe2d80f754f5bf3a22da972d493d523cb"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-light.svg"><img
alt="Autofix with [code]smith"
src="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"></picture></a>
<sup>Need help on this PR? Tag <code>@codesmith-bot</code> with what you
need. Autofix is disabled.</sup>

<!-- codesmith:autofix:disabled -->
<!-- /codesmith:footer -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
* Updated browser coverage for invalid credentials to verify that
authentication failures are reported as the expected error type.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant