Skip to content

feat: multi-select cache delete + app version display (closes #7)#32

Merged
Rampim merged 3 commits intomainfrom
feature/cache-multi-delete-and-version
Apr 17, 2026
Merged

feat: multi-select cache delete + app version display (closes #7)#32
Rampim merged 3 commits intomainfrom
feature/cache-multi-delete-and-version

Conversation

@Rampim
Copy link
Copy Markdown
Collaborator

@Rampim Rampim commented Apr 17, 2026

Summary

  • Closes Allow deleting individual cache entries from the UI #7 — per-entry cache deletion via row checkboxes + contextual "Delete N" action. Header select-all checkbox handles the "clear all" case, so no redundant "Clear Cache" button cluttering the UI. Backend DELETE /cache endpoint stays for API consumers.
  • App version in Settings — small footer shows git-derived version. Source: git describe --tags --always --dirty written to backend/app/_version.py by install.sh at deploy time, subprocess fallback for local dev. New public GET /api/version.
  • Side fixes found while deploying to genie-cache-queue-staging:
    • list_genie_spaces paginates via next_page_token (was capped at first 20).
    • install.sh rsync excludes .claude/ + venvs (staging 192M → 1.6M).
    • .databricksignore mirrors the same excludes.
    • DatabaseService.delete_cache_entries passthrough added (was missing → 500).

Test plan

  • Cache tab: checkboxes + "Delete N" only appears with selections; select-all works.
  • Settings: version footer shows Genie Gateway v….
  • curl \$APP_URL/api/version{"version":"v…"}.
  • Create Gateway modal surfaces spaces beyond the first page.

Deployed and validated on `genie-cache-queue-staging`.

Co-authored-by: Isaac

Rampim added 2 commits April 17, 2026 11:54
…enie spaces

Issue #7: Add per-entry cache deletion via row checkboxes and contextual
"Delete N selected" action; keep "Clear Cache" for full wipes.

Version display: Resolve version from git describe at deploy time
(install.sh writes backend/app/_version.py) with a local-dev subprocess
fallback. Expose /api/version and show it as a small footer in Settings.

Side fixes found while deploying to staging:
- list_genie_spaces now follows next_page_token so workspaces with >20
  spaces surface all of them (was silently capped at the first page).
- install.sh rsync: exclude .claude/, venv/, .venv/, backend/.venv/
  (staging dir went from 192M to 1.6M).
- .databricksignore: mirror the same excludes for databricks sync.
…lone Clear Cache button

DatabaseService was missing the passthrough for delete_cache_entries,
so POST /cache/delete blew up with AttributeError → 500.

UI: the side-by-side "Delete N" and "Clear Cache" buttons were redundant
and confusing. Removed Clear Cache — select-all header checkbox + Delete
already covers the wipe case. Backend DELETE /cache endpoint stays for
API consumers outside the UI.
@Rampim
Copy link
Copy Markdown
Collaborator Author

Rampim commented Apr 17, 2026

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

@Rampim Rampim merged commit 1266d26 into main Apr 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow deleting individual cache entries from the UI

1 participant