Development

Darkkle uses plain JavaScript, HTML, and CSS. The extension has no bundled runtime library and no bundler requirement. Node.js is used only for repository validation and deterministic release packaging.

Important files

Local checks

From the repository root:

npm run check

This validates the repository and builds the installable release ZIP under dist/.

Automated checks do not establish that spreadsheet rendering is correct. Use a blank or fabricated spreadsheet and complete the relevant sections of the project’s browser test checklist.

High-risk areas

The spreadsheet grid relies on private canvas behaviour that can change without notice. Changes to header and selection handling should be tested across scrolling, zoom, frozen panes, multi-cell and multi-range selections, focus changes, and retained canvas layers.

Storage migrations are also high risk. Historical backup identifiers and internal storage prefixes remain for compatibility. Do not rename them without a migration and regression tests.

Pull requests

Keep changes focused. Explain privacy, permission, networking, performance, and compatibility effects. State the exact browser versions and operating systems tested. AI-assisted code is welcome only when the contributor understands and tests it.