summaryrefslogtreecommitdiff
path: root/internal/store/sqlite.go
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-08-06 18:19:27 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-08-06 18:19:27 +0000
commit06450fe69ade2928deb9274bb67b7ba60d394b4f (patch)
tree328c3e2f5608663669d75330bfde1e61ab713499 /internal/store/sqlite.go
parentf7d18eae924a221f12293c3063e46b791468623f (diff)
Remove the feature toggle system (dead code)
Audited it (couldn't query the live DB directly -- auto-mode classifier blocks direct production reads without prior approval -- so this is a code-only audit): GetFeatureToggles/SetFeatureEnabled/IsFeatureEnabled/ CreateFeatureToggle/DeleteFeatureToggle had exactly one caller each, all inside their own CRUD handlers. Nothing anywhere else in the codebase read a toggle's Enabled state to gate any actual behavior -- confirmed by grepping every remaining .Enabled/IsFeatureEnabled reference back to either this dead code or its own tests. It was pure UI-managed CRUD with no consumer, unlike Trusted Agents (wired into agent.go/websocket.go) or Data Sources (wired into the sync pipeline) which stayed. Removes the Settings page section, the three /settings/features* routes and handlers, the five Store methods, the FeatureToggle model, and adds 028_drop_feature_toggles.sql (next free migration number, per this repo's convention of never renumbering -- see 021_drop_tasks.sql for the same drop-table-forward pattern) to drop the now-unused table. Also removed the now-dead tests for all of the above. go build ./... and go test ./... both clean. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
Diffstat (limited to 'internal/store/sqlite.go')
-rw-r--r--internal/store/sqlite.go61
1 files changed, 0 insertions, 61 deletions
diff --git a/internal/store/sqlite.go b/internal/store/sqlite.go
index d48cb09..2a062ff 100644
--- a/internal/store/sqlite.go
+++ b/internal/store/sqlite.go
@@ -628,67 +628,6 @@ func (s *Store) InvalidateAllCaches() error {
return err
}
-// Feature toggles
-
-// GetFeatureToggles returns all feature toggles
-func (s *Store) GetFeatureToggles() ([]models.FeatureToggle, error) {
- rows, err := s.db.Query(`
- SELECT id, name, description, enabled FROM feature_toggles ORDER BY name
- `)
- if err != nil {
- return nil, err
- }
- defer func() { _ = rows.Close() }()
-
- var toggles []models.FeatureToggle
- for rows.Next() {
- var t models.FeatureToggle
- var desc sql.NullString
- if err := rows.Scan(&t.ID, &t.Name, &desc, &t.Enabled); err != nil {
- return nil, err
- }
- if desc.Valid {
- t.Description = desc.String
- }
- toggles = append(toggles, t)
- }
- return toggles, rows.Err()
-}
-
-// IsFeatureEnabled checks if a feature toggle is enabled
-func (s *Store) IsFeatureEnabled(name string) bool {
- var enabled bool
- err := s.db.QueryRow(`SELECT enabled FROM feature_toggles WHERE name = ?`, name).Scan(&enabled)
- if err != nil {
- return false
- }
- return enabled
-}
-
-// SetFeatureEnabled updates a feature toggle's enabled state
-func (s *Store) SetFeatureEnabled(name string, enabled bool) error {
- _, err := s.db.Exec(`
- UPDATE feature_toggles SET enabled = ?, updated_at = datetime('now', 'localtime')
- WHERE name = ?
- `, enabled, name)
- return err
-}
-
-// CreateFeatureToggle creates a new feature toggle
-func (s *Store) CreateFeatureToggle(name, description string, enabled bool) error {
- _, err := s.db.Exec(`
- INSERT INTO feature_toggles (name, description, enabled)
- VALUES (?, ?, ?)
- `, name, description, enabled)
- return err
-}
-
-// DeleteFeatureToggle removes a feature toggle
-func (s *Store) DeleteFeatureToggle(name string) error {
- _, err := s.db.Exec(`DELETE FROM feature_toggles WHERE name = ?`, name)
- return err
-}
-
// SyncLogEntry represents a single entry in the sync activity log
type SyncLogEntry struct {
ID int64