feat: publish Regex Tools 0.2.0
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
import { useEffect, useRef } from "react";
|
||||
import { DEFAULT_REGEX_LIMITS } from "../regex/execution/request-limits";
|
||||
import {
|
||||
DEFAULT_GENERATION_SETTINGS,
|
||||
GENERATION_LIMITS,
|
||||
} from "../regex/generation/generation-limits";
|
||||
import { manifest } from "../toolbox/manifest";
|
||||
|
||||
const releaseSourceUrl = `https://git.add-ideas.de/zemion/regex-tools/src/tag/v${manifest.version}`;
|
||||
@@ -43,10 +47,11 @@ export function HelpDialog({
|
||||
<section>
|
||||
<h3>What runs where</h3>
|
||||
<p>
|
||||
Syntax parsing and actual ECMAScript execution run in separate,
|
||||
killable browser workers. Patterns, subjects and projects are never
|
||||
uploaded. There is no backend, account, telemetry, CDN dependency,
|
||||
or executable replacement function.
|
||||
Syntax parsing and actual ECMAScript or PCRE2 execution run in
|
||||
separate, killable browser workers. PCRE2 is the bundled,
|
||||
self-hosted 10.47 WebAssembly engine. Patterns, subjects and
|
||||
projects are never uploaded. There is no backend, account,
|
||||
telemetry, CDN dependency, or executable replacement function.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
@@ -56,8 +61,47 @@ export function HelpDialog({
|
||||
syntax provider. The extraction tree contains actual browser-engine
|
||||
matches and captures. Replacement mode adds a typed token tree and
|
||||
bounded per-match contribution/range mapping over those actual
|
||||
matches. None is an internal V8, SpiderMonkey or JavaScriptCore
|
||||
execution trace.
|
||||
matches. These views are not internal engine traces. The separate
|
||||
PCRE trace viewer shows actual bounded automatic callouts reported
|
||||
by PCRE2; its adjacent-position movement labels are derived and it
|
||||
is not a complete record of every internal action. Browser
|
||||
ECMAScript exposes no corresponding V8, SpiderMonkey or
|
||||
JavaScriptCore trace API.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h3>Advisory analysis</h3>
|
||||
<p>
|
||||
Static risk findings are ECMAScript-2025-specific heuristics, and
|
||||
generated-input growth observations describe only the selected
|
||||
bounded samples. Neither proves safety or general complexity. Growth
|
||||
and cold/warm benchmark timing run in a separate killable worker and
|
||||
never include the PCRE2 trace path.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h3>Generated cases</h3>
|
||||
<p>
|
||||
ECMAScript generator v1 deterministically samples supported
|
||||
normalized-AST paths from an explicit seed. Every intended positive
|
||||
and negative subject runs through the selected actual engine before
|
||||
it can become a test; candidates with the wrong outcome are
|
||||
discarded. The coverage report names unsupported constructs.
|
||||
Sampling is not proof of complete language coverage. PCRE2 remains
|
||||
unavailable until its structural provider exposes the required AST;
|
||||
its syntax is never reinterpreted as ECMAScript.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h3>Pattern formatting</h3>
|
||||
<p>
|
||||
The ECMAScript formatter makes only grammar-backed literal/control
|
||||
escape changes; it does not insert layout whitespace or reinterpret
|
||||
PCRE2 syntax. Applying a preview requires independent source and
|
||||
candidate reparsing, actual-engine match/replacement comparison,
|
||||
every applicable exact unit test, and an explicit confirmation.
|
||||
Passing bounded checks is evidence for those snapshots, not proof
|
||||
for every possible subject.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
@@ -105,6 +149,78 @@ export function HelpDialog({
|
||||
<dt>Unit-test suite wall time</dt>
|
||||
<dd>60 seconds</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Corpus input</dt>
|
||||
<dd>
|
||||
{DEFAULT_REGEX_LIMITS.maximumCorpusDocuments.toLocaleString()}{" "}
|
||||
documents · {DEFAULT_REGEX_LIMITS.corpusHardBytes / 1024 / 1024}{" "}
|
||||
MiB
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Corpus wall time</dt>
|
||||
<dd>
|
||||
{DEFAULT_REGEX_LIMITS.maximumCorpusWallTimeMs / 60_000} minutes
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Analysis wall time</dt>
|
||||
<dd>
|
||||
{DEFAULT_REGEX_LIMITS.maximumBenchmarkWallTimeMs / 1_000}{" "}
|
||||
seconds
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Benchmark iteration cap</dt>
|
||||
<dd>
|
||||
{DEFAULT_REGEX_LIMITS.maximumBenchmarkIterations.toLocaleString()}
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Growth probe steps</dt>
|
||||
<dd>24</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Generated cases</dt>
|
||||
<dd>
|
||||
{DEFAULT_REGEX_LIMITS.maximumGeneratedCases.toLocaleString()}{" "}
|
||||
retained ·{" "}
|
||||
{GENERATION_LIMITS.maximumCandidateAttempts.toLocaleString()}{" "}
|
||||
attempts
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Generation defaults</dt>
|
||||
<dd>
|
||||
{DEFAULT_GENERATION_SETTINGS.perCaseTimeoutMs} ms per case ·{" "}
|
||||
{DEFAULT_GENERATION_SETTINGS.maximumWallTimeMs / 1_000} seconds
|
||||
aggregate
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Generated subject text</dt>
|
||||
<dd>
|
||||
{GENERATION_LIMITS.maximumTotalSubjectBytes / 1024 / 1024} MiB
|
||||
aggregate hard cap
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Formatter validation</dt>
|
||||
<dd>1,000 tests · 60 seconds aggregate</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Independent corpus lines</dt>
|
||||
<dd>
|
||||
{DEFAULT_REGEX_LIMITS.maximumCorpusLines.toLocaleString()}
|
||||
</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Corpus applied output</dt>
|
||||
<dd>
|
||||
{DEFAULT_REGEX_LIMITS.maximumCorpusOutputBytes / 1024 / 1024}{" "}
|
||||
MiB
|
||||
</dd>
|
||||
</div>
|
||||
</dl>
|
||||
<p>
|
||||
A timeout terminates the worker. It means “timed out”, never “no
|
||||
@@ -116,7 +232,15 @@ export function HelpDialog({
|
||||
<p>
|
||||
Ad-hoc test text is excluded from local saves and exports by
|
||||
default. Test definitions are deliberate project data. Import is
|
||||
validated and paused until you review and run it.
|
||||
validated and paused until you review and run it. Corpus documents,
|
||||
contents, outputs and results are always ephemeral and excluded from
|
||||
projects and IndexedDB. Analysis settings and results are likewise
|
||||
ephemeral. Generated-case settings and review results are ephemeral;
|
||||
only cases explicitly added to the test suite persist, together with
|
||||
their bounded seed and generator provenance. Test subjects remain
|
||||
excluded unless separately opted in. Formatter previews and
|
||||
validation observations are ephemeral; only an explicitly applied
|
||||
pattern enters workbench/project state.
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
|
||||
Reference in New Issue
Block a user