Skip to content

WIP: Kita Html v5.0.0 - #468

Open
arthurfiorette wants to merge 136 commits into
masterfrom
next
Open

arthurfiorette wants to merge 136 commits into
masterfrom
next

Conversation

@arthurfiorette

Copy link
Copy Markdown
Member

This pull request introduces significant improvements to CI/CD workflows, documentation tooling, and package configuration. The CI pipeline now supports broader Node.js versions and operating systems, adds a dedicated docs deployment job, and optimizes build caching. Documentation quality is enhanced with new agent and skill files enforcing strict writing and structuring conventions. Several package changesets address test coverage, CLI reliability, and plugin improvements.

CI/CD Workflow Enhancements

  • Expanded CI matrix to cover multiple Node.js LTS versions and all major OSes, improving test coverage and reliability (.github/workflows/ci.yml).
  • Added a dedicated deploy-docs job for automatic documentation deployment to GitHub Pages on master and next branches (.github/workflows/ci.yml).
  • Introduced turbo build caching to CI and release workflows for faster builds (.github/workflows/ci.yml, .github/workflows/release.yml) [1] [2].
  • Removed the unused CodeQL workflow, streamlining CI configuration (.github/workflows/codeql.yml).

Documentation Tooling and Standards

  • Added a new docs-writer agent and two skill files (information-mapping, rspress-writing) to enforce structured writing and Rspress conventions for documentation (.claude/agents/docs-writer/CLAUDE.md, .claude/skills/information-mapping/SKILL.md, .claude/skills/rspress-writing/SKILL.md, .claude/skills/rspress-writing/style-examples.md) [1] [2] [3] [4].

Package Configuration Improvements

  • Updated .changeset/config.json to ignore additional example and docs packages in dependency updates, reducing unnecessary changes.

Package Changesets

  • Broadened and improved test suite for @kitajs/html, removed deprecated @kitajs/html/register, and initiated a major overhaul (.changeset/slimy-wolves-buy.md, .changeset/stale-shrimps-spend.md, .changeset/warm-seas-kiss.md) [1] [2] [3].
  • Improved CLI reliability, XSS detection, and multiline TSServer message support in @kitajs/ts-html-plugin (.changeset/metal-hairs-juggle.md, .changeset/metal-corners-type.md, .changeset/hip-trams-roll.md) [1] [2] [3].

dependabot Bot and others added 30 commits May 5, 2026 10:31
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: arthurfiorette <47537704+arthurfiorette@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
#510)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Signed-off-by: Bart Louwers <bart.louwers@gmail.com>
Co-authored-by: arthurfiorette <47537704+arthurfiorette@users.noreply.github.com>
…eprecate ts-html-plugin (#530)

* feat: add @kitajs/html-cli with kita-html check for TypeScript 7.1+

Adds packages/cli, an oclif CLI whose `kita-html check` command ports the
ts-html-plugin XSS detection to the TypeScript 7.1 typescript/sync API, with
pretty, tsc, json and github output formats and solution-style tsconfig
expansion.

Deprecates @kitajs/ts-html-plugin (package.json `deprecated` field, README,
help text and an xss-scan notice). xss-scan now points to kita-html check on
TypeScript 7, keeps findings that share a position across files and no longer
truncates piped output.

Docs: the CLI page moves to guide/xss/cli-scanner, the deprecated plugin to
guide/xss/ts-html-plugin, and every page recommends TypeScript 7.1 with
kita-html check.

* fix: address review findings for kita-html check and ts-html-plugin

- Check every member of children unions without a direct string member
  (children?: string[] was trusted), guard recursive types against infinite
  recursion, and read type arguments through the checker in the plugin so
  arrays inside recursive aliases are checked (both packages)
- Allow the same solution tsconfig to be passed twice or after one of its
  projects
- Print github format log lines that the setup-node tsc problem matcher
  ignores, so findings are not annotated twice
- Compare the @kitajs/html root case-insensitively on Windows and macOS and
  print the unresolved @kitajs/html notice once per run
- Docs and metadata: TypeScript 6 (not 5) for the deprecated plugin, homepage
  links, review wording fixes

* feat(cli): annotate pull requests by default in GitHub Actions, fix safe attribute checks

- Inside GitHub Actions, kita-html check without --format prints annotations
  plus the colored pretty output, with headers the setup-node tsc problem
  matcher ignores. An explicit --format keeps the previous output
- Treat safe={true} like a bare safe attribute
- Only report TS88604 when every child of a safe element is already safe,
  and report TS88602 instead of hiding it behind TS88604
- Run CLI tests in-process with @oclif/test and keep three spawned smoke
  tests: each spawned oclif process took 18-36 s on Windows runners, which
  made the suite time out

* fix(cli): skip oclif's Windows shell detection, address Copilot review

- oclif spawned PowerShell with a WMI query on every run when SHELL is unset
  on Windows (only autocomplete uses the result). This made each run take
  18-55 s on Windows runners and timed out the CLI tests. The bin now sets
  SHELL for every command except autocomplete
- FORCE_COLOR follows Node.js: empty forces colors, 0 or false disables them
- Homepage install command installs the CLI and typescript@next as dev
  dependencies, like getting started
- Grammar fix in the ts-html-plugin README

* test(ts-html-plugin): raise the tsserver test timeout for loaded Windows runners

* feat: make TypeScript 7.1 the workspace default and let --format take several formats

- Default catalog typescript is the latest next nightly allowed by
  minimumReleaseAge (7.1.0-dev.20261012.1). A ts6 catalog remains only for
  code that needs the TypeScript 6 JavaScript API: ts-html-plugin, the docs
  site (twoslash, TypeDoc) and the root (prettier-plugin-organize-imports)
- Express and Fastify plugins: optional peer moves from the deprecated
  @kitajs/ts-html-plugin to @kitajs/html-cli; examples run kita-html check
- --format accepts several formats (comma separated or repeated), prints each
  once in order and defaults to pretty,github inside GitHub Actions. The
  github format prints only annotations; json must be used alone
- The JSON Schema is generated from src/reporters/json-report.ts at build
  time with ts-json-schema-generator and exported as
  @kitajs/html-cli/check-report.schema.json. The report drops its version
  field

This branch was successfully deployed

2 active deployments
github-pages — 41b94840 Deployed Oct 14, 2026 by arthurfiorette via Deploy Docs #2464
NPM Registry — 41b94840 Deployed Oct 14, 2026 by arthurfiorette via release #365
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.

6 participants