Releases: computer-whisperer/aetna
Releases · computer-whisperer/aetna
Aetna 0.3.5
Highlights
- Adds the touch-input primitives needed to drive Aetna from a phone or tablet: PointerEvent ingest carries a modality tag, hover transitions are gated by contact for touch, touch scroll is synthesized through a gesture state machine, and a touch-press past 500ms emits a dedicated
LongPressevent alongsidePointerCancel. - Adds soft-keyboard support on the web host: tapping a text input synchronously focuses a hidden
<input>from the pointerdown handler so iOS / Android summon the on-screen keyboard, with per-frame focus sync and aprevent_defaultguard so the browser's default focus-shift to the canvas no longer dismisses the keyboard one frame later. - Adds responsive-layout primitives:
BuildCx::with_viewport/viewport_below(...)for build-time phone-vs-desktop branching,min_width/max_width/min_height/max_heightmodifiers onEl, andBuildCx::safe_areapopulated fromVisualViewporton web so apps can inset around the on-screen keyboard. - Reworks the showcase shell to switch from a sidebar to a phone-topbar layout below 700px, stacks input rows on phone, and tightens text and tile labels across pages so the common interactions fit a 360px viewport.
- Binds right-click on web (suppresses the browser context menu, routes
PointerButton::Secondarythrough the runtime) and inflates focusable / selectable hit rects to a 44px floor so finger pads don't miss small icons. - Fixes a soft-keyboard regression where a focused text input being clipped by a shrinking scroll viewport was clearing focus and dismissing the keyboard; focus now survives clip changes and only clears when the node truly leaves the tree.
- Internal: consolidates the paint, theme, and icons clusters into per-cluster directories; expands the math backend's TeX command coverage by ~85 operators and function names; stops the wheel from bubbling past
block_pointerbarriers.
Published crates
- aetna-fonts 0.3.5
- aetna-core 0.3.5
- aetna-markdown 0.3.5
- aetna-wgpu 0.3.5
- aetna-winit-wgpu 0.3.5
- aetna-vulkano 0.3.5
- aetna-web 0.3.5
Aetna 0.3.4
Highlights
- Adds menubar and calendar widgets to the stock component set.
- Improves long-list and chat-style scrolling with keyed virtual-list requests, dynamic anchoring fixes, and a virtual conversation stress example.
- Improves text selection behavior by preserving multi-click selection granularity while dragging.
- Fixes Escape blur handling for key-capture widgets and the wasm web clippy import.
- Adds middle-click close support for editor tabs and keeps release-facing version copy current.
Published crates
- aetna-fonts 0.3.4
- aetna-core 0.3.4
- aetna-markdown 0.3.4
- aetna-wgpu 0.3.4
- aetna-winit-wgpu 0.3.4
- aetna-vulkano 0.3.4
- aetna-web 0.3.4
Aetna 0.3.3
Highlights
- Adds native math layout and rendering coverage: OpenType math metrics, stretchy delimiters, radicals, indexed roots, under-over layout, MathML tables, TeX text groups, and richer showcase/math markdown fixtures.
- Improves text editing and selection: text-area keyboard navigation, wrap-aware selection highlights, newline-preserving paste, rich-text source-backed copy, and shared host clipboard helpers.
- Fixes web hosting: Chrome fallback handling, Firefox key default suppression, browser paste plumbing, and a reusable aetna-web embedding API with WebHandle redraw.
- Publishes aetna-web as a reusable crate and moves the demo bundle to unpublished aetna-web-showcase.
- Tightens UI lint, focus, and hit-target behavior, and runs showcase bundle lint in CI.
Published crates
- aetna-fonts 0.3.3
- aetna-core 0.3.3
- aetna-markdown 0.3.3
- aetna-wgpu 0.3.3
- aetna-winit-wgpu 0.3.3
- aetna-vulkano 0.3.3
- aetna-web 0.3.3
v0.3.2
47 commits since v0.3.1. Highlights:
Runtime hooks for embedding apps
App::drain_focus_requestsfor programmatic focus by key (#20)App::drain_scroll_requestsfor programmatic scroll-to-row (#22)- Link click event with per-run hit-test and a
drain_link_openshook; native host (winit-wgpu) opens URLs via theopencrate, web host useswindow.open - Web target wires
push_toastssoApp::drain_toastsreaches the runtime
Text & scroll polish
text_areanow wraps content in a scroll viewport, clips overflow, and handles drag-select auto-scrolltext_inputadds horizontal caret-into-view + clip for overflow- Generalized
ScrollRequest::EnsureVisibledrives caret-into-view in both editors scroll(...).pin_end()builder for chat-log stick-to-bottom behaviour- Tooltips cache trigger text on
UiTargetso virtual-list rows fire correctly
Performance & profiling
- Feature-gated
tracingspans acrossaetna-core,aetna-wgpu,aetna-winit-wgpu; showcase--profile <path>writes a chrome://tracing JSON viatracing-chrome - 10 sub-spans inside
prepare::layoutplus a layout::axis intrinsics/place split - Thread-local LRU cache for shaped
TextLayouts (avoids per-frame cosmic-text reshape) - Paint-side LRU cache for atlas shape_runs
- Default fonts pre-rasterize printable ASCII at host startup
FxHashMapfor per-frame side maps; redundantassign_idwalk skipped inprepare_layout- Web target opts into a paint-only repaint path for shader-driven frames; runtime splits layout vs paint redraw deadlines
Rendering
- Vulkano backend threads
sample_countthrough pipelines + render pass for MSAA; host + headless bins default to 4× MSAA - Vector layer drops the analytic-AA fringe and relies on host MSAA for silhouette AA
- wgpu downlevels
@interpolate(perspective, sample)when the adapter lacksMULTISAMPLED_SHADING draw_opskeeps scissor on image/surface/vector when anElis fully outside its inherited clip
Markdown
- Broader markdown rendering coverage for tables, footnotes, task lists, and more in
aetna-markdown
Theming
- Drop the shadcn neutral surface; add Radix sand+amber and mauve+violet palettes
- Per-corner radius via a new
Cornerstype - Card inherits corner radii onto filled header/footer (with a matching lint for corner stackup)
- Per-edge
Sidesconstructors;clip=truesilences the Overflow lint
Lints
- Flag bare
card([...])whose children sit flush against panel edges - Shape-specific advice for text overflowing its box
- Flag scrollbar-thumb overlap with focusables when a scroll has padding (#21)
- Flag dead
.ellipsis()chain on Hug flex children (#19)
Showcase
- About landing page with two interactive teaser cards, sidebar diagnostics toggle, and link routing through the runtime hook
- Aetna badge icon in the About header and README banners
- Sidebar nav scroll padded so the thumb sits in a gutter
- Web target: tab title says Showcase; liquid-glass subsection skipped on wasm; HostDiagnostics overlay + sRGB view-format and ResizeObserver fixes
CI / deploy
- Pages workflow deploys the wasm showcase on every published release
v0.3.1
Aetna 0.3.1 release.\n\nHighlights:\n- Published new crates: aetna-markdown v0.3.1 and aetna-fonts-jetbrains-mono v0.1.0.\n- Published 0.3.1 bumps for aetna-fonts, aetna-core, aetna-wgpu, aetna-winit-wgpu, and aetna-vulkano.\n- Made vector render mode explicit across the engine.\n- Added the README hero demo and generated headless hero shot.\n- Kept private fixture diagnostics out of the aetna-wgpu publish surface.