summaryrefslogtreecommitdiff
path: root/internal/handlers/settings.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/handlers/settings.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/handlers/settings.go')
-rw-r--r--internal/handlers/settings.go54
1 files changed, 0 insertions, 54 deletions
diff --git a/internal/handlers/settings.go b/internal/handlers/settings.go
index 43fce20..5ba3724 100644
--- a/internal/handlers/settings.go
+++ b/internal/handlers/settings.go
@@ -4,8 +4,6 @@ import (
"encoding/json"
"net/http"
- "github.com/go-chi/chi/v5"
-
"task-dashboard/internal/auth"
"task-dashboard/internal/models"
"task-dashboard/internal/store"
@@ -14,7 +12,6 @@ import (
// HandleSettingsPage renders the settings page
func (h *Handler) HandleSettingsPage(w http.ResponseWriter, r *http.Request) {
configs, _ := h.store.GetSourceConfigs()
- toggles, _ := h.store.GetFeatureToggles()
syncLog, _ := h.store.GetRecentSyncLog(20)
agents, _ := h.store.GetAllAgents()
buckets, _ := BuildBucketSummaries(h.store)
@@ -30,7 +27,6 @@ func (h *Handler) HandleSettingsPage(w http.ResponseWriter, r *http.Request) {
data := struct {
Configs map[string][]models.SourceConfig
Sources []string
- Toggles []models.FeatureToggle
SyncLog []store.SyncLogEntry
Agents []models.Agent
Buckets []models.BucketSummary
@@ -41,7 +37,6 @@ func (h *Handler) HandleSettingsPage(w http.ResponseWriter, r *http.Request) {
}{
Configs: bySource,
Sources: []string{"trello", "gcal", "gtasks"},
- Toggles: toggles,
SyncLog: syncLog,
Agents: agents,
Buckets: buckets,
@@ -163,52 +158,3 @@ func (h *Handler) HandleToggleSourceConfig(w http.ResponseWriter, r *http.Reques
json.NewEncoder(w).Encode(map[string]bool{"enabled": enabled})
}
-// HandleToggleFeature toggles a feature flag
-func (h *Handler) HandleToggleFeature(w http.ResponseWriter, r *http.Request) {
- name, ok := requireFormValue(w, r, "name")
- if !ok {
- return
- }
- enabled := r.FormValue("enabled") == "true"
-
- if err := h.store.SetFeatureEnabled(name, enabled); err != nil {
- JSONError(w, http.StatusInternalServerError, "Failed to update feature", err)
- return
- }
-
- w.Header().Set("Content-Type", "application/json")
- json.NewEncoder(w).Encode(map[string]bool{"enabled": enabled})
-}
-
-// HandleCreateFeature creates a new feature toggle
-func (h *Handler) HandleCreateFeature(w http.ResponseWriter, r *http.Request) {
- name, ok := requireFormValue(w, r, "name")
- if !ok {
- return
- }
- description := r.FormValue("description")
-
- if err := h.store.CreateFeatureToggle(name, description, false); err != nil {
- JSONError(w, http.StatusInternalServerError, "Failed to create feature", err)
- return
- }
-
- // Return updated toggles list
- h.HandleSettingsPage(w, r)
-}
-
-// HandleDeleteFeature removes a feature toggle
-func (h *Handler) HandleDeleteFeature(w http.ResponseWriter, r *http.Request) {
- name := chi.URLParam(r, "name")
- if name == "" {
- JSONError(w, http.StatusBadRequest, "Feature name required", nil)
- return
- }
-
- if err := h.store.DeleteFeatureToggle(name); err != nil {
- JSONError(w, http.StatusInternalServerError, "Failed to delete feature", err)
- return
- }
-
- w.WriteHeader(http.StatusOK)
-}