HF-307: wire the two commercial add-on tokens, strictly additively (6/8) - #1737
Open
marcin-kordas-hoc wants to merge 2 commits into
Open
HF-307: wire the two commercial add-on tokens, strictly additively (6/8)#1737marcin-kordas-hoc wants to merge 2 commits into
marcin-kordas-hoc wants to merge 2 commits into
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
hyperformula-docs | 4ab3cc6 | Commit Preview URL Branch Preview URL |
Aug 20 2026, 12:58 PM |
Contributor
|
Task linked: HF-107 Import/export files (XLSX, CSV) |
marcin-kordas-hoc
force-pushed
the
spike/hf307-addon-grants
branch
from
August 18, 2026 06:17
8228e6c to
cb9b03e
Compare
Performance comparison of head (4ab3cc6) vs base (aa835bf) |
marcin-kordas-hoc
marked this pull request as ready for review
August 18, 2026 07:11
marcin-kordas-hoc
force-pushed
the
hf-307-entitlement-gating-pr4
branch
from
August 18, 2026 08:57
5d67b5d to
46ac32d
Compare
marcin-kordas-hoc
force-pushed
the
spike/hf307-addon-grants
branch
from
August 19, 2026 09:55
cb9b03e to
b038fa9
Compare
Collaborator
Author
|
Paired tests PR: handsontable/hyperformula-tests#38 — merge it BEFORE this one. |
marcin-kordas-hoc
force-pushed
the
spike/hf307-addon-grants
branch
from
August 20, 2026 06:50
b038fa9 to
9933ba3
Compare
marcin-kordas-hoc
changed the base branch from
hf-307-entitlement-gating-pr4
to
spike/hf307-notice-window
August 20, 2026 06:50
Per the 2026-08-12 packages meeting: `spreadsheet` backs the Spreadsheet
Bundle add-on and grants Crud, UndoRedo, Clipboard and Batching ("chyba tez"
batching - Kuba, 12.08); `import_export` grants FeatureId.ImportExport, a
reserved grant with no gated method until HF-107 ships the feature.
Additive only: a key naming neither add-on keeps every feature area it has
today (the opt-in rule for keys carrying no feat:* tokens is untouched), so
no real key can start throwing as a side effect of this change. The open
product question - does a package key without the bundle keep CRUD once
packages go live - stays open and is documented as such in the guide.
Implemented by a prep-ship lane (task HF-307-addon-grants); verified here:
license suite 165/165 under Jest, tsc --noEmit clean, eslint clean.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PdHPZAjciZFWqGa19Yf7it
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PdHPZAjciZFWqGa19Yf7it
marcin-kordas-hoc
force-pushed
the
spike/hf307-addon-grants
branch
from
August 20, 2026 12:54
9933ba3 to
4ab3cc6
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## spike/hf307-notice-window #1737 +/- ##
==========================================================
Coverage 97.38% 97.38%
==========================================================
Files 204 204
Lines 16236 16236
Branches 3493 3493
==========================================================
Hits 15812 15812
Misses 424 424
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wires the two commercial add-on tokens decided in the 12.08 packages meeting, strictly additively. Stacks on #1731; rebased onto its current head on 19.08 (the base moved during PR3/PR4's review passes, which had left this PR conflicting).
What changed
spreadsheet(Spreadsheet Bundle add-on) now grantsFeatureId.Crud,UndoRedo,ClipboardandBatching("chyba też" batching — Kuba, 12.08).import_exportgrantsFeatureId.ImportExport— a reserved grant: no public method is gated on it until HF-107 ships the feature it would gate.feat:*tokens is untouched), so no real key can start throwing as a side effect. The open product question — does a package key without the bundle keep CRUD once packages go live — stays open and is documented as such indocs/guide/license-key.md.Verification
Paired tests:
hyperformula-tests@spike/hf307-addon-grants(6 assertions incl. the pin that a key without either add-on keeps all five pre-existing feature areas). Full license suite 212/212 under Jest (12 suites,unit/license+unit/helpers/licenseKeyValidator), re-measured after the 19.08 rebase onto the current #1731 (e9863f27) — the earlier 165/165 predated PR3's and PR4's review fixes,tsc --noEmitclean,eslint --quietclean.🤖 Generated with Claude Code
Note
Medium Risk
Changes commercial license entitlement resolution and console notification behavior for typed keys; incorrect grant wiring could wrongly gate CRUD-related API areas once package keys go live, though tests and additive opt-in rules aim to prevent regressions for keys without add-ons.
Overview
Wires the
spreadsheetandimport_exportcommercial add-on tokens per the 2026-08-12 packages meeting, and adds a usage-axis expiry notice for typed keys.The
spreadsheettoken (Spreadsheet Bundle) now grants CRUD, undo/redo, clipboard, and batching viaCAPABILITY_TABLE.import_exportgrantsFeatureId.ImportExportas a reserved entitlement with no public API gate until HF-107. Keys that name neither add-on are unchanged in practice: the existing opt-in rule still injects allfeat:*tokens when a key does not speak the feature vocabulary, so this release remains additive and does not strip CRUD or related areas from current keys.resolveLicenseevaluatesexpiryWithinNoticeWindowfor valid, non-silent typed keys on the usage-until axis and callsnotifyLicenseKeyNotice, which warns once per distinct key string (separate from the global invalid/missing/expired_notifiedflag). Per-key tracking is cleared inresetLicenseKeyNotificationForTests. Docs and changelog describe add-on semantics and note that missing add-ons still do not restrict anything in this release.Reviewed by Cursor Bugbot for commit 9933ba3. Bugbot is set up for automated code reviews on this repo. Configure here.