• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

source-academy / plugins / 31112159543
97%
feat/add-init-infra: 67%

Build:
Build:
LAST BUILD BRANCH: misc-changes
DEFAULT BRANCH: feat/add-init-infra
Ran 06 Aug 2026 02:43PM UTC
Jobs 1
Files 31
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

06 Aug 2026 02:42PM UTC coverage: 96.831%. Remained the same
31112159543

push

github

web-flow
feat(stepper): render inline thumbnails for opaque values (DrRacket style) (#90)

* feat(stepper): render inline thumbnails for opaque values (DrRacket style)

Adds an `image` SyntaxTemplatePart (renders a node's data-URL property as an
inline <img>, falling back to nothing when absent, like `child`/`list`) and
an `unless` part (the inverse of `when`, for pairing an image with a textual
fallback) to common-stepper. web-stepper renders both generically.

A language opts in by using them in its SyntaxProfile templates — see the
companion py-slang PR, which wires this up for opaque module values (e.g. a
`rune` Rune) that attach a stepper-thumbnail render hook.

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

* fix(stepper): address review on opaque-thumbnail image/unless parts

- Fix `unless` doc comment, which referenced `node[when]` instead of
  `node[unless]`.
- Enforce that the `image` part's src is actually a `data:` URL before
  rendering it, instead of trusting any string — a live network URL there
  would let a render silently leak the viewer's IP/referrer to a
  third-party host.
- Drop the no-op `@sourceacademy/web-stepper` patch bump from the
  changeset: that package is in .changeset/config.json's `ignore` list
  (bundled host plugin, not independently published), matching how prior
  stepper-only changes (e.g. #49) only bumped common-stepper.

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

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>

305 of 323 branches covered (94.43%)

Branch coverage included in aggregate %.

581 of 592 relevant lines covered (98.14%)

26.48 hits per line

Jobs
ID Job ID Ran Files Coverage
1 31112159543.1 06 Aug 2026 02:43PM UTC 31
96.83
GitHub Action Run
Source Files on build 31112159543
  • Tree
  • List 31
  • Changed 1
  • Source Changed 1
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31112159543
  • 065da98c on github
  • Prev Build on main (#30788543268)
  • Next Build on main (#31137168647)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc