Skip to content

Config docs rewrite (shipped model), PyPI standalone install docs, typeshed warning-row navigation#326

Merged
abdushakoor12 merged 3 commits into
mainfrom
fix/website-config-docs
Jul 19, 2026
Merged

Config docs rewrite (shipped model), PyPI standalone install docs, typeshed warning-row navigation#326
abdushakoor12 merged 3 commits into
mainfrom
fix/website-config-docs

Conversation

@abdushakoor12

Copy link
Copy Markdown
Collaborator

TLDR

Rewrites the website configuration docs (en + zh) to match the shipped two-flat-maps config model, documents the PyPI standalone install (uv tool install basilisk-python, Refs #322), and makes the info panel's typeshed UNPINNED warning row navigate to the Configuration Editor where its fix lives.

What Was Added?

  • PyPI install documentation (Refs Add package to pypi #322 — the wheel already ships as basilisk-python): a new "Install" section in README.md / README.zh.md, a "PyPI (uv, pipx)" section leading website/src/docs/install-cli.md, and matching sections on the zh installation page. Presented strictly as a standalone tool install (uv tool install / pipx install), never pip install into a project environment; notes the basilisk-python naming workaround, the published wheel platforms, and that every channel ships the same binary.
  • typeshedWarningItem in vscode-extension/src/info-panel.ts: typeshed warning rows (e.g. UNPINNED) now carry a navigation-only command that opens the Configuration Editor — attached only while the server advertises the capability-gated basilisk.openConfigurationEditor, so a shown-but-dead command (issue Sidebar: merge Module Explorer + Type Health, fix & slim the info panel #103 defect 1) cannot reappear.
  • Two e2e tests in info-panel.test.ts covering both sides of that gate (see below).

What Was Changed or Deleted?

  • website/src/docs/configuration.md + zh mirror — full rewrite to the shipped config model (CHKARCH-CONFIG-MODEL): rule configuration documented as exactly two flat maps ([tool.basilisk.rules] + [tool.basilisk.rule-tags]); a new "Zero configuration" section (PEP rules at error, house rules off, no file needed); PEP rules documented as gradeable but never disablable; folder-scoped configuration via the nearest-deciding-table walk; typeshed source pinning (typeshed-commit / typeshed-path). Removed examples that no longer match the model (glob per-path-overrides tables, disabled = [...] lists).
  • migration.md, quick-start.md, docs index pages, and the site landing page updated to the same model; installation overview pages now list PyPI among the CLI install channels.
  • docs/specs/LSP-CONFIGURATION-EDITOR-SPEC.md ([LSPCFGED-TYPESHED-SERVICE-INFO]): typeshed status rows previously "carry no command"; now a warning row carries exactly one navigation-only, capability-gated command, and all rows remain non-mutating.

How Do The Automated Tests Prove It Works?

  • info-panel.test.ts"the UNPINNED warning row opens the configuration editor where Pin current lives" asserts the row exposes the basilisk.openConfigurationEditor command when the capability is advertised, and "the UNPINNED warning row stays inert while no server advertises the configuration editor" asserts no command is attached otherwise.
  • Full VSIX e2e suite (make _test_vsix, real VS Code + real LSP): 576 passing, 0 failing; extension coverage 93% ≥ 92% threshold.
  • Website: the generated-data drift gates pass (gen_rules_reference.py --data diff clean, gen_conformance_reference.py --check clean), the Eleventy build succeeds, and the Playwright navigation + screenshot smoke suite passes 26/26 (desktop + mobile) against the rebuilt site — exercising the rewritten configuration/installation pages.
  • Lint job green: cargo fmt --check, ruff format --check, clippy -D warnings, cargo audit, eslint, and the deslop duplication gate.

Spec / Doc Changes

  • LSP-CONFIGURATION-EDITOR-SPEC.md — typeshed warning-row navigation contract (summarised above).
  • README.md / README.zh.md — new Install section (PyPI standalone, Homebrew, Scoop, Releases).
  • Website docs — configuration reference rewrite (en + zh), migration/quick-start/index alignment, PyPI install sections.

Breaking Changes

  • None

The configuration pages documented a model that no longer exists and
omitted the one that ships:

- Document [tool.basilisk.rule-tags] (the second of the two flat maps)
  and the full tag vocabulary; it was entirely absent and the page even
  claimed 'there are no family switches'.
- Remove [tool.basilisk.per-path-overrides] everywhere - the key has no
  implementation and [CHKARCH-CONFIG-MODEL] explicitly excludes glob
  path patterns; scoped policy is a folder-level pyproject.toml.
- Describe nearest-deciding-table-wins rule resolution instead of
  'tables merge cumulatively'.
- Document the PEP-rules-are-graded-never-disabled invariant.
- Correct python-version/python-platform defaults (project-file
  resolution and interpreter probe - no '3.12' fallback), and document
  runtime typeshed acquisition keys (typeshed-commit/url/cache/verify)
  per [STUBRES-TYPESHED-CONFIG].
- Replace removed 'Strict preset' claims with the tag-entry workflow
  and describe adoption debt as warning-severity rules entries
  ([AUTOFIX-ADOPTION]).
- Add block suppressions (# type: end-...) to the inline-suppression
  docs; mirror everything in the zh pages.

Refs [CHKARCH-CONFIG-MODEL], [CHKARCH-CONFIG-DISCOVERY],
[CHKARCH-CONFIG-EXCLUDE], [CHKARCH-VERSION-TARGET], [STUBRES-TYPESHED]
…editor

The Server Info UNPINNED row's own message says 'Pin current to make this
reproducible', but the row was a read-only InfoTextItem with no command -
clicking it did nothing, and nothing led the user to the Pin current
action, which lives in the configuration editor's typeshed panel.

Typeshed warning rows now carry a navigation-only command that opens the
configuration editor (basilisk.openConfigurationEditor). The command is
attached only while the server advertises the editor capability, so no
shown-but-dead command can render (issue #103 defect 1); without the
capability the row stays read-only. Mutations still happen only inside
the editor - the row never pins anything itself.

Spec: [LSPCFGED-TYPESHED-SERVICE-INFO] amended from 'carry no command'
to 'never mutate; warning rows carry one navigation-only command,
capability-gated'.

Tests: info-panel.test.ts gains a failing-first test asserting the
UNPINNED row carries the open-editor command plus an imperative tooltip,
and a guard asserting the row stays inert without the capability.
…nd website

The CLI has been on PyPI as basilisk-python (issue #322 asked for
uv tool install support); the README (en/zh) and the website install
pages now say so. Presented as a standalone tool install only —
uv tool install basilisk-python, or pipx — never pip into a project
environment.

Refs #322
@abdushakoor12
abdushakoor12 merged commit 6b1097d into main Jul 19, 2026
23 checks passed
@abdushakoor12
abdushakoor12 deleted the fix/website-config-docs branch July 19, 2026 17:23
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