UI cleanup, dark mode, and filter improvements#5272
Merged
itsouvalas merged 43 commits intodevelopfrom Mar 23, 2026
Merged
Conversation
Replace the old bin/package that compiled from source with a script that uses Makefile build targets and produces a zip for cf push -p with binary_buildpack. Old script kept as package.old until verified by Kevin Rutten.
Add PLATFORM override parsing, fe-version target in version.mk, bump dev version to v4.9.3-dev.12. Gitignore .env files.
Improve list/table component consistency, add behavioral specs, remove pageSplitCache, fix CF services list config patterns.
Rewrite contributing guide with correct commands, versions, and setup steps. Add developer-environment.md reference. Add list filter E2E test and plan files.
CF requires a Linux ELF binary. Validate dist/bin/jetstream is a Linux binary before packaging, with a clear error message if the wrong platform binary is present. Binary must be pre-built: make build PLATFORM=linux/amd64
release-cf.sh validates dist/bin/jetstream is a Linux ELF binary before packaging. version.mk moves BUILD_VCS_BRANCH before GO_LDFLAGS so the branch name is correctly injected via ldflag.
Expose git_branch in the Versions struct so the About page can display the backend branch alongside commit and build date.
Three-column card: logo | frontend+backend versions | signed in. Semantic theme colors, formatted timestamps, native hover tooltips on all truncated fields, GitHub links for commit and branch. Backend branch displayed alongside frontend branch. Admin row full-width with orange tint. Responsive: 2-col tablet, 1-col phone. Unit and E2E tests added.
Document binary naming, cross-compilation requirement on macOS, and the Linux ELF validation in make release cf.
Contributor
|
I can test this later today or on Monday depending on scheduling. I'll update with any findings! |
88548a4 to
c40ed1d
Compare
Patch-level upgrade. Includes CVE-2025-59052 security fix (SSR), iframe src sanitization, and translated attribute sanitization. No breaking change impact — Stratos does not use the affected bootstrapApplication/getPlatform/destroyPlatform APIs. Vitest: 1029 passed, 5 pre-existing errors unchanged. Playwright: 6 passed, 0 failed. Also fix about-page E2E fixture name to connectedEndpointsAdminPage. FWT-839
Show Angular runtime version in About page Frontend section. Add Runtime Versions card to Diagnostics with Angular, TypeScript, Node.js, and Bun. Fix diagnostics build date to use BUILD_INFO for consistency with About. FWT-835 AI: claude-code
Replace raw text-gray-900 with semantic text-content-text in card-number-metric so count values respect the active theme. FWT-835 AI: claude-code
Replace app-metadata-item selectors with dt/dd locators matching the redesigned About page template. Add Angular version E2E test. FWT-835 AI: claude-code
Seed BehaviorSubjects from persisted store values on init so org/space dropdowns match the filter state from first render. Fix selectItem to wait for async options before validating and to treat empty string as a clear operation. FWT-834
Playwright tests verify org/space dropdowns stay consistent with NgRx store across load, filter, clear, and navigation. Update list component locators for custom paginator and progress bar. FWT-834
File-by-file analysis of ~40 templates using raw Tailwind grays instead of semantic color classes. FWT-847, FWT-852
Use [selected] binding on each <option> instead of [value] on <select> — native selects ignore [value] when options render asynchronously. Make MultiFilterManager.value$ a BehaviorSubject so the async pipe triggers OnPush change detection. FWT-848
Central tracking for FWT tickets, status, commits, decisions and learnings across work sessions.
Non-list pages (About, Diagnostics, Home) scroll via the dashboard-base #content div. macOS hides scrollbars by default, leaving no visual cue that more content exists. Add a gradient shadow overlay that appears when content overflows and fades on scroll-to-bottom. Reuses the list component pattern with signal + scroll handler. Router NavigationEnd subscription re-evaluates after page changes. Includes Playwright E2E tests for DOM structure, visibility behavior, cross-page navigation, and positioning. AI: claude-opus-4-6
When no org is selected, aggregate spaces from all orgs with "space (org)" labels for disambiguation. Deduplicate by GUID, sort alphabetically. When an org is selected, plain space names are unchanged.
Fix 9 templates broken in dark mode by replacing text-gray-500 with text-content-muted on elements that render on theme-controlled backgrounds.
Documents that @angular/material is fully removed. Only @angular/cdk remains for non-UI utilities. Remaining work is cleanup, not migration.
Silences stale data warning during builds.
Remove stale go.sum entries, reclassify swaggo/swag as indirect dependency.
Drops docker/docker, docker/cli, and ~20 other transitive dependencies. Bumps Kubernetes client libs to v0.35.1. Eliminates ~30 Dependabot alerts.
Update .table-cell to .table-row-cell to match the actual DOM class on table row data cells. Fix card count assertion for partial rendering.
applyThemeMode() only toggled CSS classes but never called applyTheme() to set CSS custom properties. initializeTheme() loaded stale theme from localStorage that could contain light colors even when mode was dark. Now applyThemeMode() selects the correct base theme and applies CSS variables inline. Branding is stored separately so it survives mode switches. Default mode changed from system to light.
The progress-bar-indeterminate class had no CSS definition after the Tailwind migration, making the loading indicator invisible during data fetches. Add keyframes animation and fix bg-primary-500 (nonexistent) to bg-primary. Includes vitest unit tests and Playwright E2E tests.
Convert core components from hardcoded Tailwind grays to semantic CSS variable tokens (bg-content-bg, text-content-text, text-content-muted, etc.) for dark mode support. Add page side nav theming, fix card progress overlay colors, fix login page text contrast. Set all CSS variables inline in applyTheme() to prevent race condition where dark mode loads before stylesheet. Add theming architecture documentation.
Card header border, card title text, custom card colors, and table header styles now use semantic CSS variables for dark mode support.
The reset button now clears org/space dropdown selections and text filter in addition to sort and pagination state. Also fix orphaned subscriptions and lifecycle cleanup in CfOrgSpaceDataService.
Add border divider between search input and sort dropdown for visual clarity in both light and dark modes. Update search placeholder to "Search by name". Reset button now clears org/space dropdown selections and text filter.
Strip company-internal Jira references from test descriptions and comments. Not useful to external contributors.
a584515 to
3fd19db
Compare
Plans migrated to external knowledge store.
Getting Started now links to deploy overview instead of duplicating the Docs introduction. Added Introduction link to footer Docs section.
Use "Filter by" consistently across all list configs. Title case for all placeholder text.
Add CompanyConfigService layer, login page theming, styling recipes, dark mode checklist. Remove internal ticket references.
krutten
previously approved these changes
Mar 23, 2026
Contributor
krutten
left a comment
There was a problem hiding this comment.
Paired with Norm A on review
Fix broken PR checks: Go 1.21→1.25, Node 16→24, npm→Bun, old make targets to verb+modifier pattern, disable TSLint (removed in Angular 20).
Contributor
|
I did not see anything concerning in my testing, so LGTM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
AI Disclosure
AI tooling (Claude Code) was used for code generation, analysis, and testing per CF RFC-0047.