refactor(settings): rename Features pane route + internal ext/extension identifiers to feature vocabulary
The Features settings tab's route id, DOM ids, function names, local
variables, and comments all used v1-era 'extension' vocabulary while
its user-facing label is already 'Features'. The separate 'Extensions'
tab (bundled chrome browser extensions — ad blocker, consent-o-matic)
keeps its distinct 'privacy' route id and real-chrome-extension
identifiers; this sweep only touches the tile-backed-features side.
app/index.js
- SETTINGS_PANES entry value 'extensions' -> 'features'
(also drops the vestigial subtitle mention of 'extensions')
app/settings/settings.js
- Route + DOM:
- section id 'section-extensions' -> 'section-features'
- listContainer id 'extensions-list-container' -> 'features-list-container'
- nav dataset.section, showSection argument, nav variable name
- local DOM variables extNav/extSection/extTitle -> featuresNav/featuresSection/featuresTitle
- Function + global names:
- renderExtensionsSettings -> renderFeaturesSettings
- refreshExtensionsList -> refreshFeaturesList
- window._refreshExtensionsList -> window._refreshFeaturesList
- Features-loop internals:
- allExtensions -> allFeatures
- isCmdExtension -> isCmdFeature
- iteration variable ext -> feat (Chrome browser extension loop keeps ext)
- CSS class 'extension-error' -> 'feature-error' (class was assigned but never targeted)
- renderFeatureSettings (single-feature options):
- extId -> featureId
- Datastore browser: drop the deleted 'extensions' SQLite table from
the Features table-group and tableDescriptions map; relabel the group
from 'Extensions' to 'Features'
- Comments across the Features pane rewritten in feature/tile vocabulary
app/settings/settings.css
- Delete stale .nav-item-extension rule + comment (class was never referenced)
Session-restore impact: users with URL hash #extensions from prior
sessions will land on the default pane instead of the Features pane
once; showSection handles the missing-section case gracefully.
Out of scope (stays as-is): api.chromeExtensions surface, the 'privacy'
browser-extensions tab, identifiers inside the bundled-Chrome-extensions
render path.