Skip to content

Conversation

raghavyuva
Copy link
Owner

@raghavyuva raghavyuva commented Oct 7, 2025

Summary by CodeRabbit

  • New Features

    • Added extension details page with Overview and Executions tabs.
    • Overview shows metadata, variables table, and collapsible Run/Validate steps.
    • Executions tab lists runs with ID, status, started/completed times, plus loading skeletons.
    • Enabled navigation from extensions list to detail view.
    • Integrated endpoints to fetch a single execution and list executions.
  • Localization

    • Added translations for extensions UI (overview, executions, variables, statuses, empty states) in EN, ES, FR, and KN.
  • Chores

    • Updated version release date.

Copy link
Contributor

coderabbitai bot commented Oct 7, 2025

Walkthrough

Adds backend support and routes to fetch a single extension execution and list executions by extension ID, updates API versions metadata, and implements frontend pages, tabs, and Redux API hooks to display executions and an overview. Includes i18n additions, navigation to detail pages, and UI refactors consolidating step rendering.

Changes

Cohort / File(s) Summary of changes
API metadata
api/api/versions.json
Updated v1 release_date timestamp.
Backend: extensions executions API
api/internal/features/extension/controller/get_extensions.go, api/internal/features/extension/service/service.go, api/internal/features/extension/storage/storage.go, api/internal/routes.go
Added controller methods GetExecution and ListExecutionsByExtensionID; service methods GetExecutionByID and ListExecutionsByExtensionID; storage interface and implementation for ListExecutionsByExtensionID; registered two GET routes for execution retrieval and listing.
Frontend: extension detail page and tabs
view/app/extensions/[id]/page.tsx, view/app/extensions/[id]/loading.tsx, view/app/extensions/[id]/components/OverviewTab.tsx, view/app/extensions/[id]/components/LogsTab.tsx
Introduced extension details page with Overview and Executions tabs; loading skeleton page; new OverviewTab with parsed YAML sections and steps; ExecutionsTab listing executions with skeletons and empty state.
Frontend: dialog and navigation updates
view/app/extensions/components/extension-fork-dialog.tsx, view/app/extensions/hooks/use-extensions.ts
Refactored dialog to use shared StepsSection and tabular variables view; enabled navigation to extension detail via router.push in handleViewDetails.
Frontend: i18n
view/lib/i18n/locales/en.json, .../es.json, .../fr.json, .../kn.json
Added strings for extensions overview, executions, columns, empty states, and logs placeholders across locales.
Frontend: Redux API
view/redux/api-conf.ts, view/redux/services/extensions/extensionsApi.ts
Added execution endpoints and tag type; implemented getExecution and listExecutions queries; exported new hooks useGetExecutionQuery and useListExecutionsQuery.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant U as Client UI
  participant FE as Frontend (RTK Query)
  participant API as API Router
  participant C as ExtensionsController
  participant S as ExtensionService
  participant ST as ExtensionStorage
  participant DB as Database

  rect rgba(200,230,255,0.2)
  note over U,FE: List executions by extension_id
  U->>FE: useListExecutionsQuery({ extensionId })
  FE->>API: GET /v1/extensions/by-extension-id/{extension_id}/executions
  API->>C: ListExecutionsByExtensionID(ctx)
  C->>S: ListExecutionsByExtensionID(extensionID)
  S->>ST: ListExecutionsByExtensionID(extensionID)
  ST->>DB: SELECT executions WHERE extension_id ORDER BY created_at DESC
  DB-->>ST: rows
  ST-->>S: []ExecutionExecution
  S-->>C: []ExecutionExecution
  C-->>API: 200 JSON list
  API-->>FE: 200 JSON list
  FE-->>U: Render executions
  end

  rect rgba(200,255,200,0.2)
  note over U,FE: Get single execution by id
  U->>FE: useGetExecutionQuery({ executionId })
  FE->>API: GET /v1/extensions/execution/{execution_id}
  API->>C: GetExecution(ctx)
  C->>S: GetExecutionByID(id)
  S->>ST: GetExecutionByID(id)
  ST->>DB: SELECT execution WHERE id
  DB-->>ST: row
  ST-->>S: ExecutionExecution
  S-->>C: ExecutionExecution
  C-->>API: 200 JSON
  API-->>FE: 200 JSON
  FE-->>U: Render execution
  end

  rect rgba(255,230,200,0.25)
  alt Missing/empty id
    C-->>API: 400 Bad Request
  else Storage/service error
    ST-->>S: error
    S-->>C: error
    C-->>API: 500 Internal Server Error
  end
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • feat: extension executor #455 — Implements execution fetch/list plumbing similar to this PR (storage, service, controller, routes, and frontend queries).
  • v0.1.0-alpha.16 #361 — Touches the same api/api/versions.json file updating the v1 release_date.

Poem

A hop, a skip, new routes appear,
Lists of runs now crystal-clear. 📝
Tabs unfold, with steps to see,
YAML whispers, parsed for me.
I thump in joy—fetch, render, done!
Carrots up for every run. 🥕✨

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/extension_details

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 76238a7 and 60c3bc3.

📒 Files selected for processing (17)
  • api/api/versions.json (1 hunks)
  • api/internal/features/extension/controller/get_extensions.go (1 hunks)
  • api/internal/features/extension/service/service.go (1 hunks)
  • api/internal/features/extension/storage/storage.go (2 hunks)
  • api/internal/routes.go (1 hunks)
  • view/app/extensions/[id]/components/LogsTab.tsx (1 hunks)
  • view/app/extensions/[id]/components/OverviewTab.tsx (1 hunks)
  • view/app/extensions/[id]/loading.tsx (1 hunks)
  • view/app/extensions/[id]/page.tsx (1 hunks)
  • view/app/extensions/components/extension-fork-dialog.tsx (2 hunks)
  • view/app/extensions/hooks/use-extensions.ts (2 hunks)
  • view/lib/i18n/locales/en.json (1 hunks)
  • view/lib/i18n/locales/es.json (1 hunks)
  • view/lib/i18n/locales/fr.json (1 hunks)
  • view/lib/i18n/locales/kn.json (1 hunks)
  • view/redux/api-conf.ts (1 hunks)
  • view/redux/services/extensions/extensionsApi.ts (3 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@raghavyuva
Copy link
Owner Author

@coderabbitai summary

Copy link
Contributor

coderabbitai bot commented Oct 7, 2025

✅ Actions performed

Summary regeneration triggered.

@raghavyuva raghavyuva merged commit 7fcee25 into feat/extensions Oct 7, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant