Skip to content

docs: reset Relay documentation to living guides - #230

Merged
CrimsonSoul merged 10 commits into
testfrom
codex/relay-documentation-cleanup
Aug 7, 2026
Merged

docs: reset Relay documentation to living guides#230
CrimsonSoul merged 10 commits into
testfrom
codex/relay-documentation-cleanup

Conversation

@CrimsonSoul

@CrimsonSoul CrimsonSoul commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • refresh the overview, architecture, development, design, security, Wiki, and Relay Web guidance against the current implementation
  • replace the README preview with the six current workspace screenshots
  • remove the historical Superpowers plans/specs and the retired full-redesign prototype
  • leave a ten-file living documentation set, with Git history as the archive

Verification

  • npm test (183 unit files passed, 1 skipped; 4 cache files passed; 230 renderer files passed)
  • npx prettier --check $(git ls-files "*.md")
  • git diff --check
  • verified all local Markdown links/images, documented npm scripts, and concrete inline repository paths
  • verified 10 tracked Markdown files and 6 matching README screenshots

Summary by CodeRabbit

  • Documentation
    • Updated product documentation to reflect seven workspaces, current screenshots, Dispatcher Radar, and the latest navigation model.
    • Clarified Compose, Alerts, search actions, accessibility, security scanning, release gates, diagnostics, and operational guidance.
    • Documented Knowledge Base upload limits, resumable uploads, recovery, cleanup, and staging expiry.
    • Refined Relay Web behavior, notification priorities, architecture, data ownership, and supported experiences.
    • Removed obsolete historical implementation plans and refreshed documentation references.

@CrimsonSoul
CrimsonSoul enabled auto-merge August 7, 2026 16:11
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The pull request aligns Relay documentation with the current architecture, security controls, workspace model, Knowledge behavior, Relay Web operation, and screenshot set. It also removes obsolete implementation plans and the docs/superpowers/ ignore rule.

Changes

Current architecture and runtime

Layer / File(s) Summary
Runtime, storage, and security model
docs/architecture.md
Documents current Relay runtime modes, data ownership, subsystem boundaries, storage collections, windowing, Relay Web limits, and security controls.

Security and operational guidance

Layer / File(s) Summary
Scanner, migration, and Knowledge operations
docs/DEVELOPMENT.md, docs/SECURITY.md, docs/knowledge-base.md
Documents scanner credentials and gates, migration backup and rollback requirements, managed-document controls, PDF limits, upload recovery, and disposable caches.

Workspace and interaction guidance

Layer / File(s) Summary
Design and Relay Web behavior
docs/DESIGN.md, docs/relay-web.md
Updates action wording, search behavior, Alerts hierarchy, Knowledge requirements, Relay Web boundaries, and provider notification rules.

README and planning cleanup

Layer / File(s) Summary
Current documentation assets
README.md, docs/README.md
Updates workspace descriptions, screenshots, documentation links, and screenshot refresh commands.
Obsolete planning material
docs/superpowers/plans/*
Removes implementation plans for completed or superseded features.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

  • CrimsonSoul/Relay#222: Updates the same scanner-gating documentation without changing scanner implementations.
  • CrimsonSoul/Relay#228: Adds and implements the Alerts action-hierarchy plan removed here.
  • CrimsonSoul/Relay#229: Shares updates to search-result actions and the Alerts command hierarchy in docs/DESIGN.md.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the primary change: resetting Relay documentation into current living guides.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/relay-documentation-cleanup

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.

@sonarqubecloud

sonarqubecloud Bot commented Aug 7, 2026

Copy link
Copy Markdown

@CrimsonSoul
CrimsonSoul merged commit 6dd408b into test Aug 7, 2026
6 of 7 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/architecture.md`:
- Around line 113-117: Update the “Server/client presence” section in
architecture.md to accurately describe Relay Web presence behavior: remove the
claim that Relay Web sessions write client_presence heartbeat records, and state
that only desktop clients write those records unless the implementation is
intentionally changed. Keep the description of server subscriptions and the
authorization disclaimer consistent with the actual flow.

In `@README.md`:
- Around line 13-14: Update the workspace naming in the README so the Snapshot
list and the Core Features section use the same canonical label, replacing the
inconsistent Status/Service Status wording while preserving the existing
workspace description.
🪄 Autofix

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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 94c7e3f2-fe74-4b24-92b2-3e2eda582800

📥 Commits

Reviewing files that changed from the base of the PR and between b173c26 and 5fe3ec1.

⛔ Files ignored due to path filters (12)
  • docs/screenshots/alerts.png is excluded by !**/*.png
  • docs/screenshots/cloud-status.png is excluded by !**/*.png
  • docs/screenshots/compose.png is excluded by !**/*.png
  • docs/screenshots/data-manager.png is excluded by !**/*.png
  • docs/screenshots/knowledge.png is excluded by !**/*.png
  • docs/screenshots/oncall-popout.png is excluded by !**/*.png
  • docs/screenshots/oncall.png is excluded by !**/*.png
  • docs/screenshots/people.png is excluded by !**/*.png
  • docs/screenshots/radar.png is excluded by !**/*.png
  • docs/screenshots/servers.png is excluded by !**/*.png
  • docs/screenshots/settings-modal.png is excluded by !**/*.png
  • docs/screenshots/toast.png is excluded by !**/*.png
📒 Files selected for processing (97)
  • .gitignore
  • README.md
  • docs/DESIGN.md
  • docs/DEVELOPMENT.md
  • docs/README.md
  • docs/SECURITY.md
  • docs/architecture.md
  • docs/knowledge-base.md
  • docs/relay-web.md
  • docs/superpowers/plans/2026-05-28-alert-reminders.md
  • docs/superpowers/plans/2026-05-29-alert-reminder-management.md
  • docs/superpowers/plans/2026-05-29-critical-reminder-visual.md
  • docs/superpowers/plans/2026-06-01-cohesive-reminder-popup.md
  • docs/superpowers/plans/2026-06-13-dynatrace-popouts.md
  • docs/superpowers/plans/2026-07-14-knowledge-pdf-link-navigation.md
  • docs/superpowers/plans/2026-07-14-read-only-pdf-knowledge-base.md
  • docs/superpowers/plans/2026-07-15-compact-shell-and-dynatrace-ticket-references.md
  • docs/superpowers/plans/2026-07-15-managed-knowledge-base.md
  • docs/superpowers/plans/2026-07-15-privileged-access-foundation.md
  • docs/superpowers/plans/2026-07-15-remote-operator-administration.md
  • docs/superpowers/plans/2026-07-15-resumable-pocketbase-knowledge-uploads.md
  • docs/superpowers/plans/2026-07-17-continuous-wiki-pdf-reader.md
  • docs/superpowers/plans/2026-07-17-role-accounts-and-operator-retirement.md
  • docs/superpowers/plans/2026-07-17-unified-knowledge-workspace-and-notes-removal.md
  • docs/superpowers/plans/2026-07-18-collapsible-wiki-library.md
  • docs/superpowers/plans/2026-07-18-compact-wiki-library-drawer.md
  • docs/superpowers/plans/2026-07-18-fixed-role-usernames.md
  • docs/superpowers/plans/2026-07-18-privileged-pairing-layout-containment.md
  • docs/superpowers/plans/2026-07-18-relay-motion-modal-system.md
  • docs/superpowers/plans/2026-07-18-wiki-management-operational-alignment.md
  • docs/superpowers/plans/2026-07-20-cloud-status-freshness-links.md
  • docs/superpowers/plans/2026-07-20-cloud-status-outage-toasts.md
  • docs/superpowers/plans/2026-07-20-owner-setup-username.md
  • docs/superpowers/plans/2026-07-20-pdf-outline-quality.md
  • docs/superpowers/plans/2026-07-20-relay-web-backup.md
  • docs/superpowers/plans/2026-07-21-startup-performance.md
  • docs/superpowers/plans/2026-07-22-persistent-windows-runtime-bootstrap.md
  • docs/superpowers/plans/2026-07-23-wiki-upload-recovery-and-cover-polish.md
  • docs/superpowers/plans/2026-07-28-radar-page-and-navigation.md
  • docs/superpowers/plans/2026-07-29-radar-indicator-and-original-page-link.md
  • docs/superpowers/plans/2026-07-29-radar-queue-notifications-and-sidebar-indicator.md
  • docs/superpowers/plans/2026-07-29-radar-warning-and-critical-toasts.md
  • docs/superpowers/plans/2026-07-31-finding-only-scanner-gates.md
  • docs/superpowers/plans/2026-07-31-test-branch-security-enforcement.md
  • docs/superpowers/plans/2026-08-03-juniper-mist-cloud-status.md
  • docs/superpowers/plans/2026-08-05-relay-alerts-action-hierarchy.md
  • docs/superpowers/plans/2026-08-05-relay-cloud-degradation-threshold.md
  • docs/superpowers/plans/2026-08-05-relay-navigation-and-triage.md
  • docs/superpowers/plans/2026-08-05-relay-search-record-navigation.md
  • docs/superpowers/plans/2026-08-06-all-tab-toolbar-search-alignment.md
  • docs/superpowers/specs/2026-05-28-alert-reminders-design.md
  • docs/superpowers/specs/2026-05-29-alert-reminder-management-design.md
  • docs/superpowers/specs/2026-05-29-critical-reminder-visual-design.md
  • docs/superpowers/specs/2026-06-01-cohesive-reminder-popup-design.md
  • docs/superpowers/specs/2026-06-13-dynatrace-popouts-design.md
  • docs/superpowers/specs/2026-07-13-passwordless-operator-profiles-design.md
  • docs/superpowers/specs/2026-07-14-knowledge-pdf-links-design.md
  • docs/superpowers/specs/2026-07-14-read-only-pdf-knowledge-base-design.md
  • docs/superpowers/specs/2026-07-15-compact-shell-and-dynatrace-ticket-references-design.md
  • docs/superpowers/specs/2026-07-15-privileged-operators-and-knowledge-management-design.md
  • docs/superpowers/specs/2026-07-15-resumable-pocketbase-knowledge-uploads-design.md
  • docs/superpowers/specs/2026-07-17-role-accounts-and-knowledge-workspace-design.md
  • docs/superpowers/specs/2026-07-18-collapsible-wiki-library-design.md
  • docs/superpowers/specs/2026-07-18-compact-wiki-library-drawer-design.md
  • docs/superpowers/specs/2026-07-18-compose-alerts-operational-frame-design.md
  • docs/superpowers/specs/2026-07-18-compose-toolbar-avatar-alignment-design.md
  • docs/superpowers/specs/2026-07-18-fixed-role-usernames-design.md
  • docs/superpowers/specs/2026-07-18-knowledge-directory-typography-design.md
  • docs/superpowers/specs/2026-07-18-knowledge-splash-square-nav-design.md
  • docs/superpowers/specs/2026-07-18-relay-motion-modal-system-design.md
  • docs/superpowers/specs/2026-07-18-wiki-management-operational-alignment-design.md
  • docs/superpowers/specs/2026-07-19-wiki-exact-fuzzy-search-design.md
  • docs/superpowers/specs/2026-07-19-wiki-first-class-polish-and-reliability-design.md
  • docs/superpowers/specs/2026-07-20-cloud-status-freshness-links-design.md
  • docs/superpowers/specs/2026-07-20-cloud-status-outage-toasts-design.md
  • docs/superpowers/specs/2026-07-20-owner-setup-username-design.md
  • docs/superpowers/specs/2026-07-20-pdf-outline-quality-design.md
  • docs/superpowers/specs/2026-07-20-relay-web-backup-design.md
  • docs/superpowers/specs/2026-07-21-startup-performance-design.md
  • docs/superpowers/specs/2026-07-22-persistent-windows-runtime-design.md
  • docs/superpowers/specs/2026-07-23-wiki-upload-recovery-and-cover-polish-design.md
  • docs/superpowers/specs/2026-07-28-radar-page-and-navigation-design.md
  • docs/superpowers/specs/2026-07-29-radar-indicator-and-original-page-link-design.md
  • docs/superpowers/specs/2026-07-29-radar-queue-notifications-and-sidebar-indicator-design.md
  • docs/superpowers/specs/2026-07-29-radar-warning-and-critical-toast-design.md
  • docs/superpowers/specs/2026-07-31-finding-only-scanner-gates-design.md
  • docs/superpowers/specs/2026-07-31-relay-web-feature-parity-design.md
  • docs/superpowers/specs/2026-07-31-retire-mac-releases-design.md
  • docs/superpowers/specs/2026-07-31-test-branch-security-enforcement-design.md
  • docs/superpowers/specs/2026-08-03-juniper-mist-cloud-status-design.md
  • docs/superpowers/specs/2026-08-04-compose-teams-handoff-design.md
  • docs/superpowers/specs/2026-08-05-relay-tab-operator-workflows-design.md
  • docs/superpowers/specs/2026-08-06-all-tab-toolbar-search-alignment-design.md
  • docs/ui-mockups/full-redesign/README.md
  • docs/ui-mockups/full-redesign/app.js
  • docs/ui-mockups/full-redesign/index.html
  • docs/ui-mockups/full-redesign/styles.css
💤 Files with no reviewable changes (37)
  • .gitignore
  • docs/superpowers/plans/2026-05-29-alert-reminder-management.md
  • docs/superpowers/plans/2026-07-21-startup-performance.md
  • docs/superpowers/plans/2026-07-31-finding-only-scanner-gates.md
  • docs/superpowers/plans/2026-07-15-privileged-access-foundation.md
  • docs/superpowers/plans/2026-07-31-test-branch-security-enforcement.md
  • docs/superpowers/plans/2026-06-13-dynatrace-popouts.md
  • docs/superpowers/plans/2026-07-18-fixed-role-usernames.md
  • docs/superpowers/plans/2026-07-18-collapsible-wiki-library.md
  • docs/superpowers/plans/2026-07-18-compact-wiki-library-drawer.md
  • docs/superpowers/plans/2026-07-18-wiki-management-operational-alignment.md
  • docs/superpowers/plans/2026-07-15-remote-operator-administration.md
  • docs/superpowers/plans/2026-07-23-wiki-upload-recovery-and-cover-polish.md
  • docs/superpowers/plans/2026-06-01-cohesive-reminder-popup.md
  • docs/superpowers/plans/2026-07-20-owner-setup-username.md
  • docs/superpowers/plans/2026-07-28-radar-page-and-navigation.md
  • docs/superpowers/plans/2026-07-20-cloud-status-outage-toasts.md
  • docs/superpowers/plans/2026-07-20-relay-web-backup.md
  • docs/superpowers/plans/2026-07-29-radar-warning-and-critical-toasts.md
  • docs/superpowers/plans/2026-05-29-critical-reminder-visual.md
  • docs/superpowers/plans/2026-07-15-resumable-pocketbase-knowledge-uploads.md
  • docs/superpowers/plans/2026-07-17-role-accounts-and-operator-retirement.md
  • docs/superpowers/plans/2026-07-15-compact-shell-and-dynatrace-ticket-references.md
  • docs/superpowers/plans/2026-07-20-pdf-outline-quality.md
  • docs/superpowers/plans/2026-07-15-managed-knowledge-base.md
  • docs/superpowers/plans/2026-07-17-continuous-wiki-pdf-reader.md
  • docs/superpowers/plans/2026-08-03-juniper-mist-cloud-status.md
  • docs/superpowers/plans/2026-07-29-radar-queue-notifications-and-sidebar-indicator.md
  • docs/superpowers/plans/2026-05-28-alert-reminders.md
  • docs/superpowers/plans/2026-07-17-unified-knowledge-workspace-and-notes-removal.md
  • docs/superpowers/plans/2026-08-05-relay-alerts-action-hierarchy.md
  • docs/superpowers/plans/2026-07-14-knowledge-pdf-link-navigation.md
  • docs/superpowers/plans/2026-07-14-read-only-pdf-knowledge-base.md
  • docs/superpowers/plans/2026-07-20-cloud-status-freshness-links.md
  • docs/superpowers/plans/2026-07-22-persistent-windows-runtime-bootstrap.md
  • docs/superpowers/plans/2026-07-18-privileged-pairing-layout-containment.md
  • docs/superpowers/plans/2026-07-29-radar-indicator-and-original-page-link.md

Comment thread docs/architecture.md
Comment on lines +113 to +117
### Server/client presence

- Connect to an existing Relay server URL
- Coordinate ordinary app-user authentication in the main process so the renderer connection,
enhanced Wiki search, PDF and cover clients, and reconnect sync do not independently spend the
server's authentication rate-limit budget
- Write a `client_presence` heartbeat every 30 seconds with the client hostname
- Hide the client-count sidebar block because it is server-only operator context
Desktop clients and Relay Web sessions write bounded heartbeat records. Server mode subscribes to
active client records and presents their sanitized host/browser labels; the server itself is not
counted. Presence is operational status, not an authorization mechanism.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

rg -n -C 6 'client_presence|heartbeat|host.*label|browser.*session|presence' \
  src/main src/preload src/renderer src/shared docs/architecture.md docs/relay-web.md || true

Repository: CrimsonSoul/Relay

Length of output: 50373


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '--- files mentioning client_presence or CLIENT_PRESENCE (non-test only) ---\n'
rg -n -C 8 'CLIENT_PRESENCE|client_presence|presenceLabel|getClientHostname|SERVER|subscription|event:|heartbeat' \
  -g '!**/*.test.ts*' -g '!**/*.test.tsx' \
  src/main src/preload src/renderer src/shared docs || true

printf '\n--- candidate source sizes ---\n'
for f in \
  src/main/app/processLifecycle.ts \
  src/main/web/routes/sessionRoutes.ts \
  src/shared/IPC_CHANNELS.ts \
  src/shared/webApi.ts \
  src/renderer/src/runtime/webBridge/desktopFallbackApi.ts \
  src/renderer/src/components/__tests__/Sidebar.test.tsx \
  src/renderer/src/components/Sidebar.tsx \
  src/renderer/src/components/__tests__/SettingsModal.lifecycle.test.tsx \
; do
  [ -f "$f" ] && echo "$f: $(wc -l < "$f")"
done

Repository: CrimsonSoul/Relay

Length of output: 246


🏁 Script executed:

#!/bin/bash
Set -euo pipefail

printf '%s\n' '--- files mentioning client_presence or CLIENT_PRESENCE (non-test only) ---'
rg -n -C 8 'CLIENT_PRESENCE|client_presence|presenceLabel|getClientHostname|SERVER|subscription|event:|heartbeat' \
  -g '!**/*.test.ts*' -g '!**/*.test.tsx' \
  src/main src/preload src/renderer src/shared docs || true

printf '%s\n' '--- candidate source sizes ---'
for f in \
  src/main/app/processLifecycle.ts \
  src/main/web/routes/sessionRoutes.ts \
  src/shared/IPC_CHANNELS.ts \
  src/shared/webApi.ts \
  src/renderer/src/runtime/webBridge/desktopFallbackApi.ts \
  src/renderer/src/components/Sidebar.tsx \
; do
  [ -f "$f" ] && echo "$f: $(wc -l < "$f")"
done

Repository: CrimsonSoul/Relay

Length of output: 50374


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- all non-test occurrences of key identifiers ---'
python3 - <<'PY'
import pathlib
patterns = ['client_presence', 'CLIENT_PRESENCE', 'presenceLabel', 'getClientHostname']
for path in pathlib.Path('src').rglob('*'):
    if any(part.endswith('.test.ts') or part.endswith('.test.tsx') for part in path.parts):
        continue
    try:
        text = path.read_text(errors='ignore')
    except Exception:
        continue
    for i, line in enumerate(text.splitlines(), 1):
        if not any(p in line for p in patterns):
            continue
        if any(s in text[max(0,i-200):i+200] for s in patterns):
            print(f'{path}:{i} ...{line.strip()}...')
PY

printf '%s\n' '--- source slices ---'
for f in \
  src/main/web/routes/sessionRoutes.ts \
  src/shared/webApi.ts \
  src/renderer/src/components/Sidebar.tsx \
  src/renderer/src/runtime/webBridge/desktopFallbackApi.ts \
  src/shared/webApi.ts \
  src/main/pocketbase/schema/collectionCatalog.ts \
; do
  if [ -f "$f" ]; then
    echo "--- $f ---"
    wc -l "$f"
    rg -n -C 10 'client_presence|CLIENT_PRESENCE|presenceLabel|getClientHostname|events|heartbeat|cacheWrite|cacheRead|clientPresence' "$f" || true
  fi
done

printf '%s\n' '--- heartbeat-related non-code files ---'
rg -n -C 8 '\bheartbeat\b|presenceLabel|Web ·' -g '!**/*.test.ts*' -g '!**/*.test.tsx' docs src/shared src/main/web src/main/app src/renderer/src 2>/dev/null | head -n 240 || true

Repository: CrimsonSoul/Relay

Length of output: 34860


Clarify which client_presence records Relay Web writes.

docs/architecture.md says Relay Web sessions write client_presence heartbeat records, but the current web-session flow only writes into WebSessionStore.presenceLabel and its SSE heartbeats go through /relay-api/v1/session/events, not client_presence. Update the architecture text, or move Relay Web heartbeats into client_presence and reflect that in docs/relay-web.md.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/architecture.md` around lines 113 - 117, Update the “Server/client
presence” section in architecture.md to accurately describe Relay Web presence
behavior: remove the claim that Relay Web sessions write client_presence
heartbeat records, and state that only desktop clients write those records
unless the implementation is intentionally changed. Keep the description of
server subscriptions and the authorization disclaimer consistent with the actual
flow.

Comment thread README.md
Comment on lines +13 to +14
- Seven top-level workspaces: Compose, Alerts, On-Call, Knowledge, Status, Dynatrace Problems, and Dispatcher Radar
- Wiki, Contacts, and Servers grouped as retained destinations inside Knowledge

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use one workspace name consistently.

The Snapshot names the workspace Status, but the Core Features section names it Service Status on Line 36. Use the canonical product label in both places so readers do not interpret them as different workspaces.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 13 - 14, Update the workspace naming in the README so
the Snapshot list and the Core Features section use the same canonical label,
replacing the inconsistent Status/Service Status wording while preserving the
existing workspace description.

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