v0.2.0 4f9c11b

2026-10-18

4f9c11bMerge pull request 'feat(action): parse action.yml like GitHub, ParseUses and ParseImage' (#8) from feat/action-manifest into main merge GPG Verifiedtag v0.2.0bnema
43e3663docs(action): recount the cases, document runner-mode keys, int32 and folding, note the Lint null key GPG Verifiedbrice
110f7f5fix(action): keys resolve like values, int32 wraparound, OrdinalIgnoreCase folding GPG Verifiedbrice
73aa774test(expr): pass the nil context through a variable (staticcheck SA1012) GPG Verifiedbrice
a2f934cfeat(action): parse action.yml manifests like GitHub, ParseUses and ParseImage GPG Verifiedbrice
28f9d6eMerge pull request 'feat(expr): fromJSON fails with Json.NET's message, as GitHub prints it' (#7) from feat/expr-newtonsoft-errors into main merge GPG Verifiedtag v0.1.0bnema
c8bd86bfeat(template): runner mode for the reader (depth, error limit, YAML restrictions) GPG Verifiedbrice
85fcfb7Merge pull request 'fix(workflow): ErrExcludeUnknownKey and Workflow.Ancestors for GitHub parity' (#6) from fix/workflow-github-parity into main merge GPG Verifiedbnema
0e48653feat(expr): fromJSON fails with Json.NET's message, as GitHub prints it GPG Verifiedbrice
1e8ab59test(workflow): pin Ancestors on cycles and unknown needs, describe the cut-down fixture GPG Verifiedbrice
8e90c04feat(workflow): add Workflow.Ancestors for the transitive needs of success() GPG Verifiedbrice
c18027dfeat(workflow): export ErrExcludeUnknownKey for an exclude key outside the matrix GPG Verifiedbrice
226f9bdMerge pull request 'feat(workflow): export ErrTooManyConfigurations for the matrix limit' (#5) from feat/matrix-limit-sentinel into main merge GPG Verifiedbnema
167d573Merge pull request 'fix(workflow): align push filters, skip directives and matrix rules with github.com recordings' (#4) from fix/recorded-rules into main merge GPG Verifiedbnema
ab2c1f4docs(workflow): say ErrTooManyConfigurations does not cover the product cap GPG Verifiedbrice
7ce70defeat(workflow): export ErrTooManyConfigurations for the matrix limit GPG Verifiedbrice
b62d011test(workflow): check SkipCI, MatchPush and Parse against the conformance corpus when ERMITE_CORPUS is set GPG Verifiedbrice
723958fdocs(workflow): say what was recorded, what was observed on the run page and what is assumed GPG Verifiedbrice
87e6700refactor(workflow): unexport the matrix configuration limit error GPG Verifiedbrice
98ea59fdocs(workflow): record what the github.com scenarios settled, replay the glob scenarios GPG Verifiedbrice
21505b0test(workflow): pin the invalid workflow messages of the recorded scenarios GPG Verifiedbrice
2da867ffix(workflow): report matrix limit and exclude errors like GitHub, omit null and empty values from job names GPG Verifiedbrice
ccaa3bbfix(workflow): skip directives are case-sensitive and skip-checks needs two blank lines GPG Verifiedbrice
c69a394Merge pull request 'feat(expr): follow the C# runner semantics' (#3) from test/expr-fixtures into main merge GPG Verifiedbnema
dcaf616test(workflow): replay the recorded tag and branch push filters GPG Verifiedbrice
9668b06fix(expr): write negative zero as -0, like the legacy engine that runs today GPG Verifiedbrice
334d109fix(workflow): evaluate the first 3000 changed files of a push, not 300 GPG Verifiedbrice
edc4d79docs(expr): PORTING.md: engines finding, exact match claims, runner commit, negative zero, lone surrogates (GO-007) GPG Verifiedbrice
d706e56test(expr): build the runner's newer expression engine and compare it with the legacy one GPG Verifiedbrice
a970bd2test(workflow): rewrite only the reference's side and require the runner suffix on what we report (GO-006) GPG Verifiedbrice
736f11ebuild(expr): pin the runner commit and runtime of gen/runner, require RunnerSrc (GO-005) GPG Verifiedbrice
cf6b697style(expr): gofmt GPG Verifiedbrice
74a3afbtest(expr): excuse fromJSON error text differences only when both sides are reader failures (GO-004) GPG Verifiedbrice
c13f270fix(expr): fromJSON leading zeros are octal, '/' after a literal and a leading ',' like Json.NET (GO-002, GO-003) GPG Verifiedbrice
773aee1perf(expr): compute line starts once and extend && / || chains in place (GO-001) GPG Verifiedbrice

2026-10-12

34c7f70chore(expr): remove the helpers of the replaced JavaScript parser, fix lint GPG Verifiedbrice
5f9df8bfix(expr): tokenize and parse like the runner (whitespace, errors, positions, depth), built-ins win over extensions GPG Verifiedbrice
3b23706fix(expr): evaluate built-in arguments lazily and parse format strings like the runner GPG Verifiedbrice
900025efix(expr): read fromJSON with Json.NET's leniency, keep document order and write toJSON like the runner GPG Verifiedbrice
75fcba3fix(expr): parse strings and number literals like the runner's ParseNumber GPG Verifiedbrice
4adbc1afix(expr): compare and search strings with OrdinalIgnoreCase, as the runner does GPG Verifiedbrice
633b184fix(expr): format numbers like the runner (G15), and write them that way in toJSON GPG Verifiedbrice
5f59a46fix(expr): unescape every doubled quote in string literals, as the runner does GPG Verifiedbrice
f5fe276test(expr): excuse an oracle mismatch only where the C# runner gives this package's answer GPG Verifiedbrice
3251a55test(expr): build the runner's Expressions2 engine and record its answers on the oracle corpus GPG Verifiedbrice
3a9395etest(expr): port the runner's ExpressionParserL0 and ConditionFunctionsL0 GPG Verifiedbrice
9588af7test(expr): replay the languageservices fixtures like xlang.test.ts GPG Verifiedbrice
922360btest(expr): add the languageservices cross-language expression fixtures GPG Verifiedbrice
b6c4c3aMerge pull request 'feat(workflow): workflow schema, model, filters and matrix' (#2) from feat/workflow into main merge SSH Unverifiedbnema
a52e9b5build(gen): pin the reference packages, regenerate their answers from a clean npm ci GPG Verifiedbrice

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 3

↑↓ moveenter openesc close