Skip to content

Redesign signup and onboarding as a perspective corridor - #26

Merged
Acksell merged 6 commits into
mainfrom
codex/misc-redesign
Sep 3, 2026
Merged

Acksell merged 6 commits into
mainfrom
codex/misc-redesign

Conversation

@Acksell

@Acksell Acksell commented Sep 3, 2026 •

Copy link
Copy Markdown
Member

Summary

  • give signup and get-started a shared perspective-grid corridor
  • replace the get-started modal with a centered onboarding card
  • keep the room geometry fixed while longer setup content scrolls
  • preserve onboarding funnel and setup-action analytics
  • narrow the final setup card and simplify its introductory copy

Testing

  • bun run build
  • bun test (75 passed, 1 skipped)

Summary by cubic

Signup and get-started now share a perspective-grid corridor, replacing the get-started modal with a centered onboarding card and giving signup the same visual treatment. Longer setup content scrolls without changing the corridor geometry.

  • Preserves the existing onboarding funnel and setup-action analytics.
  • Keeps preference updates and setup-plan editing available after onboarding.
  • Narrows the final setup card and removes its introductory paragraph.
  • Halves the pixel-dither transition band so page-band transitions are subtler.
  • Fixes onboarding reopen focus and gating on stored preferences, so returning visitors don't see a questionnaire flash or fire a false Onboarding Opened event.
  • Shows a loading fallback on get-started before hydration, so prerendered/no-JS visitors don't see a blank corridor.

Written for commit db5bb96. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • New Features

    • Added a guided three-step onboarding experience for selecting build targets, devices, and setup preferences.
    • Added a new corridor-style layout for the get-started and signup pages.
    • Added support for narrow and wide layout variants with responsive and reduced-motion behavior.
  • Improvements

    • Onboarding now appears directly on the get-started page.
    • Updated signup cards and sign-in/sign-up switching with refreshed visual styling.
    • Simplified setup plan headers by removing redundant descriptive text.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 32 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 1f351f81-5d58-4438-8e21-f27cbc10ac6f

📥 Commits

Reviewing files that changed from the base of the PR and between 8e966d4 and db5bb96.

📒 Files selected for processing (3)
  • src/app.css
  • src/lib/onboarding/OnboardingCard.svelte
  • src/routes/get-started/+page.svelte

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: 829d2087-ceca-4aa3-b569-e95e0daf73e1

📥 Commits

Reviewing files that changed from the base of the PR and between bffd1e9 and 8e966d4.

📒 Files selected for processing (5)
  • src/lib/CorridorPage.svelte
  • src/lib/onboarding/OnboardingCard.svelte
  • src/lib/onboarding/SetupPlan.svelte
  • src/routes/get-started/+page.svelte
  • src/routes/signup/+page.svelte
💤 Files with no reviewable changes (1)
  • src/lib/onboarding/SetupPlan.svelte

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

Changes

The PR adds a reusable CorridorPage layout with responsive corridor artwork. It adds an inline three-step OnboardingCard, integrates it into the get-started page, and applies the corridor layout to signup authentication views.

Corridor layout and onboarding flow

Layer / File(s) Summary
Corridor page shell
src/lib/CorridorPage.svelte
Adds the corridor SVG backdrop, responsive sizing, brand link, child snippet rendering, and reduced-motion animation.
Inline onboarding flow
src/lib/onboarding/OnboardingCard.svelte, src/lib/onboarding/SetupPlan.svelte, src/routes/get-started/+page.svelte
Adds three-step onboarding state and controls. The get-started page shows the card by default, handles cancellation, and renders SetupPlan after the card closes.
Signup corridor integration
src/routes/signup/+page.svelte
Wraps signup content in CorridorPage and adds translucent authentication card and mode-switch styles.

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

Merge Risk: ⚪ Minimal · up to 8e966

The signup and onboarding pages now use the shared corridor presentation while preserving the existing setup and authentication flows. No current merge-blocking risk is identified.

Sequence Diagram(s)

sequenceDiagram
  participant GetStartedPage
  participant CorridorPage
  participant OnboardingCard
  participant SetupPlan

  GetStartedPage->>CorridorPage: Render page layout
  CorridorPage->>OnboardingCard: Render onboarding when open
  OnboardingCard->>GetStartedPage: Complete or cancel callback
  GetStartedPage->>SetupPlan: Render setup plan after onboarding
Loading
🚥 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 and concisely describes the main changes: redesigning signup and onboarding around a shared perspective corridor.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (4 skipped: 4 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/misc-redesign

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.

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:12 · HEAD 8e966d4d) — ⏳ waiting on bot reviews (up to 25m)…


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

⚠️ can't post commit statuses — merge-box signal disabled this run (no Statuses-API tool available in this environment)


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:12 · HEAD 8e966d4d) — ⏳ still waiting on bots — cubic in_progress · 2m/25m


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:12 · HEAD 8e966d4d) — ⏳ still waiting on bots — cubic in_progress · 4m/25m


Generated by Claude Code

@cubic-dev-ai cubic-dev-ai 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.

1 issue found across 5 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/lib/onboarding/OnboardingCard.svelte">

<violation number="1" location="src/lib/onboarding/OnboardingCard.svelte:39">
P3: `OnboardingCard` duplicates the onboarding flow in `OnboardingModal`, so changes to steps and analytics must stay synchronized manually. Extract the shared state and handlers into a reusable onboarding controller or component.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread src/lib/onboarding/OnboardingCard.svelte Outdated
Comment thread src/routes/get-started/+page.svelte Outdated
if (!usage && Object.values(USAGE).includes(initialUsage)) usage = initialUsage;
});

function toggle(values, value) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: OnboardingCard duplicates the onboarding flow in OnboardingModal, so changes to steps and analytics must stay synchronized manually. Extract the shared state and handlers into a reusable onboarding controller or component.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/lib/onboarding/OnboardingCard.svelte, line 39:

<comment>`OnboardingCard` duplicates the onboarding flow in `OnboardingModal`, so changes to steps and analytics must stay synchronized manually. Extract the shared state and handlers into a reusable onboarding controller or component.</comment>

<file context>
@@ -0,0 +1,155 @@
+    if (!usage && Object.values(USAGE).includes(initialUsage)) usage = initialUsage;
+  });
+
+  function toggle(values, value) {
+    return values.includes(value) ? values.filter((item) => item !== value) : [...values, value];
+  }
</file context>

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:12 · HEAD 8e966d4d) — cubic completed (3 issues found); coderabbit still processing, greptile no check yet · 6m/25m


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:12 · HEAD 8e966d4d) — bots done: cubic (3 issues), coderabbit (0, "no actionable comments"). No greptile/gemini/copilot activity after 8m — treating as not enabled on this repo. Triaging now.


Generated by Claude Code

- Focus the step heading on mount so reopening onboarding via "Change"
  doesn't strand keyboard/screen-reader focus at the document body,
  matching OnboardingModal's existing behavior.
- Don't render OnboardingCard/SetupPlan until stored preferences are
  resolved, so returning visitors no longer see a flash of the
  questionnaire and no longer fire a false Onboarding Opened event
  before their saved preferences load.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X5b9PuMmCLDhSWwZvAdz9y

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

Automated review-bot triage

Rank Source ID File:line Issue LoC Real-world impact Verdict
1 cubic 5102394138 (review) get-started/+page.svelte isOpen/preferences render before storage resolves 20 Real — returning visitors briefly see the questionnaire flash and fire a false Onboarding Opened analytics event before their saved preferences load Do
2 cubic 5102394138 (review) OnboardingCard.svelte:31 No focus management on mount, unlike OnboardingModal 3 Real, minor — reopening via "Change" strands keyboard/screen-reader focus at document body Do
3 cubic 5102394138 (review) OnboardingCard.svelte vs OnboardingModal.svelte Onboarding step flow duplicated across the two components ~150+ (shared-controller extraction) Real but architectural — maintenance cost, no functional bug today Defer
— coderabbit — — "No actionable comments were generated in the recent review." — — Skip (nothing to triage)

Trusted review (current HEAD 8e966d4, before this push): CodeRabbit ✓ (0 findings); Cubic ✓ (3 findings, 1 Do). Greptile/Gemini/Copilot showed no check-run or review activity after 8+ minutes — appear not enabled on this repo. Mergeability is the auto-merge skill's call, not review-bot's.

Plan: one commit — gate get-started/+page.svelte rendering on resolved preferences (fixes the flash + false analytics event) and add heading.focus() on OnboardingCard mount (matches OnboardingModal's existing pattern). Deferred the OnboardingCard/OnboardingModal duplication with a TODO(ai-review) marker — real, but a shared-controller extraction is out of scope for this PR. Verified with bun run build and bun test (75 passed, 1 skipped) — pushed as 00201d3.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

@cubic-dev-ai re: the OnboardingCard/OnboardingModal duplication finding —

Deferred — real concern, not fixed in this PR.

  • The two components serve different placements (get-started inline card vs. welcome dialog) with genuinely different chrome (dialog/backdrop/focus-trap vs. inline section), so a shared controller needs to extract the step/answer state machine without forcing the two UIs to share markup.
  • That's a real refactor (new shared module + both call sites updated + tests), not a same-PR-sized fix.

Revisit when a third onboarding placement is added, or the two flows drift out of sync on a future change. Marked with TODO(ai-review) at the top of OnboardingCard.svelte.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:12 · HEAD 8e966d4d) — ✅ done — pushed 1 fix commit (00201d3, 2 do's + 1 defer); bots re-reviewing new HEAD, next run triages.


Generated by Claude Code

@cubic-dev-ai

cubic-dev-ai Bot commented Sep 3, 2026

Copy link
Copy Markdown

@cubic-dev-ai re: the OnboardingCard/OnboardingModal duplication finding —

Deferred — real concern, not fixed in this PR.

  • The two components serve different placements (get-started inline card vs. welcome dialog) with genuinely different chrome (dialog/backdrop/focus-trap vs. inline section), so a shared controller needs to extract the step/answer state machine without forcing the two UIs to share markup.
    ...

@Acksell Agreed — deferring is the right call. The duplication is real (the step state machine, toggle/moveStep/continueSetup/report logic, and the STEPS progression are copied between the two components), but your reasoning holds: OnboardingCard is an inline section while OnboardingModal carries dialog chrome (backdrop, focus trap, onclose vs oncancel semantics), so a clean fix means extracting a shared controller — a genuine refactor with two call sites and tests, not a same-PR-sized change.

The TODO(ai-review) marker plus the concrete revisit triggers ("third placement added" or "flows drift out of sync") is the right way to leave it. One small suggestion when you do get to it: the shared module should own the answers + validation + analytics reporting, and let each UI decide how to render step chrome — that keeps the wiring (like onboardingStepProperties) from diverging silently even while the markup stays separate. Nothing blocking here.

Tip: get faster answers by chatting with cubic’s review copilot in the review UI

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:26 UTC · HEAD 00201d3) — ⏳ waiting on bot reviews (up to 25m)…


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:26 UTC · HEAD 00201d3) — ⚠️ can't post commit statuses in this environment (no Statuses-API tool available) — merge-box signal disabled this run; activity stream is the source of truth.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:26 UTC · HEAD 00201d3) — ⏳ still waiting on bots — cubic in_progress · 2m/25m


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:26 UTC · HEAD 00201d3) — ⏳ still waiting on bots — cubic in_progress · 4m/25m


Generated by Claude Code

@cubic-dev-ai cubic-dev-ai 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.

1 issue found across 2 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/lib/onboarding/OnboardingCard.svelte">

<violation number="1" location="src/lib/onboarding/OnboardingCard.svelte:2">
P3: This auto-generated `TODO(ai-review)` comment from the review bot was left in committed source. It references a PR URL rather than a maintained issue and the `ai-review` tag is tooling noise. Drop the `(ai-review)` tag and link an actual tracked issue, or remove the comment.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread src/routes/get-started/+page.svelte
@@ -0,0 +1,159 @@
<script>
// TODO(ai-review): duplicates OnboardingModal's step flow; extract a shared controller. https://github.com/supaclank/web/pull/26

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: This auto-generated TODO(ai-review) comment from the review bot was left in committed source. It references a PR URL rather than a maintained issue and the ai-review tag is tooling noise. Drop the (ai-review) tag and link an actual tracked issue, or remove the comment.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/lib/onboarding/OnboardingCard.svelte, line 2:

<comment>This auto-generated `TODO(ai-review)` comment from the review bot was left in committed source. It references a PR URL rather than a maintained issue and the `ai-review` tag is tooling noise. Drop the `(ai-review)` tag and link an actual tracked issue, or remove the comment.</comment>

<file context>
@@ -1,4 +1,5 @@
 <script>
+  // TODO(ai-review): duplicates OnboardingModal's step flow; extract a shared controller. https://github.com/supaclank/web/pull/26
   import { onMount, tick, untrack } from 'svelte';
   import ChoiceCard from './ChoiceCard.svelte';
</file context>

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Won't do — TODO(ai-review) is an intentional, repo-wide convention (not tooling noise): it's the bot-agnostic marker this repo's automated review-bot triage routine leaves for every Defer verdict, so git grep "TODO(ai-review)" finds every deferred review-bot suggestion across vendors (CodeRabbit, Cubic, Greptile, etc.). Linking the PR discussion thread (#discussion_r3924946619, where the duplication tradeoff is explained) is the anchor by design — there's no separate tracked issue to link because the PR thread is the record of the decision. Not removing it.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:26 UTC · HEAD 00201d3) — cubic done (2 new issues on this HEAD); coderabbit still rate-limited (no new review), greptile/gemini/copilot no activity. Triaging now.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:38 UTC · HEAD b27c94a) — ⏳ waiting on bot reviews (up to 25m)…


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

⚠️ can't post commit statuses — merge-box signal disabled this run (no commit-status tool available in this environment; MCP GitHub tools only, no gh api)


Generated by Claude Code

Prerendered/no-JS visitors saw a blank corridor since the ready
gate rendered nothing, unlike other async routes (e.g. welcome)
which show a loading placeholder.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019gDWM1pQoTmQ9k7HxRvkiE

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

Automated review-bot triage

Rank Source ID File:line Issue LoC Real-world impact Verdict
1 cubic discussion_r3925086580 get-started/+page.svelte:74 {#if ready} renders nothing until hydration, unlike every other async route in this repo (e.g. welcome/+page.svelte shows "Loading…") 2 Real — this route is prerendered (export const prerender = true, chosen specifically so browser-only routes "still ship a real branded HTML shell"); confirmed the built output has an empty corridor for this route before this fix Do
2 cubic discussion_r3925086592 OnboardingCard.svelte:2 Calls the TODO(ai-review) marker "tooling noise" and asks to link a tracked issue instead 0 Bot misunderstanding — this is this repo's own review-bot convention (bot-agnostic, PR-thread-anchored) Won't do

Trusted review (current HEAD, before this push): Cubic ✓ (2 new findings on 00201d3); CodeRabbit still rate-limited (no new review since the review-limit notice); Greptile/Gemini/Copilot no activity. Mergeability is the auto-merge skill's call, not review-bot's.

Plan: one commit — add a "Loading…" fallback for the pre-ready state on get-started/+page.svelte, matching the loading-placeholder pattern already used on welcome/+page.svelte. This keeps the ready gate's fix for the prior round's flash/false-analytics bug intact (the interactive card/plan still wait for ready) while restoring real prerendered content for no-JS/pre-hydration visitors. Verified with bun run build (checked the prerendered get-started.html output directly) and bun test (75 passed, 1 skipped). Replied on the Won't-do explaining the TODO(ai-review) convention.

Note: while this was in flight, an unrelated commit (b27c94a, "Halve pixel-dither transition height") landed on the branch; rebased this fix on top of it before pushing as db5bb96.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:26 UTC · HEAD 00201d3) — ✅ done — pushed 1 fix commit (db5bb96, 1 do + 1 won't-do); bots re-reviewing new HEAD, next run triages.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:38 UTC · HEAD b27c94a) — resuming from the interrupted prior round: 2 cubic findings on 00201d3 (TODO(ai-review) tag, no-JS/pre-hydration blank page) were never triaged before this push landed. b27c94a only touches src/app.css (CSS-only), so both still apply unchanged. cubic re-checking this HEAD (in_progress); coderabbit still rate-limited from its last run.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run started · HEAD db5bb96) — ⏳ waiting on bot reviews (up to 25m)…


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot — ⚠️ can't post commit statuses in this environment (no Statuses-API tool available) — merge-box signal disabled this run; activity stream and triage continue normally.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run 13:38 UTC · HEAD b27c94a) — no local API polling available in this environment; watching via GitHub webhook events (subscribed) plus a ~10m fallback check-in instead of the usual 30s poll. Will resume the moment cubic's check-run completes or a new bot comment lands.


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run started · HEAD db5bb96) — ⏳ still waiting on bots — cubic in_progress · 3m/25m


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run started · HEAD db5bb96) — ⏳ still waiting on bots — cubic in_progress · 6m/25m


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

✅ Review-bot converged

run 13:38 UTC · HEAD db5bb96 · status → success (no local commit-status tool)

While this run was waiting on cubic's re-check of b27c94a, a parallel review-bot run beat it to the punch: it triaged the same 2 untriaged cubic findings from 00201d3 (loading-fallback Do, TODO(ai-review) Won't-do), rebased the fix on top of b27c94a, and pushed db5bb96 — see the triage table and its own in-flight watch of that HEAD. No bot output postdates that triage. Nothing left for this run to triage or push — standing down per the race-condition rule (git push is the serializer; the loser re-enters "Should I run?" and exits).

Loop totals so far (both runs): 2 rounds, 6 findings (3 do, 1 defer, 1 won't-do, 1 skip).


Generated by Claude Code

Acksell commented Sep 3, 2026

Copy link
Copy Markdown
Member Author

🤖 review-bot (run started · HEAD db5bb96) — cubic's re-check of this HEAD completed with no new review. Confirms the parallel run's convergence call: no bot output postdates the last triage. Standing down without a second terminal comment — this run's outcome is the same.


Generated by Claude Code

@Acksell
Acksell merged commit 6db51a4 into main Sep 3, 2026
3 checks passed
@Acksell
Acksell deleted the codex/misc-redesign branch September 3, 2026 14:09
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