Skip to content

fix: use borderElement for unchecked checkbox visibility (LUM-751)#23992

Merged
ashleeradka merged 1 commit into
mainfrom
devin/lum-751-1775578181-fix-invisible-checkbox
Apr 7, 2026
Merged

fix: use borderElement for unchecked checkbox visibility (LUM-751)#23992
ashleeradka merged 1 commit into
mainfrom
devin/lum-751-1775578181-fix-invisible-checkbox

Conversation

@devin-ai-integration
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot commented Apr 7, 2026

Summary

The ToS consent checkbox on the onboarding screen is invisible when unchecked in dark mode. The unchecked border uses VColor.borderBase (#24292E in dark mode), which is identical to the VCard background color VColor.surfaceLift (#24292E in dark mode) — zero contrast.

Switches the border token to VColor.borderElement (#5A6672 dark / #CFCCC9 light), which is the semantic token for interactive element borders and provides clear contrast against the card background in both color schemes.

Review & Testing Checklist for Human

  • Visually verify the unchecked checkbox is clearly visible in dark mode on macOS
  • Visually verify the unchecked checkbox looks correct in light mode (no regression from the token change — borderElement is slightly darker than borderBase in light mode)
  • Confirm borderElement is the correct semantic token per the design system's Figma spec for this type of interactive form element border

Notes

Closes LUM-751

Link to Devin session: https://app.devin.ai/sessions/a84f335bf6954d3db8c38b3534a1baad
Requested by: @ashleeradka


Open with Devin

The ToS checkbox border used VColor.borderBase (#24292E dark) which is
identical to VCard's VColor.surfaceLift background (#24292E dark),
making the unchecked checkbox completely invisible in dark mode.

Switch to VColor.borderElement (#5A6672 dark / #CFCCC9 light) which
is the semantic token for interactive element borders and provides
clear contrast against the card background in both color schemes.

Closes LUM-751

Co-Authored-By: ashlee@vellum.ai <ashlee@vellum.ai>
@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Copy link
Copy Markdown
Contributor Author

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 1 additional finding.

Open in Devin Review

@ashleeradka ashleeradka merged commit d73620c into main Apr 7, 2026
4 checks passed
@ashleeradka ashleeradka deleted the devin/lum-751-1775578181-fix-invisible-checkbox branch April 7, 2026 16:14
noanflaherty pushed a commit that referenced this pull request Apr 7, 2026
…23992)

The ToS checkbox border used VColor.borderBase (#24292E dark) which is
identical to VCard's VColor.surfaceLift background (#24292E dark),
making the unchecked checkbox completely invisible in dark mode.

Switch to VColor.borderElement (#5A6672 dark / #CFCCC9 light) which
is the semantic token for interactive element borders and provides
clear contrast against the card background in both color schemes.

Closes LUM-751

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ashlee@vellum.ai <ashlee@vellum.ai>
noanflaherty added a commit that referenced this pull request Apr 7, 2026
* fix: use borderElement for unchecked checkbox visibility (LUM-751) (#23992)

The ToS checkbox border used VColor.borderBase (#24292E dark) which is
identical to VCard's VColor.surfaceLift background (#24292E dark),
making the unchecked checkbox completely invisible in dark mode.

Switch to VColor.borderElement (#5A6672 dark / #CFCCC9 light) which
is the semantic token for interactive element borders and provides
clear contrast against the card background in both color schemes.

Closes LUM-751

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ashlee@vellum.ai <ashlee@vellum.ai>

* fix: enable link click handling in VSelectableTextView (#23986)

Add NSTextViewDelegate to Coordinator with textView(_:clickedOnLink:at:)
to open clicked links in the default browser via NSWorkspace. The NSTextView
was already styling links (tint color, underline, pointer cursor) but had
no delegate to handle click events, making links visually styled but inert.

Closes LUM-748

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ashlee@vellum.ai <ashlee@vellum.ai>

* fix: prevent onboarding from repeating name confirmation after tool calls (#23989)

The agentic loop calls the LLM again after tool results return. Combined
with "talk before you work" (SOUL.md) and "save immediately" (BOOTSTRAP.md),
the model would confirm the user's name, call file_edit, then re-confirm
the name in the continuation response.

Add explicit guidance in both BOOTSTRAP.md and SOUL.md to not repeat text
that was already shown before tool calls.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Update Vellum Cloud onboarding copy to emphasize always-on availability (#24022)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [LUM-753] Improve client-side dictation resilience (#24042)

* [LUM-753] Improve dictation resilience: reduce timeout, use warning-level logs, add timing

- Reduce dictation HTTP timeout from 10s to 5s so the client falls back
  to raw transcription faster when the daemon is unreachable
- Downgrade failure logs from error to warning since these are expected
  failures with graceful recovery (not actionable errors)
- Add elapsed time to all failure log messages for debugging latency
- Improve fallback log to include transcription length for diagnostics

Co-Authored-By: tkheyfets <timur@vellum.ai>

* Apply suggestions from code review

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: tkheyfets <timur@vellum.ai>
Co-authored-by: Noa Flaherty <noa@vellum.ai>

---------

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ashlee@vellum.ai <ashlee@vellum.ai>
Co-authored-by: asharma53 <64060709+asharma53@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: tkheyfets <timur@vellum.ai>
vellum-automation Bot added a commit that referenced this pull request Apr 7, 2026
* Release v0.6.2

* Cherry-pick fixes into release/v0.6.2 (#24074)

* fix: use borderElement for unchecked checkbox visibility (LUM-751) (#23992)

The ToS checkbox border used VColor.borderBase (#24292E dark) which is
identical to VCard's VColor.surfaceLift background (#24292E dark),
making the unchecked checkbox completely invisible in dark mode.

Switch to VColor.borderElement (#5A6672 dark / #CFCCC9 light) which
is the semantic token for interactive element borders and provides
clear contrast against the card background in both color schemes.

Closes LUM-751

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ashlee@vellum.ai <ashlee@vellum.ai>

* fix: enable link click handling in VSelectableTextView (#23986)

Add NSTextViewDelegate to Coordinator with textView(_:clickedOnLink:at:)
to open clicked links in the default browser via NSWorkspace. The NSTextView
was already styling links (tint color, underline, pointer cursor) but had
no delegate to handle click events, making links visually styled but inert.

Closes LUM-748

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ashlee@vellum.ai <ashlee@vellum.ai>

* fix: prevent onboarding from repeating name confirmation after tool calls (#23989)

The agentic loop calls the LLM again after tool results return. Combined
with "talk before you work" (SOUL.md) and "save immediately" (BOOTSTRAP.md),
the model would confirm the user's name, call file_edit, then re-confirm
the name in the continuation response.

Add explicit guidance in both BOOTSTRAP.md and SOUL.md to not repeat text
that was already shown before tool calls.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Update Vellum Cloud onboarding copy to emphasize always-on availability (#24022)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* [LUM-753] Improve client-side dictation resilience (#24042)

* [LUM-753] Improve dictation resilience: reduce timeout, use warning-level logs, add timing

- Reduce dictation HTTP timeout from 10s to 5s so the client falls back
  to raw transcription faster when the daemon is unreachable
- Downgrade failure logs from error to warning since these are expected
  failures with graceful recovery (not actionable errors)
- Add elapsed time to all failure log messages for debugging latency
- Improve fallback log to include transcription length for diagnostics

Co-Authored-By: tkheyfets <timur@vellum.ai>

* Apply suggestions from code review

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: tkheyfets <timur@vellum.ai>
Co-authored-by: Noa Flaherty <noa@vellum.ai>

---------

Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ashlee@vellum.ai <ashlee@vellum.ai>
Co-authored-by: asharma53 <64060709+asharma53@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: tkheyfets <timur@vellum.ai>

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Noa Flaherty <noa@vellum.ai>
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ashlee@vellum.ai <ashlee@vellum.ai>
Co-authored-by: asharma53 <64060709+asharma53@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: tkheyfets <timur@vellum.ai>
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