Skip to content

Release: staging to main (v0.7.0)#63

Merged
dancj merged 17 commits into
mainfrom
staging
Jul 7, 2026
Merged

Release: staging to main (v0.7.0)#63
dancj merged 17 commits into
mainfrom
staging

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Proposed release: v0.7.0

Features

Fixes

github-actions Bot and others added 17 commits July 4, 2026 13:32
chore: sync release v0.6.0 (changelog + version)
insetEndpoints pulls curve endpoints back along their tangents by an
arrowhead's base depth (headBaseInset = size * cos(spread)), scaling both
insets down on tiny chords so endpoints never cross. buildElbowPath gains
per-leg trims computed after the corners, so the mid-rail stays put and a
trim can never invert a short final leg. Groundwork for #59.
When a head is drawn, the curve route feeds inset endpoints to routing and
path build (so avoid detection matches the rendered shaft) and the elbow
route trims its first/last leg. Heads stay anchored at the true socket
points, so tips still touch the target edge. Draw-on ordering unchanged.
Math.min for the clamp scale, hoisted hasStartHead/hasEndHead so the
shaft inset and head drawing can't desync, and one shared pathDs test
helper. Behavior unchanged; suite stays green.
fix: stop the arrow shaft overlapping the arrowhead
Closes the gap where hasStartHead was only ever true via 'both' (#61):
curve start inset, start-head socket anchoring, and elbow startTrim.
arrowHeadPath(closed=true) appends Z so the head can be filled (#60).
'solid' closes the head triangle and fills it with the stroke color via
rough.js fillStyle 'solid', keeping the hand-drawn look (#60). Default
'line' output is unchanged. Drops the redundant fill='none' clobber in
appendDrawable (rough.js already sets it on stroke paths) and tags each
segment with its drawable's reveal group for the fade-in that follows.
rough.js emits a head's fill path before its outline strokes, so raw
segment order can't drive sequential reveal. segmentFractions gives every
segment its revealed fraction: fill paths carry no length in the draw
budget and mirror their own head group's stroke fraction, fading in while
the outline dash-draws (#60). dashOffsets delegates to it, so stroke
timing is unchanged.
README gains headStyle next to head/headSize; plan for #60/#61 included.
…ions

Simplify pass: shared anchors()/paths() test helpers (pathDs derives from
paths); dashOffsets deleted from src (applyProgress uses segmentFractions
directly; its numeric suite now guards segmentFractions via a local offsets
helper); segments field typed via DrawSegment; segmentFractions skips group
bookkeeping when no fill segment exists (per-frame hot path).
Add integration test proving each solid head fades independently for
head:'both' via appendDrawable's real group-id wiring (review finding #1).
New section between obstacle avoidance and the tree reveal: head 'both'
with headStyle 'solid' so both filled heads fade in with their outlines.
Hardcoded section indexes for the tree and reduced-motion cards shift by
one.
feat(render): solid arrowhead style + start-head render coverage
@github-actions github-actions Bot changed the title Release: staging to main (v0.6.1) Release: staging to main (v0.7.0) Jul 7, 2026
@dancj

dancj commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Closes #62
Closes #64

@dancj
dancj merged commit d2cc36d into main Jul 7, 2026
3 checks passed
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