Skip to content

Releases: CodeinScrubs/BidiLens

BidiLens 0.3.0

Choose a tag to compare

@CodeinScrubs CodeinScrubs released this 28 Jul 11:08
Immutable release. Only release title and notes can be modified.
3316a51

BidiLens 0.3.0

BidiLens 0.3.0 makes paragraph direction independent from visual alignment. Applications can keep Persian/Arabic/Hebrew text correctly RTL while deliberately aligning it to the physical left, without mutating source text or disturbing pure-LTR content.

Highlights

  • Preserve caller-authored alignment across DOM, React, Vue, Web Components, Android Views, and Compose.
  • Add the Vue textAlign API and zero-specificity DOM defaults.
  • Keep whitespace-joined opposite-direction phrases such as page 97 in source order.
  • Add source-available Swift/UIKit support with shared-corpus tests and iOS Simulator compilation.
  • Add source-available .NET 8/WPF support with state restoration, executable corpus verification, package builds, and a runnable sample.
  • Harden Android API 35 device CI with KVM and explicit package-service readiness.

Install

npm install @bidilens/core@0.3.0

All 12 @bidilens/* packages are aligned at 0.3.0 and use the latest npm tag.

Verification

Publication used npm trusted publishing with SLSA provenance. The attached workflow-retained tarballs match public registry integrity. npm-release-manifest.json, the CycloneDX 1.7 SBOM, and SHA256SUMS.txt provide independent release evidence.

Native-platform boundary

The Swift/UIKit and .NET/WPF implementations are included and compiler-tested in source, but are not yet published to Swift Package Index or NuGet and do not yet have physical-device accessibility/IME laboratory evidence. Android 0.1.1 remains the currently published Maven release.

BidiLens Android 0.1.1

Choose a tag to compare

@CodeinScrubs CodeinScrubs released this 28 Jul 08:05
Immutable release. Only release title and notes can be modified.
c59a5b6

BidiLens Android 0.1.1 is the first signed Android release published to Maven Central.

Maven Central coordinates

dependencies {
    implementation(io.github.codeinscrubs.bidilens:bidilens-core:0.1.1)
    implementation(io.github.codeinscrubs.bidilens:bidilens-android-views:0.1.1)
    implementation(io.github.codeinscrubs.bidilens:bidilens-android-compose:0.1.1)
}

Use mavenCentral() in dependency repositories. bidilens-core and bidilens-android-views support Android API 21+; bidilens-android-compose supports API 23+.

Integrity and provenance

  • Release commit: c59a5b674482081980fc886f6d38036f88af5dc8
  • CI run: 30337482079
  • Maven Central release run: 30339097846
  • Central deployment: 82599fc9-fc43-44ba-8268-f7bd6c68a9a6
  • OpenPGP signing-key fingerprint: B635 C698 5216 FC5D EB5D DCDD 68BE 2D5C E18F 72C6

All 15 primary Central files (AAR, sources JAR, documentation JAR, POM, and Gradle module metadata for each module) were downloaded after publication and matched the retained workflow outputs byte-for-byte. All 15 detached OpenPGP signatures verified, all 30 published MD5/SHA-1 checksums matched, and a clean Gradle consumer with an empty Maven Local resolved all three modules from Maven Central and built successfully.

SHA256SUMS.txt covers every other attached release asset. The Central evidence archive includes the public files, signatures, and Central checksums. The Maven repository archive is suitable for offline inspection or local-repository testing.

Scope and limitations

BidiLens provides conservative direction detection, isolation, Android Views helpers, Jetpack Compose helpers, and editable-text selection preservation. It does not replace Unicode Bidirectional Algorithm rendering or guarantee every OEM keyboard, accessibility service, custom renderer, or physical-device combination without integration testing. Physical OEM/IME/TalkBack validation and external production pilots remain ongoing. The documentation JARs are intentionally minimal compatibility artifacts; source-level API documentation remains in the repository.

BidiLens Android v0.1.0

Choose a tag to compare

@CodeinScrubs CodeinScrubs released this 28 Jul 05:34
Immutable release. Only release title and notes can be modified.
85b80c0

BidiLens Android v0.1.0 is the first native Android release for mixed Persian/Arabic/Hebrew and English text. It provides a pure-Kotlin core plus non-destructive Android Views and Jetpack Compose adapters.

Verified source

  • Commit: 85b80c0ce64c0dcc679b372914e57ad8aeeba7e9
  • CI: all 13 jobs passed, including Android libraries/sample and API 35 Views + Compose UI tests
  • Canonical parity: 918 shared direction/isolation fixtures
  • Local device evidence: API 36.1
  • External consumer: clean Gradle build against the bundled Maven repository

Artifacts

  • bidilens-android-v0.1.0-maven-repository.zip: recommended no-registry distribution; unzip into your project and add the extracted directory as a local Maven repository
  • bidilens-core-0.1.0.aar: Kotlin analysis and isolation planning
  • bidilens-android-views-0.1.0.aar: TextView/EditText integration
  • bidilens-android-compose-0.1.0.aar: Compose display/edit integration
  • bidilens-sample-android-v0.1.0-debug.apk: debug-only demonstration app; not a production application
  • bidilens-android-v0.1.0-sbom.cdx.json: CycloneDX SBOM for the source release
  • SHA256SUMS: integrity hashes for every attached binary/data artifact

Gradle coordinates inside the Maven bundle

dependencies {
    implementation(io.github.codeinscrubs.bidilens:bidilens-core:0.1.0)
    implementation(io.github.codeinscrubs.bidilens:bidilens-android-views:0.1.0)
    implementation(io.github.codeinscrubs.bidilens:bidilens-android-compose:0.1.0)
}

Read android/README.md before integration. Android Views hosts must deliberately set android:supportsRtl=true; BidiLens does not force the application-wide flag. Ordinary LTR text in an LTR host remains an exact no-op, editable values do not receive bidi controls, and logical source strings are never reversed.

Distribution boundary

These coordinates are not yet available from Maven Central. The attached Maven repository, source checkout, and AARs are the supported distribution paths for this release. Signed Central publication still requires verified namespace ownership and maintainer-controlled signing/portal credentials.

BidiLens 0.2.0

Choose a tag to compare

@CodeinScrubs CodeinScrubs released this 27 Jul 19:26
Immutable release. Only release title and notes can be modified.

BidiLens 0.2.0 hardens mixed RTL/LTR handling and the release boundary.

Highlights:

  • atomic category-selective bidi-control sanitization with backward-compatible risk-only behavior;
  • contextual hidden ZWNJ/ZWJ, WORD JOINER, and midstream BOM diagnostics;
  • representative coverage for 32 RTL scripts and linear multiline fenced-code recognition;
  • packed mixed-direction and pure-LTR non-interference probes across the public adapters;
  • regenerated self-contained GitHub Action aligned with the 0.2.0 CLI.

Verification:

  • exact source commit: eb28cac;
  • all 11 protected main CI jobs passed;
  • protected OIDC publication run 30297697861 passed;
  • all 12 npm packages are public at 0.2.0, tagged latest, and expose SLSA provenance;
  • attached tarballs match both the retained SHA-256 manifest and npm SHA-512 integrity metadata;
  • attached CycloneDX 1.7 SBOM passed repository validation.

Scope remains honest: this is a JavaScript/web beta, not a claim of universal native-platform support or native-speaker certification.

BidiLens 0.1.1 - reliability patch

Choose a tag to compare

@CodeinScrubs CodeinScrubs released this 26 Jul 04:36
Immutable release. Only release title and notes can be modified.
09b6d8b

BidiLens 0.1.1 is a synchronized reliability patch for the public JavaScript/web beta.

Correctness

  • Neutral and technical-only content now inherits host direction consistently across adapters unless the caller supplies an explicit fallback.
  • DOM reapplication restores author-owned dir and inline direction state when content becomes neutral.
  • <bidi-message> preserves current author light DOM when BidiLens takes rendering ownership.
  • The CLI accepts explicit empty text, rejects ambiguous inputs, validates corpus structure, reports its package version dynamically, and emits safe SARIF paths across Windows volumes.

Release engineering

  • All 12 packages ship aligned 0.1.1 versions and package-level changelogs.
  • Release tooling derives versions from manifests, requires exact confirmation, publishes through npm OIDC trusted publishing, and verifies registry integrity.
  • Compatible Playwright, ESLint, Svelte, Vite React plugin, and pinned GitHub Action updates are included.

Verification

  • 16 Vitest files / 355 tests, strict TypeScript, ESLint, Unicode 17 reproducibility, and 918 corpus cases.
  • 24 visual tests across Chromium, Firefox, and WebKit.
  • All 12 tarballs pass size, type-layout, clean-consumer install, runtime, CLI, and packed-example checks.
  • Zero known dependency vulnerabilities; CycloneDX 1.7 SBOM included.
  • npm SHA-512 integrity and SLSA provenance independently verified for every package.

BidiLens remains an honest public web beta: native/desktop packages, native-speaker corpus certification, accessibility laboratory validation, an external security audit, and downstream production adoption remain documented gates.

See CHANGELOG.md and limitations.

BidiLens v0.1.0

Choose a tag to compare

@CodeinScrubs CodeinScrubs released this 26 Jul 02:50
Immutable release. Only release title and notes can be modified.

First public web beta

BidiLens is a standards-aligned, conservative bidirectional-text toolkit for mixed RTL/LTR content. It helps web applications render Persian, Arabic, Hebrew, Urdu, English, code, URLs, and other mixed-direction text predictably while preserving a strict no-op path for ordinary pure-LTR text.

Install

npm install @bidilens/core

Choose only the adapters you need, for example:

npm install @bidilens/dom
npm install @bidilens/react
npm install @bidilens/vue
npm install @bidilens/svelte

Published packages

  • @bidilens/core
  • @bidilens/spec
  • @bidilens/dom
  • @bidilens/html
  • @bidilens/markdown
  • @bidilens/playwright
  • @bidilens/react
  • @bidilens/svelte
  • @bidilens/terminal
  • @bidilens/vue
  • @bidilens/web-component
  • @bidilens/cli

Highlights

  • Unicode-aware paragraph direction and mixed-script analysis
  • Plain-text, HTML, Markdown, DOM, terminal, and framework adapters
  • Conservative pure-LTR no-op behavior, including exact-reference preservation where the API contract permits
  • Existing author intent is respected by default
  • Incremental/streaming support and protection against unsafe bidi controls
  • Browser visual regression coverage across Chromium, Firefox, and WebKit
  • Reproducible Unicode data generation and a 918-case conformance/regression corpus
  • MIT licensed

Release verification and supply chain

  • The tagged source is commit 8132ee86800bcb85ae906f211f5ee79e4748edf1.
  • The publication workflow completed successfully and verified every registry SHA-512 integrity value against its retained tarball.
  • All 12 npm packages include npm-generated SLSA provenance.
  • Future publishing is bound to GitHub Actions trusted publishing (OIDC); the temporary bootstrap token was revoked and package settings disallow token-based publication.
  • This release includes the exact 12 npm tarballs, npm-release-manifest.json with SHA-256/SHA-512 evidence, and a validated CycloneDX 1.7 SBOM.
  • A clean external consumer installed all packages from the public registry and passed runtime, CLI, mixed-direction, streaming, and pure-LTR no-op smoke tests with zero reported npm audit vulnerabilities.

Transparency note: @bidilens/core@0.1.0 was accepted by npm during an earlier attempt from parent commit 8caf5aa after registry propagation exceeded the workflow's former 60-second wait. The final successful workflow reproduced the exact core tarball and verified its immutable registry SHA-512; the remaining 11 packages were published from the tagged commit.

Current limits

This is a web/JavaScript beta, not a universal operating-system text renderer. Native mobile, desktop, editor, and model-output integrations require platform-specific adapters. Automatic inference cannot recover every ambiguous author intent, and applications must still choose correct semantic markup and review security-sensitive transformations. Independent security, accessibility, native-language, and large-scale production reviews remain welcome and are not claimed as completed. Publication is not evidence of third-party or enterprise adoption.