Skip to content

✨ feat(secrets): improve secrets UX, icon lifecycle, and KV deprecation rollout#26

Merged
bearlike merged 10 commits into
mainfrom
feat/20260303-194145-20725
Mar 4, 2026
Merged

✨ feat(secrets): improve secrets UX, icon lifecycle, and KV deprecation rollout#26
bearlike merged 10 commits into
mainfrom
feat/20260303-194145-20725

Conversation

@bearlike

@bearlike bearlike commented Mar 4, 2026

Copy link
Copy Markdown
Owner
  • Updated navigation to use native shadcn sidebar primitives with a mobile-safe top bar flow, moving crowded secondary controls into responsive overflow menus and keeping theme switching in the sidebar footer for better small-screen usability.
  • Reworked the Secrets page layout to scale better on narrow viewports, including compact action controls, horizontal table scrolling hints, and shared desktop/mobile row actions so secret operations stay consistent across screen sizes.
  • Improved forked config visibility by splitting secrets into collapsible Overrides and Inherited groups, visually de-emphasizing inherited rows, and showing live override/inherited counts in the page header.
  • Added a dedicated secrets-view query key strategy so fork-aware views continue to refresh correctly with existing React Query prefix invalidation patterns.
  • Strengthened secret icon assignment by prioritizing first-token matches during icon inference, then falling back to broader token combinations only when needed.
  • Introduced persistent icon provenance (auto vs manual) so manual icon choices remain stable while automatic icon updates can still be safely recomputed.
  • Added a new project maintenance endpoint, POST /api/projects/<project_slug>/secrets/icons/recompute, plus a Config Settings UI action to refresh auto-assigned icons and report updated/skipped totals.
  • Enabled empty-string secret values intentionally: values are now normalized on submit, whitespace-only submissions require explicit confirmation in Add/Edit dialogs, and non-string payloads are rejected server-side.
  • Deprecated legacy /api/secrets/kv surfaces in layers (runtime warnings, OpenAPI deprecation flags, and deprecation response headers) while preserving endpoint availability for compatibility during the transition window.
  • Added and extended tests for icon-resolution priority, icon-source propagation, recompute behavior, empty-value handling, and KV deprecation signaling to lock in the new contract.
  • Bumped the release version from 1.4.0 to 1.4.1 and aligned related project/docs metadata to the new release.

bearlike added 8 commits March 3, 2026 20:00
Split forked config secret lists into collapsible Overrides and Inherited sections, with Overrides expanded by default and inherited rows visually de-emphasized.

Add fork summary counts to config header and preserve query invalidation compatibility via a dedicated secrets view query key.
Use a Dialog-based drawer for the left navigation on all screens, controlled from TopBar.

Persist open/closed state in localStorage and expose accessibility state via aria-expanded and aria-hidden.
Replace custom sidebar drawer wiring with shadcn SidebarProvider/Sidebar/SidebarInset/SidebarTrigger and add required registry primitives (sidebar, sheet, tooltip, separator, use-mobile).

Update AGENTS guidance to enforce registry-first planning and KISS/DRY reuse order for future UI work.
Refactor TopBar to use native shadcn breadcrumb and responsive overflow actions on smaller viewports.

Move theme toggle from topbar to sidebar footer, add breadcrumb primitive from shadcn registry, and capture the KISS/DRY responsive header pattern in frontend AGENTS guidance.
…ide recompute

- Rewrite icon resolver to prioritize first-token matches before fallback tokens\n- Persist icon_source (auto/manual) and preserve manual overrides during recompute\n- Add POST /api/projects/<project>/secrets/icons/recompute endpoint\n- Add Project Settings button to trigger recompute and refresh queries\n- Extend backend tests for resolver/source/recompute behavior
@deepsource-io

deepsource-io Bot commented Mar 4, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in add7a49...aa7db34 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
Python Mar 4, 2026 11:11a.m. Review ↗
Docker Mar 4, 2026 11:11a.m. Review ↗

@bearlike bearlike self-assigned this Mar 4, 2026
bearlike added 2 commits March 4, 2026 02:51
Extract internal-only services for key comparison and icon slug resolution while preserving public interfaces and response contracts.

Add characterization tests for compare flags/malformed configs and icon default fallback when index is missing.
Apply staticmethod on helper/resource methods that do not use instance state and document local PYL-R0201 verification mapping in AGENTS.
@bearlike bearlike merged commit b2d91b8 into main Mar 4, 2026
6 checks passed
@bearlike bearlike deleted the feat/20260303-194145-20725 branch March 4, 2026 11:24
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.

1 participant