Commit Graph

4 Commits

Author SHA1 Message Date
Yunfei He f2aa604939 fix(lint): clear 7 false-positive lint warnings
vp run check:lint reported 7 warnings, all false positives for a terminal UI
library:

- no-control-regex (×6): parsing keyboard escape sequences and stripping ANSI
  inherently requires regexes matching control chars (ESC, BEL). Disable the
  rule library-wide in vite.config.ts — it flags every such pattern and we
  already use \x1b/\u escapes (its own suggested form). Also drop the now-
  redundant (and misplaced — it sat one line above the regex) inline disable in
  sanitize-ansi.test.ts.

- no-misused-spread (×1) at parse-keypress.ts:500: `[...s]` on a terminal
  escape sequence (ASCII control chars + digits, never user text), so the
  emoji-splitting concern doesn't apply. Suppressed in place with a comment
  explaining why, keeping the rule active elsewhere.

check:lint now reports 0 warnings, 0 errors.
2026-05-29 16:54:13 +08:00
Yunfei He bdadea0d02 perf(ci): parallelize verification via a vp run.tasks graph
Replace ci.yml's five serial steps with a single `vp run ci` whose graph lives
in vite.config.ts (run.tasks). The vp task runner fans out independent branches
concurrently: fmt and lint start immediately while check:type and the test
suites wait on build (their consumers resolve @vue-tui/runtime from the built
dist/*.d.mts). The wall-clock critical path becomes build -> test:pty instead
of the sum of every check.

Measured cold (no task cache, no prebuilt dist — the real CI condition): the
graph completes in ~41s vs ~60s serial, ~32% faster, with build correctly
fanned out before the type and test branches. `vp run --last-details` (and the
run summary) still pinpoints which sub-task failed.

Also set run.cache=false so neither local nor CI verification depends on any
task-cache replay. The serial `ready` script in package.json is kept for simple
local use.
2026-05-29 16:54:13 +08:00
Yunfei He 40d89bdf47 refactor: move type-checking from vp lint to tsc-based check:type
Set lint.options.typeCheck=false so vp lint/check no longer runs the
tsgolint full type-check (typeAware stays on, keeping type-aware lint rules).
Type-checking is now owned by check:type, which runs the real tsc and honors
each tsconfig's project semantics — unlike tsgolint, which ignored tsconfig
exclude/nested configs.

Wire check:type into ready after build (it needs the built dist for
cross-package type resolution): fmt, lint, build, check:type, check:fixtures,
test.

Verified: with typeCheck off, vp lint no longer reports a TS2322 type error
(but keeps its type-aware warnings); check:type catches it via tsc.
2026-05-29 16:54:13 +08:00
Yunfei He def33588e3 chore: monorepo scaffold and shared config
Workspace setup with pnpm, Vite+, and shared TypeScript config.
Includes @vue-tui/utils and AGENTS.md project conventions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 18:13:22 +08:00