Repository navigation
Releases: Amir83Nasr/dsh-rastin
Releases · Amir83Nasr/dsh-rastin
Release list
v0.3.0
Changed
- Breaking: package renamed
@amir83nasr/rastin→@amir83nasr/dsh-rastin
(bundle id and cordis patch included), matching the repo name. - Publishable to npm:
privatedropped,publishConfig.access: public,
pluskeywords,author,repository,homepage,bugs. prepackrunsnode scripts/build.mjsdirectly, so packing works under
npm as well as pnpm; the pnpm-onlypreinstallguard is gone so npm
consumers can install.exportsgains./src/cordis.patch.ymlfor direct patch resolution.- README gains an Install section; AGENTS.md documents the npm publish flow.
Fixed
- Canvas
fontpatch cleanup compared the saved native setter instead of
the wrapper, so it returned early and never restored the prototype.
Cleanup now compares the installed wrapper (still leaving third-party
replacements alone);self-checkexercises patch, rewrite, and restore.
v0.2.2
Added
- Package icon (
icons/) wired to theiconfield and shipped viafiles,
with a matching header image inREADME.md. - MIT
LICENCE.md.
v0.2.1
Fixed
- Flow arrows (← → ⇐ ⇒) in RTL prose now point the RTL way: each arrow
gets a per-glyph mirror span (data-rastin-mirror,scaleX(-1)), so
ورودی … → Bot(cfg) → start()reads right-to-left end to end. Span
holds the exact char, so selection and copy stay intact. Covered by
orient-check(wrap, idempotence, LTR-seat and island exclusion) and
theself-checkwiring assertions.
v0.2.0
Added
- IranYekanX Bold (700) embedded alongside Regular, so Persian bold text
stops falling back to a system face. - Per-seat auto-direction: each message follows its own leading word run,
so a real English opening (two-plus LTR words) reads LTR while a lone
English term ("Merge کن") stays RTL (src/direction.js, covered by
scripts/direction-check.mjswith 37 fa/en/mixed/markup/script cases
plusscripts/orient-check.mjsfor streaming, lock, and idempotence). - Auto-direction covers
turn-error,turn-max-tokens, andmodel-retry
seats, so English failures ("This turn failed", "API key is invalid")
read LTR.
Fixed
- Style seat attribute typo (
data-raastin→data-rastin). - Product face scoped to the RTL surfaces instead of
:root, so the rest
of the app keeps the host font. - Terminal canvas patch now handles weight/style-prefixed fonts
(bold 13px monospace) and no longer double-patches on re-apply
(shared idempotent cleanup, no clobber of third-party patches). - Todo auto-open is one-shot: opens the first collapsed panel, then
disconnects so a later manual collapse stays collapsed. - Auto-direction batches streaming ticks per frame (no full-document sweep
per character) and drops self-triggereddirobservation. - Verdict reads seat prose minus LTR islands (
seatText): tool-call,
command, code, clock, and process-status English no longer flips a
Persian seat to LTR (orientSeat/seatTextlive insrc/direction.js,
shared by the bundle andorient-check, so the old hand-copied mock is
gone). - Question-card feedback row aligns right with the rest of the RTL surface
(wasleft). - Product face restored app-wide (
:root --dsw-font-family): the whole app
reads IranYekanX again, not just the RTL surfaces. - LTR islands isolated (
unicode-bidi: isolate), md/plan-preview RTL
fallback scoped behind:not([dir])soorientSeatverdicts win. ::selectiontint + queue-counter bidi isolation for RTL runs.- FiraMono full-file embed documented as the ~1.7MB ceiling
(client.jssize guard at 2MB); subsetting waits on an icon inventory. - Sidebar chrome (workspace header, session rows) deliberately untouched:
no hostdata-hook or slot seat exists — noted as aponytailin the
template, pending host cooperation. - Queue-dock mixes covered: Persian digits/units and counter verdicts
(direction-checknow 37 cases).
v0.1.0
Added
- Persian RTL layout for chat, queue, and question surfaces (IranYekanX face).
- FiraMono Nerd Font Mono for the sidebar terminal (base64 woff2 embed + canvas 2d
fontsetter patch scoped to[data-sidebar-terminal]). - Todo dock opens by default (host mounts it collapsed; user can re-collapse).
- Bundle metadata locales:
en.json/fa.json.