Skip to content

feat: add OCR input logging and detail view#2860

Merged
akshaydeo merged 2 commits intomainfrom
04-20-fix_ocr_logging_fixes
Apr 20, 2026
Merged

feat: add OCR input logging and detail view#2860
akshaydeo merged 2 commits intomainfrom
04-20-fix_ocr_logging_fixes

Conversation

@Pratham-Mishra04
Copy link
Copy Markdown
Collaborator

Summary

Adds full logging support for OCR requests, storing the OCR input document and output response in the log store and rendering them in the log detail view in the UI.

Changes

  • Added ocr_input column to the logs table via a new database migration (migrationAddOCRInputColumn).
  • Added OCRInput/OCROutput fields and their parsed counterparts to the Log struct, with serialization and deserialization logic.
  • Included ocr_input and ocr_output in payload extraction, clearing, merging, and field-clearing logic.
  • Populated OCRInput from the incoming OCRRequest.Document in the PreLLMHook and propagated it through insertInitialLogEntry and buildCompleteLogEntryFromPending.
  • Removed the previous workaround in extractInputHistory that represented the OCR document as a synthetic chat message with a stripped URL, since the input is now stored directly as a structured field.
  • Added TypeScript types for OCRDocument, OCRPage, OCRPageImage, OCRPageDimensions, OCRUsageInfo, and BifrostOCRResponse, and exposed ocr_input/ocr_output on LogEntry.
  • Added a new OCRView React component that renders the OCR input (type and URL), output metadata (pages processed, document size), per-page markdown content with a paginator, and any extracted images.
  • Integrated OCRView into the log detail view's messages tab.

Type of change

  • Bug fix
  • Feature
  • Refactor
  • Documentation
  • Chore/CI

Affected areas

  • Core (Go)
  • Transports (HTTP)
  • Providers/Integrations
  • Plugins
  • UI (React)
  • Docs

How to test

  1. Send an OCR request through Bifrost with a valid document or image URL.
  2. Open the Logs view in the UI and select the resulting log entry.
  3. In the Messages tab, verify the OCR Input section shows the document type and URL.
  4. Verify the OCR Output section shows usage info, per-page markdown, and any extracted images with pagination if multiple pages are present.
  5. Confirm that restarting the service after the migration runs does not re-apply the migration.
go test ./framework/logstore/... ./plugins/logging/...

cd ui
pnpm i
pnpm build

Breaking changes

  • Yes
  • No

Security considerations

The previous implementation stripped query parameters from OCR document URLs before logging to avoid persisting sensitive tokens (e.g., pre-signed URLs). The new OCRInput field stores the raw OCRDocument struct, which may include full URLs with query parameters. Ensure that pre-signed or otherwise sensitive URLs are not passed directly as document or image URLs if log retention is a concern.

Checklist

  • I read docs/contributing/README.md and followed the guidelines
  • I added/updated tests where appropriate
  • I updated documentation where needed
  • I verified builds succeed (Go and UI)
  • I verified the CI pipeline passes locally if applicable

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 20, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8389615b-b30d-40a4-b8c4-d05ec715e360

📥 Commits

Reviewing files that changed from the base of the PR and between 75d28ed and bbec714.

📒 Files selected for processing (10)
  • framework/logstore/migrations.go
  • framework/logstore/payload.go
  • framework/logstore/tables.go
  • plugins/logging/main.go
  • plugins/logging/operations.go
  • plugins/logging/utils.go
  • plugins/logging/writer.go
  • ui/app/workspace/logs/sheets/logDetailView.tsx
  • ui/app/workspace/logs/views/ocrView.tsx
  • ui/lib/types/logs.ts
💤 Files with no reviewable changes (1)
  • plugins/logging/utils.go
🚧 Files skipped from review as they are similar to previous changes (9)
  • plugins/logging/main.go
  • ui/app/workspace/logs/sheets/logDetailView.tsx
  • framework/logstore/tables.go
  • framework/logstore/migrations.go
  • plugins/logging/writer.go
  • ui/app/workspace/logs/views/ocrView.tsx
  • plugins/logging/operations.go
  • framework/logstore/payload.go
  • ui/lib/types/logs.ts

📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • OCR input/output visualization in workspace logs with multi-page navigation, extracted text, embedded images, and processing metadata.
  • Data & Storage
    • Logs now persist OCR input/output and parsed OCR documents; payloads include OCR fields and clearing/merging respects them.
  • Backend
    • Database migration added to support OCR input column.
  • Refactor
    • Logging input extraction and log construction updated to incorporate OCR data handling.

Walkthrough

Adds end-to-end OCR support: DB migration for ocr_input, payload and model fields for OCR input/output, logging plugin captures OCR documents, log persistence stores parsed OCR input, logging utilities stop synthesizing OCR input-history messages, and frontend UI/types render paginated OCR input/output in log details.

Changes

Cohort / File(s) Summary
Database Schema & Payload
framework/logstore/migrations.go, framework/logstore/payload.go, framework/logstore/tables.go
Added a transactional, idempotent migration to add the ocr_input column. Extended payload handling to include ocr_input/ocr_output. Added persisted Log.OCRInput and virtual Log.OCRInputParsed *schemas.OCRDocument with JSON serialize/deserialize logic.
Logging Plugin
plugins/logging/main.go, plugins/logging/operations.go, plugins/logging/writer.go
Extended InitialLogData with OCRInput. PreLLMHook captures OCR document for OCR requests. Initial and final log construction now populate OCRInputParsed (and preserves other parsed inputs).
Logging Utilities
plugins/logging/utils.go
Removed the special-case branch that synthesized an input-history ChatMessage for OCRRequest; OCR requests no longer produce that synthetic input-history entry.
Frontend Types & UI
ui/lib/types/logs.ts, ui/app/workspace/logs/sheets/logDetailView.tsx, ui/app/workspace/logs/views/ocrView.tsx
Added OCR TypeScript interfaces (OCRDocument, OCRPage, BifrostOCRResponse, etc.) and LogEntry.ocr_input/ocr_output. Added OCRView component and conditionally render OCR panel in log detail view (paginated pages, images, metadata).

Sequence Diagram

sequenceDiagram
    participant Client as Client
    participant Plugin as LoggerPlugin
    participant Store as LogStore
    participant DB as Database
    participant UI as UI

    Client->>Plugin: Send OCR Request (document/image)
    Plugin->>Plugin: PreLLMHook captures OCR document\ninto InitialLogData.OCRInput
    Plugin->>Store: insertInitialLogEntry(OCRInputParsed = InitialData.OCRInput)
    Store->>Store: SerializeFields(OCRInputParsed → OCRInput JSON)
    Store->>DB: INSERT log (ocr_input column)
    DB-->>Store: Confirm insert
    Plugin->>Store: buildCompleteLogEntryFromPending\n(populate OCRInputParsed / OCROutputParsed)
    Store->>Store: SerializeFields(final OCR fields → JSON)
    Store->>DB: UPDATE log with final OCR data
    UI->>DB: Fetch log entry (contains ocr_input/ocr_output)
    DB-->>UI: Return log row
    UI->>UI: DeserializeFields(OCRInput JSON → parsed)
    UI->>UI: Render OCRView (pages, text, images, metadata)
    UI-->>Client: Display OCR results
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 I hopped through code and found each page,
ocr_input snug like carrots in a cage,
Text spilled out from pictures bright,
I munched on bytes by soft moonlight,
Logs now read what eyes once staged.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 57.14% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'feat: add OCR input logging and detail view' clearly and concisely summarizes the main changes: adding OCR input logging support and a UI detail view component.
Description check ✅ Passed The PR description comprehensively covers all required template sections including Summary, Changes, Type of change, Affected areas, How to test, Breaking changes, Security considerations, and Checklist with appropriate selections and detailed explanations.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 04-20-fix_ocr_logging_fixes

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.11.4)

level=error msg="[linters_context] typechecking error: pattern ./...: directory prefix . does not contain main module or its selected dependencies"


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

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 20, 2026

Confidence Score: 5/5

Safe to merge — the only finding is a minor omission in a coarse size-estimation helper that the codebase itself documents as approximate.

All remaining findings are P2. The migration, Go struct fields, serialization hooks, payload utilities, and UI types are all symmetric with the existing modality pattern. No logic errors or correctness issues were found.

plugins/logging/writer.go — OCRInput missing from estimateLogEntrySize (cosmetic/minor).

Important Files Changed

Filename Overview
framework/logstore/migrations.go Adds migrationAddOCRInputColumn as the final migration; idempotent column-existence check and rollback are consistent with every other migration in the file.
framework/logstore/payload.go Adds ocr_input/ocr_output to payloadFields, ExtractPayload, ClearPayload, MergePayloadFromJSON, and clearPayloadField; fully symmetric with all other payload field pairs.
framework/logstore/tables.go Adds OCRInput/OCROutput serialized columns and OCRInputParsed/OCROutputParsed virtual fields to the Log struct with correct GORM tags; serialize/deserialize logic handles both fields correctly.
plugins/logging/main.go Populates OCRInput from req.OCRRequest.Document under the content-logging gate in PreLLMHook; consistent with how other non-chat input types are handled.
plugins/logging/operations.go Wires OCRInputParsed into insertInitialLogEntry and OCROutput into applySerializedLogUpdates with correct content-logging gate; no issues found.
plugins/logging/writer.go OCRInputParsed correctly included in buildCompleteLogEntryFromPending; OCRInput is absent from estimateLogEntrySize (minor omission — all other input fields are included).
ui/app/workspace/logs/views/ocrView.tsx New OCRView component renders input metadata, per-page markdown via CodeEditor, extracted images, and a circular paginator for multi-page results; implementation is clean with no logic errors.
ui/lib/types/logs.ts Adds OCRDocument, OCRPage, OCRPageImage, OCRPageDimensions, OCRUsageInfo, and BifrostOCRResponse TS interfaces; ocr_input/ocr_output added to LogEntry; types match the Go schema.
ui/app/workspace/logs/sheets/logDetailView.tsx Integrates OCRView into the Messages tab with the same conditional-render guard used by all other modality views.

Reviews (3): Last reviewed commit: "fix: ocr logging fixes" | Re-trigger Greptile

Comment thread plugins/logging/main.go
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
ui/app/workspace/logs/views/ocrView.tsx (1)

20-20: Rename file to PascalCase for component naming consistency.

OCRView export is PascalCase, but filename ocrView.tsx is not. Rename to OCRView.tsx (and update imports) to match the repository TSX convention.

As per coding guidelines: "React component files must use PascalCase for component exports and filenames."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ui/app/workspace/logs/views/ocrView.tsx` at line 20, Rename the file to match
the exported React component by changing the filename from ocrView.tsx to
OCRView.tsx and update any imports referencing the old path; locate the
component function OCRView and ensure all import statements across the codebase
that import "./ocrView" (or similar) are updated to "./OCRView" so the
PascalCase filename matches the PascalCase export and adheres to the project
convention.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@plugins/logging/main.go`:
- Around line 492-494: initialData currently stores the raw OCR document
(initialData.OCRInput = &req.OCRRequest.Document), which can persist signed
URLs/credentials; before assigning, create a sanitized copy of
req.OCRRequest.Document that redacts or strips query strings from known URL
fields (e.g., document_url, image_url) or replaces them with a safe placeholder,
and assign that sanitized copy to initialData.OCRInput; update any helper used
to deep-copy or marshal the Document to ensure nested URL fields are handled and
preserve other fields in req.OCRRequest.Params as before.

In `@ui/app/workspace/logs/views/ocrView.tsx`:
- Around line 149-156: The pagination buttons in ocrView.tsx lack test
selectors—update the two Button JSX elements that call goToPrevious and goToNext
(the buttons surrounding ChevronLeft/ChevronRight and showing Page {currentIndex
+ 1} / {totalPages}) to include stable data-testid attributes (e.g.,
data-testid="ocr-prev-page-button" and data-testid="ocr-next-page-button") so
E2E tests can reliably target them; keep the existing props (variant, size,
onClick, aria-label, title) and only add the data-testid attributes.

---

Nitpick comments:
In `@ui/app/workspace/logs/views/ocrView.tsx`:
- Line 20: Rename the file to match the exported React component by changing the
filename from ocrView.tsx to OCRView.tsx and update any imports referencing the
old path; locate the component function OCRView and ensure all import statements
across the codebase that import "./ocrView" (or similar) are updated to
"./OCRView" so the PascalCase filename matches the PascalCase export and adheres
to the project convention.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9ad991a5-0243-4f0e-b901-1b5155e3f0a2

📥 Commits

Reviewing files that changed from the base of the PR and between df50781 and 7f7228a.

📒 Files selected for processing (10)
  • framework/logstore/migrations.go
  • framework/logstore/payload.go
  • framework/logstore/tables.go
  • plugins/logging/main.go
  • plugins/logging/operations.go
  • plugins/logging/utils.go
  • plugins/logging/writer.go
  • ui/app/workspace/logs/sheets/logDetailView.tsx
  • ui/app/workspace/logs/views/ocrView.tsx
  • ui/lib/types/logs.ts
💤 Files with no reviewable changes (1)
  • plugins/logging/utils.go

Comment thread framework/logstore/tables.go
Comment thread plugins/logging/main.go
Comment thread ui/app/workspace/logs/views/ocrView.tsx Outdated
@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@Pratham-Mishra04 Pratham-Mishra04 force-pushed the 04-20-fix_ocr_logging_fixes branch from 7f7228a to 75d28ed Compare April 20, 2026 14:05
@Pratham-Mishra04 Pratham-Mishra04 force-pushed the 04-20-fix_minor_mcp_and_ui_fixes branch from df50781 to 45969f8 Compare April 20, 2026 14:05
@Pratham-Mishra04 Pratham-Mishra04 force-pushed the 04-20-fix_ocr_logging_fixes branch from 7f7228a to 75d28ed Compare April 20, 2026 14:05
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
plugins/logging/main.go (1)

491-493: Prefer copying OCR document and using bifrost.Ptr() here.

On Line [493], taking &req.OCRRequest.Document aliases request-owned memory. A copied value keeps log input isolated and aligns with repo pointer conventions.

♻️ Proposed refactor
 		case schemas.OCRRequest:
 			initialData.Params = req.OCRRequest.Params
-			initialData.OCRInput = &req.OCRRequest.Document
+			doc := req.OCRRequest.Document
+			initialData.OCRInput = bifrost.Ptr(doc)

Based on learnings: In the maximhq/bifrost repository, prefer using bifrost.Ptr() to create pointers instead of the address operator (&) for consistency across code paths.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@plugins/logging/main.go` around lines 491 - 493, The code currently takes the
address of request-owned memory (&req.OCRRequest.Document) when handling
schemas.OCRRequest, which aliases request memory; instead, make a copy of
req.OCRRequest.Document and assign a pointer to that copy using bifrost.Ptr()
(e.g., create a local copy var docCopy = req.OCRRequest.Document and set
initialData.OCRInput = bifrost.Ptr(docCopy)) so logs own their input; update the
case handling in the same switch (schemas.OCRRequest) to use the copied value
and bifrost.Ptr() for consistency with the repo conventions.
ui/lib/types/logs.ts (1)

229-233: Tighten OCRDocument to a discriminated union to prevent invalid states.

Current typing allows type: "document_url" without document_url (or with both URLs). Make URL presence/type coupling strict.

Proposed type-safe shape
-export interface OCRDocument {
-  type: "document_url" | "image_url";
-  document_url?: string;
-  image_url?: string;
-}
+export type OCRDocument =
+  | {
+      type: "document_url";
+      document_url: string;
+      image_url?: never;
+    }
+  | {
+      type: "image_url";
+      image_url: string;
+      document_url?: never;
+    };
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ui/lib/types/logs.ts` around lines 229 - 233, The OCRDocument interface
allows invalid states because type is not tied to which URL is present; replace
the current OCRDocument declaration with a discriminated union so that when type
=== "document_url" the shape requires document_url: string and forbids
image_url, and when type === "image_url" it requires image_url: string and
forbids document_url; update any callers of OCRDocument to handle the two union
branches (narrow by the type field) accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@plugins/logging/main.go`:
- Around line 491-493: The code currently takes the address of request-owned
memory (&req.OCRRequest.Document) when handling schemas.OCRRequest, which
aliases request memory; instead, make a copy of req.OCRRequest.Document and
assign a pointer to that copy using bifrost.Ptr() (e.g., create a local copy var
docCopy = req.OCRRequest.Document and set initialData.OCRInput =
bifrost.Ptr(docCopy)) so logs own their input; update the case handling in the
same switch (schemas.OCRRequest) to use the copied value and bifrost.Ptr() for
consistency with the repo conventions.

In `@ui/lib/types/logs.ts`:
- Around line 229-233: The OCRDocument interface allows invalid states because
type is not tied to which URL is present; replace the current OCRDocument
declaration with a discriminated union so that when type === "document_url" the
shape requires document_url: string and forbids image_url, and when type ===
"image_url" it requires image_url: string and forbids document_url; update any
callers of OCRDocument to handle the two union branches (narrow by the type
field) accordingly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 396fe7cf-2fad-4ed0-a5ac-e84ab10a0818

📥 Commits

Reviewing files that changed from the base of the PR and between 7f7228a and 75d28ed.

📒 Files selected for processing (10)
  • framework/logstore/migrations.go
  • framework/logstore/payload.go
  • framework/logstore/tables.go
  • plugins/logging/main.go
  • plugins/logging/operations.go
  • plugins/logging/utils.go
  • plugins/logging/writer.go
  • ui/app/workspace/logs/sheets/logDetailView.tsx
  • ui/app/workspace/logs/views/ocrView.tsx
  • ui/lib/types/logs.ts
💤 Files with no reviewable changes (1)
  • plugins/logging/utils.go
✅ Files skipped from review due to trivial changes (2)
  • ui/app/workspace/logs/sheets/logDetailView.tsx
  • framework/logstore/migrations.go
🚧 Files skipped from review as they are similar to previous changes (5)
  • plugins/logging/operations.go
  • framework/logstore/tables.go
  • framework/logstore/payload.go
  • plugins/logging/writer.go
  • ui/app/workspace/logs/views/ocrView.tsx

coderabbitai[bot]
coderabbitai Bot previously approved these changes Apr 20, 2026
Copy link
Copy Markdown
Contributor

akshaydeo commented Apr 20, 2026

Merge activity

  • Apr 20, 6:20 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Apr 20, 6:22 PM UTC: @akshaydeo merged this pull request with Graphite.

@akshaydeo akshaydeo changed the base branch from 04-20-fix_minor_mcp_and_ui_fixes to graphite-base/2860 April 20, 2026 18:21
@akshaydeo akshaydeo changed the base branch from graphite-base/2860 to main April 20, 2026 18:21
@akshaydeo akshaydeo dismissed coderabbitai[bot]’s stale review April 20, 2026 18:21

The base branch was changed.

@akshaydeo akshaydeo merged commit ae0d2a2 into main Apr 20, 2026
6 of 14 checks passed
@akshaydeo akshaydeo deleted the 04-20-fix_ocr_logging_fixes branch April 20, 2026 18:22
dominictayloruk pushed a commit to dominictayloruk/bifrost that referenced this pull request Apr 21, 2026
## Summary

Adds full logging support for OCR requests, storing the OCR input document and output response in the log store and rendering them in the log detail view in the UI.

## Changes

- Added `ocr_input` column to the `logs` table via a new database migration (`migrationAddOCRInputColumn`).
- Added `OCRInput`/`OCROutput` fields and their parsed counterparts to the `Log` struct, with serialization and deserialization logic.
- Included `ocr_input` and `ocr_output` in payload extraction, clearing, merging, and field-clearing logic.
- Populated `OCRInput` from the incoming `OCRRequest.Document` in the `PreLLMHook` and propagated it through `insertInitialLogEntry` and `buildCompleteLogEntryFromPending`.
- Removed the previous workaround in `extractInputHistory` that represented the OCR document as a synthetic chat message with a stripped URL, since the input is now stored directly as a structured field.
- Added TypeScript types for `OCRDocument`, `OCRPage`, `OCRPageImage`, `OCRPageDimensions`, `OCRUsageInfo`, and `BifrostOCRResponse`, and exposed `ocr_input`/`ocr_output` on `LogEntry`.
- Added a new `OCRView` React component that renders the OCR input (type and URL), output metadata (pages processed, document size), per-page markdown content with a paginator, and any extracted images.
- Integrated `OCRView` into the log detail view's messages tab.

## Type of change

- [ ] Bug fix
- [x] Feature
- [ ] Refactor
- [ ] Documentation
- [ ] Chore/CI

## Affected areas

- [x] Core (Go)
- [ ] Transports (HTTP)
- [ ] Providers/Integrations
- [x] Plugins
- [x] UI (React)
- [ ] Docs

## How to test

1. Send an OCR request through Bifrost with a valid document or image URL.
2. Open the Logs view in the UI and select the resulting log entry.
3. In the **Messages** tab, verify the OCR Input section shows the document type and URL.
4. Verify the OCR Output section shows usage info, per-page markdown, and any extracted images with pagination if multiple pages are present.
5. Confirm that restarting the service after the migration runs does not re-apply the migration.

```sh
go test ./framework/logstore/... ./plugins/logging/...

cd ui
pnpm i
pnpm build
```

## Breaking changes

- [ ] Yes
- [x] No

## Security considerations

The previous implementation stripped query parameters from OCR document URLs before logging to avoid persisting sensitive tokens (e.g., pre-signed URLs). The new `OCRInput` field stores the raw `OCRDocument` struct, which may include full URLs with query parameters. Ensure that pre-signed or otherwise sensitive URLs are not passed directly as document or image URLs if log retention is a concern.

## Checklist

- [ ] I read `docs/contributing/README.md` and followed the guidelines
- [ ] I added/updated tests where appropriate
- [ ] I updated documentation where needed
- [ ] I verified builds succeed (Go and UI)
- [ ] I verified the CI pipeline passes locally if applicable
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.

3 participants