Skip to content

SIMAI Framework IntelliSense 0.1.0: contract 1.3.0, packaging hygiene, registry-driven completions - #1

Merged
zabarov merged 9 commits into
mainfrom
feat/framework-intellisense
Oct 19, 2026
Merged

zabarov merged 9 commits into
mainfrom
feat/framework-intellisense

Conversation

@zabarov

@zabarov zabarov commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Brings the extension up to date with SIMAI Framework release ui-a9636b60d3e3 and turns it into a full IntelliSense extension (0.1.0).

Phase 1: hygiene and contract

  • Repin the adaptive sizing contract from 1.1.0 to 1.3.0 (sha256 b70d02d6…), taken from the release contract rather than a moving HEAD.
  • Add .vscodeignore: the VSIX now ships only the runtime (20 files, ~67 KB). Before, it also shipped sources, tests, .vscode and local working files.
  • Rebrand as SIMAI Framework IntelliSense, add Marketplace metadata (icon, keywords, categories, repository, CHANGELOG), and write an end-user README with the developer notes moved to CONTRIBUTING.
  • Replace the deprecated vsce with @vscode/vsce, and run npm audit fix (0 vulnerabilities).
  • Fix test:extension: it now runs a real extension host. Also fix the first completion being lost right after activation.

Phase 2: Framework-driven completions

  • Vendor a pinned, hash-checked snapshot of framework-contract-registry.json and the built sheets, with a --check parity gate.
  • Completions for sf- tags, their attributes and attribute values, utility classes (in class, className and CSS selectors) and --sf- tokens.
  • Hovers that show values (light/dark, mobile/desktop), lifecycle and source release, plus colour swatches for colour tokens.
  • Only safe_to_suggest entries are offered; deprecated entries are tagged with their replacement.

Verification

  • npm test: 20/20 pass
  • npm run test:extension: 18 passing in VS Code 1.139
  • npm run generate:check: both snapshots PASS (13 tags, 1058 classes, 922 tokens)
  • vsce ls: runtime files only
  • The VSIX installs locally (simai.sf-vscode@0.1.0)

Known limits

  • Only 13 sf- tags are suggested. The Framework registry marks just 36 of its 345 entries as safe_to_suggest, and 53 smart components are still experimental. Coverage grows when the Framework promotes entries; no change is needed here.
  • Not published to the Marketplace. The publisher id and screenshots are pending.

🤖 Generated with Claude Code

zabarov and others added 9 commits October 19, 2026 21:11
Take the identity from the release lock build input simai/ui-source
1d26dd48 (tree 5b4d11c9) instead of a moving HEAD.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Exclude everything by default and list the runtime files: compiled out/
JavaScript without tests, generators or maps, the data/ registries, the
docs, the licence and the icon. Local state such as .simai/ can no longer
be packaged. The generated registry moves from src/registry to data/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Write SIMAI Framework in capitals, add the icon, keywords, categories,
repository, bugs and homepage, an end-user README, CONTRIBUTING.md and
CHANGELOG.md. Replace the deprecated vsce with @vscode/vsce and refresh
dev dependencies (npm audit: 0 vulnerabilities).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
runTest.ts now launches VS Code through @vscode/test-electron with a
short user data directory, and a mocha suite calls
vscode.executeCompletionItemProvider. The first request used to come back
without SF items because onLanguage activation finished while VS Code
was already collecting providers; the extension now also activates on
onStartupFinished and reads its registry lazily so activation stays
cheap.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vendor:framework copies the contract registry, core.css, public
variables, the safe utility sheets and smart manifests from simai/ui
with git show at the commits named by the release lock
(ui-a9636b60d3e3), checking commit and runtime trees. The generator
verifies every file against contracts/framework.pointer.json and builds
data/sf-framework.json: safe tags with manifest attributes, values and
deprecations, utility classes, and --sf- tokens resolved for light/dark
and mobile/desktop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Complete sf- custom element tags, their attributes and values in markup,
utility classes in class/className and as escaped selectors in
stylesheets, and every --sf- token with its resolved values. Colour
tokens get swatches in the list and in the document, and the picker
offers the nearest Framework colour token. Hovers describe tokens,
classes, tags and attributes with the source release and lifecycle.
Deprecated attributes are struck through with their replacement. Class
selectors no longer complete after a dot in markup or scripts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixtures are written to disk so the language comes from the file
extension, and SF_EXTENSION_PATH points the runner at another copy of
the extension, such as the folder installed from the packaged .vsix.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Runs on pushes to main and on pull requests: npm ci, compile and lint,
unit tests, both registry parity gates, extension-host tests under xvfb,
a vsce ls check that only runtime files ship, and the packaged .vsix
with its sha256 as an artifact.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@zabarov
zabarov merged commit b99885b into main Oct 19, 2026
1 check passed
@zabarov
zabarov deleted the feat/framework-intellisense branch October 20, 2026 13:09
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