Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .changeset/calm-math-scanner.md

This file was deleted.

29 changes: 0 additions & 29 deletions .changeset/natural-language-evidence-bias.md

This file was deleted.

4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ is published under the public `@bidilens` npm scope.

## Unreleased

No unreleased changes.

## 0.3.1 - 2026-08-13

### Security and performance

- Replaced the raw-text math-delimiter regular expression with a single-pass
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ authors:
repository-code: "https://github.com/CodeinScrubs/BidiLens"
url: "https://github.com/CodeinScrubs/BidiLens"
license: MIT
version: 0.3.0
version: 0.3.1
keywords:
- bidirectional text
- RTL
Expand Down
13 changes: 7 additions & 6 deletions README.fa.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
[مشارکت](CONTRIBUTING.md) · [وضعیت پروژه](docs/V1_BUILD_REPORT.md)

> [!IMPORTANT]
> بخش وب و JavaScript به‌عنوان نسخهٔ آزمایشی عمومی `0.3.0` منتشر شده است. هر
> ۱۲ بستهٔ `@bidilens/*` در npm عمومی هستند و یکپارچگی و provenance آن‌ها
> بررسی شده است. نسخهٔ `0.1.1` هستهٔ Kotlin و ماژول‌های Android Views و
> بستهٔ اصلاحی `0.3.1` برای بخش وب و JavaScript آمادهٔ انتشار محافظت‌شده است.
> تا پیش از تأیید یکپارچگی رجیستری و provenance هر ۱۲ بستهٔ `@bidilens/*`،
> نسخهٔ عمومی npm همچنان `0.3.0` است. نسخهٔ `0.1.1` هستهٔ Kotlin و ماژول‌های Android Views و
> Jetpack Compose نیز امضاشده و در Maven Central عمومی است؛ برنامهٔ نمونه و
> شواهد انتشار در
> [`android-v0.1.1`](https://github.com/CodeinScrubs/BidiLens/releases/tag/android-v0.1.1)
Expand Down Expand Up @@ -74,7 +74,7 @@ The Persian word کتاب means “book”.
- ابزارهای Playwright برای سنجش جهت، ایزوله‌سازی، انتخاب منطقی، کلیپ‌بورد و هندسه؛
- ابزار خط فرمان و حالت محافظه‌کارانه برای ترمینال؛
- GitHub Action مستقل برای ممیزی امنیتی و آزمون corpus در مخزن‌های دیگر؛
- ۹۱۸ نمونهٔ اعتبارسنجی‌شده با JSON Schema و آزمون تصویری در سه موتور مرورگر؛
- ۹۳۲ نمونهٔ اعتبارسنجی‌شده با JSON Schema و آزمون تصویری در سه موتور مرورگر؛
- هستهٔ Kotlin، اتصال بدون تغییر متن برای `TextView` و `EditText`، اجزای
نمایشی و ویرایشی Compose، برنامهٔ نمونه، lint، ساخت AAR/APK و آزمون واقعی
رابط کاربری روی Android 15 و 16.
Expand All @@ -85,8 +85,9 @@ The Persian word کتاب means “book”.
Compose و Views در [راهنمای Android](android/README.md) قرار دارد.

تمام بسته‌های عمومی ESM-only هستند و برای استفادهٔ سمت سرور به Node.js 22.12 یا
جدیدتر نیاز دارند. مجموعهٔ کامل نسخهٔ `0.3.0` در
[سازمان `@bidilens` در npm](https://www.npmjs.com/org/bidilens) منتشر شده است.
جدیدتر نیاز دارند. مجموعهٔ کامل `0.3.1` برای انتشار محافظت‌شده آماده است و
نسخهٔ عمومی `0.3.0` همچنان در
[سازمان `@bidilens` در npm](https://www.npmjs.com/org/bidilens) در دسترس است.

پروژه با [مجوز MIT](LICENSE) متن‌باز است. شرایط داده‌های Unicode و بخش
Apache-2.0 پیکره در [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) حفظ شده
Expand Down
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@
[Project status](docs/V1_BUILD_REPORT.md)

> [!IMPORTANT]
> The JavaScript/web surface is published as the public `0.3.0` beta. All 12
> `@bidilens/*` packages are public on npm with verified registry integrity and
> SLSA provenance. Native Android core, Views, and Compose `0.1.1` artifacts
> The JavaScript/web `0.3.1` patch is prepared for protected publication. The
> current public npm release remains `0.3.0` until registry integrity and SLSA
> provenance for all 12 `@bidilens/*` packages are verified. Native Android
> core, Views, and Compose `0.1.1` artifacts
> are signed and public on Maven Central, with a verified sample and evidence
> bundle in the
> [`android-v0.1.1` release](https://github.com/CodeinScrubs/BidiLens/releases/tag/android-v0.1.1).
Expand Down Expand Up @@ -164,8 +165,9 @@ reordering and shaping; BidiLens supplies the application structure they need.

All public packages are ESM-only, require maintained Node.js 22.12 or newer for
server-side use, include declarations, a package README, license, and runnable example.
Browser packages target current standards-based browsers. The complete `0.3.0`
package set is [published under the `@bidilens` npm scope](https://www.npmjs.com/org/bidilens).
Browser packages target current standards-based browsers. The complete `0.3.1`
package set is prepared for protected publication; the current public `0.3.0`
set remains [available under the `@bidilens` npm scope](https://www.npmjs.com/org/bidilens).

## Consumer install

Expand Down
2 changes: 1 addition & 1 deletion action/dist/index.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -7168,7 +7168,7 @@ function renderBidiHtml(source, options = {}) {
// packages/cli/package.json
var package_default = {
name: "@bidilens/cli",
version: "0.3.0",
version: "0.3.1",
description: "CLI for inspecting direction and auditing hidden Unicode bidi controls.",
license: "MIT",
author: {
Expand Down
2 changes: 1 addition & 1 deletion action/dist/index.cjs.map

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions apps/demo/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# @bidilens/demo

## 0.3.1

### Patch Changes

- Updated dependencies [35b2ce6]
- Updated dependencies [61aa9f6]
- @bidilens/core@0.3.1
- @bidilens/markdown@0.3.1
- @bidilens/react@0.3.1

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion apps/demo/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/demo",
"version": "0.3.0",
"version": "0.3.1",
"private": true,
"type": "module",
"scripts": {
Expand Down
5 changes: 3 additions & 2 deletions docs/V1_BUILD_REPORT.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# BidiLens 0.2.0 release report

> This is the immutable historical report for 0.2.0. The current web/package
> release is 0.3.0; its changes are recorded in the root changelog and its
> This is the immutable historical report for 0.2.0. Web/package `0.3.1` is
> prepared for protected publication; `0.3.0` remains the latest verified
> public release. Current changes are recorded in the root changelog, and
> release evidence is retained by the protected publication workflow.

**Evidence date:** 2026-07-28
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bidilens",
"version": "0.3.0",
"version": "0.3.1",
"private": true,
"description": "Standards-first bidirectional text tooling for AI chat, Markdown, streaming UIs, and developer tools.",
"license": "MIT",
Expand Down
9 changes: 9 additions & 0 deletions packages/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# @bidilens/cli

## 0.3.1

### Patch Changes

- Updated dependencies [35b2ce6]
- Updated dependencies [61aa9f6]
- @bidilens/core@0.3.1
- @bidilens/html@0.3.1

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/cli",
"version": "0.3.0",
"version": "0.3.1",
"description": "CLI for inspecting direction and auditing hidden Unicode bidi controls.",
"license": "MIT",
"author": {
Expand Down
35 changes: 35 additions & 0 deletions packages/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,40 @@
# @bidilens/core

## 0.3.1

### Patch Changes

- 35b2ce6: Replace the raw-text math delimiter regular expression with a forward scanner
so repeated unmatched `\(` input stays linear instead of triggering
polynomial backtracking. Construct UTF-16-to-code-point range mappings with
bounded typed-array fills so input-derived offsets cannot be interpreted as
object properties.
- 61aa9f6: Stop treating ordinary English words as technical tokens, which biased mixed
blocks toward RTL.

`isTechnicalIdentifier` excluded any word containing a hyphen and any all-capital
word from natural-language evidence. Because only tokens beginning with an ASCII
letter reach that test, every false exclusion removed LTR evidence and never RTL
evidence, so English-majority prose could resolve RTL — the mirror of the
`dir="auto"` failure this project exists to fix. `The well-known
state-of-the-art open-source کتابخانه` resolved `rtl` with zero LTR evidence
counted, and `PLEASE READ THIS IMPORTANT WARNING کتاب` resolved `rtl` after every
English word was discarded.

A hyphen is now ordinary English compounding: a hyphenated token is technical
only when one of its segments is itself a known technical word, so
`react-markdown` and `web-app` stay excluded while `well-known`,
`state-of-the-art`, and `e-mail` remain direction evidence. Capitals are read per
block: a short all-capital token is an acronym inside mixed-case prose (`HTTP`,
`API`), but when capitals are the block's prose style the words stay evidence.
Digits, underscores, and dots remain structural identifier syntax.

The incremental streaming classifier mirrors the same rules, and defers to the
exact batch policy when a block contains an all-capital word, since that decision
depends on the whole block. The Kotlin, Swift, .NET, and Rust cores carried the
same biased rule and are fixed in step. Two exact cross-platform fixtures keep
all five implementations aligned.

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/core",
"version": "0.3.0",
"version": "0.3.1",
"description": "Unicode direction analysis, isolation, streaming state, and bidi security primitives.",
"license": "MIT",
"author": {
Expand Down
8 changes: 8 additions & 0 deletions packages/dom/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @bidilens/dom

## 0.3.1

### Patch Changes

- Updated dependencies [35b2ce6]
- Updated dependencies [61aa9f6]
- @bidilens/core@0.3.1

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/dom/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/dom",
"version": "0.3.0",
"version": "0.3.1",
"description": "DOM annotation and streaming mutation support for bidirectional text.",
"license": "MIT",
"author": {
Expand Down
8 changes: 8 additions & 0 deletions packages/html/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @bidilens/html

## 0.3.1

### Patch Changes

- Updated dependencies [35b2ce6]
- Updated dependencies [61aa9f6]
- @bidilens/core@0.3.1

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/html/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/html",
"version": "0.3.0",
"version": "0.3.1",
"description": "Safe semantic HTML serialization for mixed RTL/LTR text and AI responses.",
"license": "MIT",
"author": {
Expand Down
8 changes: 8 additions & 0 deletions packages/markdown/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @bidilens/markdown

## 0.3.1

### Patch Changes

- Updated dependencies [35b2ce6]
- Updated dependencies [61aa9f6]
- @bidilens/core@0.3.1

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/markdown/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/markdown",
"version": "0.3.0",
"version": "0.3.1",
"description": "Batch and streaming Markdown AST/HTML tooling for mixed RTL/LTR content.",
"license": "MIT",
"author": {
Expand Down
2 changes: 2 additions & 0 deletions packages/playwright/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @bidilens/playwright

## 0.3.1

## 0.3.0

## 0.2.0
Expand Down
2 changes: 1 addition & 1 deletion packages/playwright/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/playwright",
"version": "0.3.0",
"version": "0.3.1",
"description": "Reusable Playwright assertions for mixed RTL/LTR rendering, isolation, selection, and clipboard invariants.",
"license": "MIT",
"author": {
Expand Down
8 changes: 8 additions & 0 deletions packages/react/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @bidilens/react

## 0.3.1

### Patch Changes

- Updated dependencies [35b2ce6]
- Updated dependencies [61aa9f6]
- @bidilens/core@0.3.1

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/react",
"version": "0.3.0",
"version": "0.3.1",
"description": "React components and hooks for mixed RTL/LTR and streaming AI messages.",
"license": "MIT",
"author": {
Expand Down
2 changes: 2 additions & 0 deletions packages/spec/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @bidilens/spec

## 0.3.1

## 0.3.0

## 0.2.0
Expand Down
2 changes: 1 addition & 1 deletion packages/spec/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/spec",
"version": "0.3.0",
"version": "0.3.1",
"description": "Versioned language-neutral JSON Schemas for BidiLens analysis, security, and streaming output.",
"license": "MIT",
"author": {
Expand Down
8 changes: 8 additions & 0 deletions packages/svelte/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @bidilens/svelte

## 0.3.1

### Patch Changes

- Updated dependencies [35b2ce6]
- Updated dependencies [61aa9f6]
- @bidilens/core@0.3.1

## 0.3.0

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/svelte/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@bidilens/svelte",
"version": "0.3.0",
"version": "0.3.1",
"description": "Svelte store adapter for bidirectional streaming messages.",
"license": "MIT",
"author": {
Expand Down
8 changes: 8 additions & 0 deletions packages/terminal/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# @bidilens/terminal

## 0.3.1

### Patch Changes

- Updated dependencies [35b2ce6]
- Updated dependencies [61aa9f6]
- @bidilens/core@0.3.1

## 0.3.0

### Patch Changes
Expand Down
Loading