Skip to content

Conversation

@kastov
Copy link
Contributor

@kastov kastov commented Dec 21, 2025

No description provided.

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Dec 21, 2025

Greptile Summary

This release (v7.0.5) includes backend reliability improvements and frontend UI enhancements:

Backend Changes:

  • Added strict response validation using zod schemas in AxiosService for getAuthStatus() and getSubscriptionPageConfigList() methods to ensure API responses match expected schemas
  • Fixed error handling bug where non-AxiosError exceptions would cause duplicate error logging
  • Refactored SubpageConfigService to extract UUID resolution logic into a reusable getFinalSubpageConfigUuid() method, eliminating code duplication
  • Added required INTERNAL_JWT_SECRET environment variable to config schema

Frontend Changes:

  • Redesigned installation guide app selection UI with enhanced visual styling including background icons, featured badges, gradient effects, and improved hover states
  • Simplified main page header layout structure by removing nested Group components and unnecessary Text wrapper
  • Improved logo rendering with fixed dimensions (width: 32px, height: 32px) instead of max-width/max-height for consistent sizing
  • Enhanced subscription info widget with faster transition (150ms) and added keepMounted prop to Collapse component
  • Improved header alignment by adding ml="auto" to subscription link widget

All changes are backwards-compatible improvements focused on code quality, error handling, and user experience.

Confidence Score: 5/5

  • This PR is safe to merge with no risk
  • All changes are well-structured improvements with no breaking changes or security concerns. Backend adds important response validation and fixes error handling bugs. Frontend changes are purely cosmetic UI enhancements. Version bump is appropriate for a patch release.
  • No files require special attention

Important Files Changed

Filename Overview
backend/src/common/config/app-config/config.schema.ts Added required INTERNAL_JWT_SECRET environment variable to config schema
backend/src/common/axios/axios.service.ts Added response validation using zod schemas and improved error handling with more specific error messages
backend/src/modules/root/subpage-config.service.ts Refactored UUID logic into reusable getFinalSubpageConfigUuid method to eliminate duplication
frontend/src/pages/main/ui/components/main.page.component.tsx Simplified header layout structure and improved logo sizing with fixed dimensions instead of maxWidth/maxHeight
frontend/src/widgets/main/installation-guide/installation-guide.connector.tsx Redesigned app selection UI from Button components to UnstyledButton with custom styling and background icons
frontend/src/widgets/main/installation-guide/installation-guide.module.css Added comprehensive styling for new app button design with icons, featured badges, and hover effects

Sequence Diagram

sequenceDiagram
    participant User
    participant Frontend
    participant Backend
    participant SubpageConfigService
    participant AxiosService
    participant RemnawavePanel

    Note over User,RemnawavePanel: Application Bootstrap
    Backend->>SubpageConfigService: onApplicationBootstrap()
    SubpageConfigService->>AxiosService: getSubscriptionPageConfigList()
    AxiosService->>RemnawavePanel: GET /configs
    RemnawavePanel-->>AxiosService: Response
    AxiosService->>AxiosService: ResponseSchema.parseAsync(data)
    AxiosService-->>SubpageConfigService: Validated config list
    SubpageConfigService->>SubpageConfigService: Store configs in Map

    Note over User,RemnawavePanel: User Page Request
    User->>Frontend: Load subscription page
    Frontend->>Backend: GET /page
    Backend->>SubpageConfigService: getSubscriptionPageConfig(uuid)
    SubpageConfigService->>SubpageConfigService: getFinalSubpageConfigUuid(uuid)
    SubpageConfigService->>SubpageConfigService: decryptUuid()
    SubpageConfigService-->>Backend: Config from Map
    Backend-->>Frontend: Page config
    Frontend->>Frontend: Render UI components
    Frontend->>Frontend: Apply new app button styles
    Frontend-->>User: Display page

    Note over User,RemnawavePanel: Status Check
    Backend->>AxiosService: getAuthStatus()
    AxiosService->>RemnawavePanel: GET /status
    RemnawavePanel-->>AxiosService: Response
    AxiosService->>AxiosService: ResponseSchema.parseAsync(data)
    AxiosService-->>Backend: Validation result
Loading

@kastov kastov merged commit 2dedd15 into main Dec 22, 2025
4 checks passed
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.

2 participants