Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
364 commits
Select commit Hold shift + click to select a range
74b4881
chore(codebase): release v4.1.49
eser Apr 1, 2026
4490b18
chore(deps-dev): bump @anthropic-ai/sdk (#96)
dependabot[bot] Apr 1, 2026
116e358
fix(shell): suppress pty tcgetattr noise and skip type-check on compile
eser Apr 2, 2026
b1aa2d9
fix(ai): pipe prompts via stdin to avoid E2BIG on large inputs
eser Apr 2, 2026
a403390
fix(codebase): validate all path parts upfront and fix nested object …
eser Apr 2, 2026
3e36cfb
refactor(noskills): remove FREE phase, make IDLE default permissive s…
eser Apr 2, 2026
2b19fd0
chore(codebase): release v4.1.50
eser Apr 2, 2026
50d17d2
feat(noskills): add project root discovery and two-tier rule delivery
eser Apr 2, 2026
0317fc1
feat(noskills): add web dashboard, event system, and TUI tab bar
eser Apr 2, 2026
6a3d74e
chore(codebase): release v4.1.51
eser Apr 2, 2026
944f722
fix(noskills-web): sanitize error responses and add missing dependency
eser Apr 2, 2026
8607c71
chore(codebase): release v4.1.52
eser Apr 2, 2026
a8f3f62
feat(shell,noskills): add TUI widget system and spec delegation workflow
eser Apr 3, 2026
cefe5e9
feat(noskills,shell): add learnings, diagrams, follow-ups, xterm vterm
eser Apr 4, 2026
1ac1dea
chore(codebase): release v4.1.53
eser Apr 4, 2026
b5f00a7
fix(ajan,cli): use .wasm.bin variant to bypass deno compile wasm vali…
eser Apr 4, 2026
96b8ad6
chore(codebase): release v4.1.54
eser Apr 4, 2026
8d17083
chore(nix): update binary hashes for v4.1.54
github-actions[bot] Apr 4, 2026
31664fe
feat(noskills,codebase): add Jidoka enforcement, review dimensions, a…
eser Apr 4, 2026
b0ac626
chore(codebase): release v4.1.55
eser Apr 5, 2026
4e676bf
chore(nix): update binary hashes for v4.1.55
github-actions[bot] Apr 5, 2026
9178a32
docs(noskills): update phase names, add Jidoka enforcement and review…
eser Apr 5, 2026
d063a36
refactor(noskills): rename REVIEW→REFINEMENT, DRAFT→PROPOSAL phases
eser Apr 6, 2026
109f95a
refactor(ajan): lazy-load FFI backends with async open
eser Apr 6, 2026
f5ea80d
chore(codebase): release v4.1.56
eser Apr 6, 2026
125c79c
chore(nix): update binary hashes for v4.1.56
github-actions[bot] Apr 6, 2026
068c85b
feat(noskills): unified state layout
eser Apr 6, 2026
20056c5
feat(noskills): update command structure and enhance documentation
eser Apr 15, 2026
bdc716f
chore(deps): bump vite (#101)
dependabot[bot] Apr 15, 2026
ae175fa
chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/o…
dependabot[bot] Apr 15, 2026
93bb41d
ci(deps): bump pnpm/action-setup from 5 to 6 in the actions group (#114)
dependabot[bot] Apr 15, 2026
b7ff0a0
chore(deps): bump the npm-deps group across 1 directory with 5 update…
dependabot[bot] Apr 15, 2026
57a0236
chore(deps): bump the go-deps group across 1 directory with 11 update…
dependabot[bot] Apr 15, 2026
7a9b459
chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlplog/otl…
dependabot[bot] Apr 15, 2026
f65faaa
chore(*): replace deno.lock with pnpm-lock.yaml and update related co…
eser Apr 15, 2026
32cd74e
chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/…
dependabot[bot] Apr 15, 2026
ddd7246
chore(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/o…
dependabot[bot] Apr 15, 2026
a709992
chore(deps): bump go.opentelemetry.io/otel/sdk in /apps/services (#105)
dependabot[bot] Apr 15, 2026
ae8a203
chore(deps): bump the go-deps group across 1 directory with 18 update…
dependabot[bot] Apr 15, 2026
90101e1
chore(config): switch nodeModulesDir from auto to manual for pnpm
eser Apr 15, 2026
f540509
ci(build): add pnpm install to workflow jobs
eser Apr 15, 2026
9a44d09
feat: @eser -> @eserstack :(
eser May 3, 2026
2b7e12b
feat(@eserstack): @eser -> @eserstack rename and cross-platform support
eser Jun 7, 2026
8f65ffe
feat(noskills): add decision-ledger instrumentation and read APIs
eser Jun 7, 2026
d09fa16
feat(noskills): add measurement-draft ledger projection and CI pnpm s…
eser Jun 7, 2026
c0ed308
feat(workflowfx): handle non-unix/windows targets in setupCancelKill
eser Jun 7, 2026
2440198
feat(workflowfx): handle non-unix/windows targets in setupCancelKill …
eser Jun 7, 2026
7eae1b8
feat(workflowfx): handle non-unix/windows targets in setupCancelKill …
eser Jun 7, 2026
f92bf49
chore(release): bump to 4.1.57
eser Jun 7, 2026
bddc8fd
feat(workflowfx): handle non-unix/windows targets in setupCancelKill …
eser Jun 7, 2026
2cd4825
feat(mux): add frontend-neutral terminal multiplexer with native PTY
eser Jun 19, 2026
fb72f36
feat(build): generate JSR manifests and fix P0 audit findings
Jul 31, 2026
0d5c9cb
fix(build): unpin ajan platform deps to unblock frozen-lockfile
eser Aug 1, 2026
2c98fbd
fix(build): make JSR manifest generator dependency-free
eser Aug 1, 2026
4b57fb7
fix(cli): restore ajan command dropped in the @eserstack rename
eser Aug 1, 2026
abbd612
fix(cli): mark @eserstack/ajan external in the npm bundle
eser Aug 1, 2026
eb8de4c
fix(cli): declare @eserstack/ajan dependency for the ajan command
eser Aug 2, 2026
961c444
chore(deps): bump github.com/jackc/pgx/v5 from 5.9.1 to 5.9.2
dependabot[bot] Apr 23, 2026
b177218
chore(deps-dev): bump @anthropic-ai/sdk from 0.89.0 to 0.91.1 (#124)
dependabot[bot] Aug 2, 2026
540652a
fix(opencode): generate valid tools object and MCP command array for …
salihdev0 Aug 2, 2026
3c6c079
chore(deps): bump github.com/quic-go/quic-go from 0.59.0 to 0.59.1 (#…
dependabot[bot] Aug 2, 2026
deaee1c
chore(deps): bump github.com/quic-go/quic-go (#135)
dependabot[bot] Aug 2, 2026
802aca2
chore(deps): bump esbuild from 0.24.2 to 0.28.1 (#138)
dependabot[bot] Aug 2, 2026
a230ffa
chore(deps): bump the npm_and_yarn group across 2 directories with 2 …
dependabot[bot] Aug 2, 2026
29d1721
chore(deps): bump @anthropic-ai/sdk (#141)
dependabot[bot] Aug 2, 2026
a7fa07f
chore(deps): bump the go-deps group across 1 directory with 24 update…
dependabot[bot] Aug 2, 2026
b1d4f27
ci(deps): bump the actions group across 1 directory with 6 updates (#…
dependabot[bot] Aug 2, 2026
1f01d58
chore(deps): bump golang.org/x/net from 0.53.0 to 0.55.0 (#144)
dependabot[bot] Aug 2, 2026
b7b425d
chore(deps): bump the npm-deps group with 20 updates (#145)
dependabot[bot] Aug 2, 2026
b55ac1f
chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 (#146)
dependabot[bot] Aug 2, 2026
94c527e
chore(deps): bump github.com/getkin/kin-openapi from 0.140.0 to 0.144…
dependabot[bot] Aug 2, 2026
71b1ea3
chore(deps): bump google.golang.org/grpc from 1.80.0 to 1.82.1 (#149)
dependabot[bot] Aug 2, 2026
1c24505
chore(deps): bump github.com/quic-go/webtransport-go (#150)
dependabot[bot] Aug 2, 2026
2508aa1
chore(deps): bump sharp from 0.33.5 to 0.35.0 (#151)
dependabot[bot] Aug 2, 2026
92f0814
chore(deps): updated dependencies.
eser Aug 2, 2026
77b4b59
chore: removed redundant go.work.
eser Aug 2, 2026
f3062f1
feat(acp): migrate agent spawning to the Agent Client Protocol
eser Aug 5, 2026
9630555
fix(shellfx): wait for the stderr drain before closing the read end
eser Aug 5, 2026
11c809d
chore(deps): bump hono from 4.12.33 to 4.13.0 (#152)
dependabot[bot] Aug 5, 2026
116ef60
fix(ci): use stable Go in release.yml
eser Aug 5, 2026
3882eb2
refactor(acp): run the shim in-process and delete the eser-acp binary
eser Aug 5, 2026
0fc23fd
chore(release): drop stale shim comment from the brew formula
eser Aug 6, 2026
c58e6bc
refactor(cli): ship noskills and laroux as deno-compiled binaries
eser Aug 6, 2026
168a99f
refactor(cli): make system handlers app-aware, share PATH lookup
eser Aug 6, 2026
35889e5
refactor: docs structure.
eser Aug 7, 2026
77cdebf
fix(codebase): report correct target version in dry-run release
eser Aug 7, 2026
20b5c71
fix(codebase): stage only tracked pathspecs during release
eser Aug 8, 2026
4b3853e
chore(codebase): release v4.3.0
eser Aug 8, 2026
1e3ddb3
fix(build): mark FFI packages external in all npm builds
eser Aug 8, 2026
5077c27
chore(codebase): correct changelog heading for v4.3.0 release
eser Aug 8, 2026
75aa92e
chore(codebase): make tag push the release trigger
eser Aug 8, 2026
68c94b6
fix(cli): make the ajan load error usable without Deno
eser Aug 8, 2026
ec9256c
fix(ci): install the npm smoke-test binary as a consumer dependency
eser Aug 8, 2026
4a03973
chore(deps): bump the go-deps group with 15 updates (#153)
dependabot[bot] Aug 9, 2026
52a8645
chore(deps): bump the npm-deps group with 2 updates (#154)
dependabot[bot] Aug 9, 2026
d78ce57
ci(deps): bump the actions group with 3 updates (#155)
dependabot[bot] Aug 9, 2026
b4ffb79
fix(security): harden path, TLS pinning, and regex guards
eser Aug 9, 2026
c06b36c
fix(security): pin on resumed sessions, compare DataDir by identity
eser Aug 9, 2026
fc183ca
chore(codebase): release v4.3.1
eser Aug 9, 2026
b2f019c
fix(ajan): harden FFI bridge, config parsing and HTTP security
eser Sep 12, 2026
fd3e4d2
build(go): pin CI Go to go.mod and bump golangci-lint to v2.13.2
eser Sep 12, 2026
13b9228
chore(codebase): release v4.4.0
eser Sep 12, 2026
7e24ef7
build(go): pin toolchain, tidy ajan deps and check go.mod drift in make
eser Sep 12, 2026
3f4fb69
chore(codebase): release v4.5.0
eser Sep 12, 2026
ed6c441
build(npm): bundle @eserstack/ajan instead of marking it external
eser Sep 13, 2026
b6f059b
feat(codebase): add validate-self-imports check for JSR publish safety
eser Sep 13, 2026
869c90c
fix(codebase): surface gh stderr on release failures, skip published npm
eser Sep 13, 2026
670b8c8
chore(codebase): release v4.5.1
eser Sep 13, 2026
0810882
ci(release): make the release chain resumable and prove it on main be…
eser Sep 16, 2026
2511184
ci(release): let post-gate jobs run on a post-publish resume
eser Sep 17, 2026
01063c9
fix(ajan): pin platform packages to the exact CLI version and publish…
eser Sep 17, 2026
fa912d7
ci(build): run the Node and Bun cross-runtime checks from a packed in…
eser Sep 17, 2026
88bd8be
fix(codebase): align Go secrets validator with TypeScript and speed i…
eser Sep 17, 2026
0af9b58
chore(deps): update all npm and Go dependencies to latest
eser Sep 17, 2026
0c089fb
refactor: make the platform packages workspace members linked with wo…
eser Sep 17, 2026
8b46c2d
chore(codebase): release v4.5.2
eser Sep 17, 2026
f739495
fix: disable Deno's dependency-age gate and compile for the host in p…
eser Sep 17, 2026
53c8840
fix: apply audit fixes and restructure agent skills
eser Sep 25, 2026
64939e6
fix: quote skill descriptions and flag unquoted YAML values
eser Sep 25, 2026
8e3a9ae
chore(*): completed some backlog tasks.
eser Oct 5, 2026
7d958e2
feat(*): port noskills to Go and render mux panes from server screens
eser Oct 25, 2026
3960a8e
fix(standards): detect deno compile binaries as installed binaries
eser Oct 25, 2026
a79a4d3
feat(*): add forwarding stub binaries for the retired laroux and nosk…
eser Oct 25, 2026
7914993
chore(*): add the Node toolchain configuration and editor and agent s…
eser Oct 25, 2026
09ab6f7
style(*): format the repository with oxfmt
eser Oct 25, 2026
037a4f9
chore(*): ignore the oxfmt reformat in git blame
eser Oct 25, 2026
dc94aff
chore(*): rewrite deno lint pragmas for oxlint
eser Oct 25, 2026
7e895c1
chore(*): move tests to node:test and benches to mitata
eser Oct 25, 2026
f37158d
chore(*): move standards, ajan, laroux and the leaf packages to Node
eser Oct 25, 2026
f8f386c
feat(*): ship noskills as a Go binary through every channel
eser Oct 25, 2026
ff308df
chore(*): move codebase, cli, posts, shell, kit, ai and the gate work…
eser Oct 25, 2026
5156186
chore(*): finish the noskills, codebase and CI validation moves to Node
eser Oct 25, 2026
7338c58
Merge branch 'main' into cutover
eser Oct 25, 2026
5b2c041
chore(*): delete what is left of Deno and Bun
eser Oct 25, 2026
988db50
feat(*): move the FFI bridge to a dispatcher ABI, drop the @std utili…
eser Oct 26, 2026
615112e
feat(*): replace the @std parsers with vetted npm packages and extrac…
eser Oct 26, 2026
b3dde6a
fix(workflows): match --only against shell step names and fail when i…
eser Oct 26, 2026
554b96f
fix(codebase): clear the repository env git exports to hooks before t…
eser Oct 26, 2026
4e84fe0
fix(codebase): honour .gitignore on the WASM fallback by walking the …
eser Oct 26, 2026
1183540
test(workflowfx): bound the jsonschema init by its allocations, not i…
eser Oct 26, 2026
d327426
feat(*): add the tsc 7 library build, its manifest generator and the …
eser Oct 26, 2026
01be748
feat(npm): build primitives, standards and ajan to dist for npm
eser Oct 26, 2026
dea3251
feat(npm): build the core utility libraries to dist for npm
eser Oct 26, 2026
503e1e4
feat(npm): build the infrastructure libraries to dist for npm
eser Oct 26, 2026
6f3b4e6
feat(npm): build the service and tooling libraries to dist for npm
eser Oct 26, 2026
bb46811
feat(npm): build the laroux and bundler libraries to dist for npm
eser Oct 26, 2026
cc7c15c
feat(npm): build noskills, its client and web packages and cli to dis…
eser Oct 26, 2026
1dfd3f3
ci(release): build, pack and import the libraries in preflight and ch…
eser Oct 26, 2026
09702b8
Merge branches 'm2-test-kit' and 'codebase-fixes'
eser Oct 26, 2026
83f6ab3
feat(ajan): run blocking bridge calls in worker threads with AbortSig…
eser Oct 26, 2026
4bc877c
feat(shell)!: read exec and PTY output off the main thread and termin…
eser Oct 26, 2026
e988356
test(ajan): measure the worker timer bound in up to three rounds unde…
eser Oct 26, 2026
efc1827
feat(ai): cancel bridge calls through the library's AbortSignal
eser Oct 26, 2026
7e36106
feat(httpclient): pass the request signal to native requests and body…
eser Oct 26, 2026
9612bdf
feat(kit): await the recipe network calls that run in worker threads
eser Oct 26, 2026
1e657d2
feat(posts): await the post calls that run in worker threads
eser Oct 26, 2026
ed28f50
feat(workflows): exit the CLI naturally with its exit code
eser Oct 26, 2026
d734dc4
feat(codebase)!: let exitCli set the exit code instead of exiting the…
eser Oct 26, 2026
bfc622a
chore(cli): describe exitCli without the hard exit
eser Oct 26, 2026
4734cfa
ci(*): run the FFI suites and worker tests on Node and package.json c…
eser Oct 26, 2026
ffdf42b
docs(*): list the worker-thread migration and close out TASK-239
eser Oct 26, 2026
67d34de
feat(posts): ship an eser-posts bin that runs the posts CLI from dist
eser Oct 26, 2026
6ee2af3
feat(eser): forward eser posts to npx with the @eserstack/posts package
eser Oct 26, 2026
16c4d8a
ci(preflight): run eser-posts, laroux and noskills from packed packages
eser Oct 26, 2026
8a5a118
docs(backlog): record TASK-252 as done
eser Oct 26, 2026
a0ad214
Merge branch 'm2-ffi-workers'
eser Oct 26, 2026
1edd060
Merge branch 'm3-posts-bin'
eser Oct 26, 2026
4a13e98
fix(cli): publish no eser bin from the cli library
eser Oct 26, 2026
96ffc46
ci(release): install every packed library together in the preflight c…
eser Oct 26, 2026
dc3f393
ci(release): publish the libraries to npm from the publish job with a…
eser Oct 26, 2026
c70d4b8
docs(release): record library publishing and the npm bootstrap list
eser Oct 26, 2026
4f0ef44
Merge branch 'm2-npm-publish'
eser Oct 27, 2026
7fce4b2
chore(backlog): record the pnpm pack mode of the noskills platform bi…
eser Oct 27, 2026
dd19e3b
refactor(ajan): read the loader's environment in one place and record…
eser Oct 27, 2026
898e2b8
fix(codebasefx): report optional-chained and aliased process access i…
eser Oct 27, 2026
482b2db
test(codebase): cover optional-chained process access in validate-run…
eser Oct 27, 2026
d08eb15
docs(backlog): record TASK-365 as done
eser Oct 27, 2026
c4988fd
fix(kitfx): resolve a local manifest's files against its directory an…
eser Oct 27, 2026
a3935a8
test(ajan): measure the warm reactor calls in up to three rounds so g…
eser Oct 27, 2026
b6fc45f
fix(eser): apply the working tree's recipe files with kit add --local
eser Oct 27, 2026
a95aca7
fix(ajan): pass local to kitApplyRecipe and answer its dependency ins…
eser Oct 27, 2026
fe5d7cb
fix(kit): apply a local registry's files from the working tree and pr…
eser Oct 27, 2026
396cd3c
feat(recipes): list laroux as a dev dependency of laroux-app
eser Oct 27, 2026
ff7f1f1
docs(backlog): record TASK-362 as done
eser Oct 27, 2026
acb81cf
Merge branch 'kit-and-runtime-fixes'
eser Oct 27, 2026
484c17f
fix(posts): mark the eser-posts bin entry executable like the eser bin
eser Oct 27, 2026
bf68f1f
fix(go): move to go1.26.10 and golang.org/x/net v0.60.0 to clear the …
eser Oct 27, 2026
a601c50
docs(backlog): record TASK-364 as done
eser Oct 27, 2026
18d78ac
fix(noskills): make the platform binary executable before the launche…
eser Oct 27, 2026
c81c4a1
fix(noskills): pack the platform binaries with their execute bits
eser Oct 27, 2026
dca3257
ci(preflight): pack the noskills packages with pnpm as the publish jo…
eser Oct 27, 2026
fe06ab2
docs(backlog): record TASK-368 as done
eser Oct 27, 2026
83924aa
fix(ajan): keep node:worker_threads out of the published offload decl…
eser Oct 27, 2026
208150e
docs(backlog): record TASK-369 as done
eser Oct 27, 2026
e0b2736
feat(laroux-server): ship the npm package laroux as a bin over the li…
eser Oct 27, 2026
61c1ab1
ci(release): smoke-test dev, build and serve of a packed laroux app o…
eser Oct 27, 2026
2106713
docs(backlog): record TASK-237 progress
eser Oct 27, 2026
acabee0
Merge branch 'ajan-offload-types'
eser Oct 27, 2026
0966d1b
Merge branch 'noskills-bin-mode'
eser Oct 27, 2026
b2d0b0c
Merge branch 'm2-laroux-npm'
eser Oct 27, 2026
db6f427
docs(backlog): record TASK-210 as done
eser Oct 27, 2026
a8f76bb
docs(backlog): record TASK-213 as done with the ACs the Go port left
eser Oct 27, 2026
84244b0
docs(backlog): add TASK-372 for the laroux help flags and a versioned…
eser Oct 27, 2026
cb15a66
docs(backlog): record TASK-240 with the homebrew-tap patch and the te…
eser Oct 27, 2026
5aafd5a
fix(codebasefx): render Homebrew formulas that pass brew audit and ke…
eser Oct 27, 2026
99f431d
docs(backlog): record TASK-371 as done
eser Oct 27, 2026
dac5d41
fix(laroux-server): scaffold laroux init from the kit recipes and cle…
eser Oct 27, 2026
c68c6c2
docs(backlog): record TASK-370 as done
eser Oct 27, 2026
98ebd3b
Merge branch 'm2-template-patches'
eser Oct 27, 2026
39a407e
Merge branch 'homebrew-formulas'
eser Oct 27, 2026
99714c8
Merge branch 'laroux-init-recipes'
eser Oct 27, 2026
8a00441
fix(recipes): name a scaffolded laroux-app after the project
eser Oct 27, 2026
03d888e
fix(laroux-server): print help for laroux dev, build and serve instea…
eser Oct 27, 2026
5457479
docs(backlog): record TASK-372 as done
eser Oct 27, 2026
fb5d263
docs(changelog): cover every break since 4.5.2 in the 5.0.0 migration…
eser Nov 7, 2026
4665f99
docs(backlog): record TASK-241 as done with the owner checklist
eser Nov 7, 2026
1168bdb
fix(codebasefx): move the Unreleased notes into the released version …
eser Nov 7, 2026
020abbe
fix(eser): show the Unreleased notes in the changelog-gen dry run
eser Nov 7, 2026
479383a
fix(codebase): stop a release when its changelog step fails and keep …
eser Nov 7, 2026
1639498
test(scripts): run the release notes script on a released changelog
eser Nov 7, 2026
fe9c9ed
docs(release): document that a release moves the Unreleased notes
eser Nov 7, 2026
659c176
docs(backlog): record TASK-373 as done
eser Nov 7, 2026
ead73d1
fix(recipes): correct the library-pkg steps for a package outside the…
eser Nov 7, 2026
b96a85f
docs(readme): install the packages from npm instead of the frozen JSR
eser Nov 7, 2026
56e2a17
docs(backlog): add TASK-376 for releases shown as latest without arch…
eser Nov 7, 2026
1a5b80a
feat(standards): add drain, timeouts, unix socket and opt-in trustPro…
eser Nov 7, 2026
ebafe4a
docs(backlog): record TASK-292 as done with the L-S4 check still open
eser Nov 7, 2026
f2c8b50
fix(standards): keep the request host for a double-slash target in ru…
eser Nov 7, 2026
d59dbaf
feat(codebase): enforce the laroux package boundaries with a shrinkin…
eser Nov 7, 2026
a79f4a5
docs(backlog): record TASK-314 as done and defer the workerd-graph fi…
eser Nov 7, 2026
dfa322e
fix(laroux-server): keep the server host for a double-slash /rsc path…
eser Nov 8, 2026
579f6ca
feat(cache): resolve the cache paths in cachefx and check existence t…
eser Nov 8, 2026
815975c
feat(ajan): load the library synchronously for callers that cannot await
eser Nov 8, 2026
359b671
feat(cache): resolve the XDG and app cache paths in Go through the sy…
eser Nov 8, 2026
68836a4
feat(crypto): hash combined parts in cryptofx through the bridge
eser Nov 8, 2026
0b20e00
test(eser): compare cs generate with the TypeScript CLI only through …
eser Nov 8, 2026
3f6f61f
feat(config): read dotenv and config files in configfx through the br…
eser Nov 8, 2026
7a64c21
feat(collector): generate manifests and specifier identifiers in coll…
eser Nov 8, 2026
068b517
fix(parsing): keep the function-based lexer in TypeScript and carry t…
eser Nov 8, 2026
e6dde5c
feat(formats): read CSV in formatfx through the bridge and keep the l…
eser Nov 8, 2026
255a8d0
feat(httpclient): decide retries and backoff in Go through the bridge
eser Nov 9, 2026
676a964
feat(logging): resolve category configs in logfx and configure withou…
eser Nov 9, 2026
540a6a1
docs(backlog): close TASK-267 and record the leaf library migration i…
eser Nov 9, 2026
3544d0f
docs(backlog): file the formats delimiter and logging sink and handle…
eser Nov 9, 2026
007629e
fix(formats): read and write CSV with the delimiter deserialize and s…
eser Nov 9, 2026
b8cb363
fix(logging): share one Go logger per category and level and close th…
eser Nov 9, 2026
6515244
fix(logging): deliver records to the configured sinks and filters
eser Nov 9, 2026
1067df2
ci(release): publish the GitHub Release only after its archives are a…
eser Nov 9, 2026
2c520a0
fix(codebase): create a missing GitHub Release as a draft in syncRele…
eser Nov 9, 2026
40dba44
chore(deps): bump sharp from 0.35.4 to 0.35.5
dependabot[bot] Nov 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ process.stdin.on("end", () => {

const nudge = {
additionalContext:
"REMINDER: Run `deno fmt` and `deno lint` after TS edits. " +
"Run `cd apps/services && make fix` after Go edits. " +
"REMINDER: Run `pnpm fmt` (oxfmt), `pnpm lint` (oxlint) and `pnpm check` (tsc) after TS edits. " +
"Run `make fix` at the repository root after Go edits. " +
"If this change is an architectural decision (technology choice, API design, " +
"approach preference), consider logging it in an ADR under etc/adrs/.",
"approach preference), consider logging it in an ADR under docs/adr/.",
};

process.stdout.write(JSON.stringify(nudge));
Expand Down
78 changes: 78 additions & 0 deletions .agents/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
"permissions": {
"allow": [
"Bash(cat:*)",
"Bash(docker:*)",
"Bash(docker compose:*)",
"Bash(find:*)",
"Bash(gh:*)",
"Bash(head:*)",
"Bash(git diff:*)",
"Bash(git log:*)",
"Bash(git show:*)",
"Bash(git status:*)",
"Bash(grep:*)",
"Bash(ls:*)",
"Bash(make:*)",
"Bash(node:*)",
"Bash(oxfmt:*)",
"Bash(oxlint:*)",
"Bash(pnpm bench:*)",
"Bash(pnpm check:*)",
"Bash(pnpm cli:*)",
"Bash(pnpm exec oxfmt:*)",
"Bash(pnpm exec oxlint:*)",
"Bash(pnpm exec tsc:*)",
"Bash(pnpm fmt:*)",
"Bash(pnpm lint:*)",
"Bash(pnpm run:*)",
"Bash(pnpm test:*)",
"Bash(sort:*)",
"Bash(tail:*)",
"Bash(test:*)",
"Bash(tree:*)",
"Bash(tsc:*)",
"Bash(uniq:*)",
"Bash(wc:*)",
"mcp__plugin_context7_context7__get-library-docs",
"mcp__plugin_context7_context7__query-docs",
"mcp__plugin_context7_context7__resolve-library-id",
"Skill(architecture-guidelines)",
"Skill(coding-practices)",
"Skill(design-principles)",
"Skill(enrichment)",
"Skill(eser-rules-manager)",
"Skill(frontend-practices)",
"Skill(go-practices)",
"Skill(javascript-practices)",
"Skill(release-and-ci)",
"Skill(security-practices)",
"Skill(tooling-standards)",
"Skill(workflow-practices)",
"WebFetch(domain:api.github.com)",
"WebFetch(domain:github.com)",
"WebFetch(domain:raw.githubusercontent.com)",
"WebSearch"
],
"deny": [
"Bash(git add:*)",
"Bash(git branch:*)",
"Bash(git checkout:*)",
"Bash(git commit:*)",
"Bash(git fetch:*)",
"Bash(git merge:*)",
"Bash(git pull:*)",
"Bash(git push:*)",
"Bash(git rebase:*)",
"Bash(git reset:*)",
"Bash(git revert:*)",
"Bash(git stash:*)",
"Bash(git tag:*)"
]
},
"enabledPlugins": {
"context7@claude-plugins-official": true,
"frontend-design@claude-plugins-official": true
},
"alwaysThinkingEnabled": true
}
34 changes: 34 additions & 0 deletions .agents/skills/architecture-guidelines/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: architecture-guidelines
description: "Design conventions of this codebase for TypeScript and Go packages and services: double-layered hexagonal architecture, explicit adapter composition, runtime access as an adapter, public API and CLI surface, request metadata, testing strategy, ADRs. Use when designing a package or service, adding options or flags, planning tests or writing an ADR. Not for file naming (use tooling-standards)."
---

# Architecture Guidelines

How packages and services in this codebase are structured, composed, tested and
documented as decisions.

## Always

- Domain logic and its port types live together in `domain/`; adapters live in
`adapters/`. No `ports/` directory.
- Callers import adapters explicitly and pass them in. No string-selected
adapters, no convenience factories, no dynamic imports inside a package.
- Library code reaches the runtime through an adapter
(`@eserstack/standards/cross-runtime`), never `process.*` or `node:fs`
directly.
- Every option has a safe default; add an option only for a named case; no
positional booleans.
- Request ids and trace state travel in the request context, never as extra
parameters.
- Unit tests with fakes for logic, integration tests for adapters; failure paths
tested; coverage never drops.
- A lasting architectural decision gets an ADR, written with the change.

## References

| File | Read when |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------- |
| [hexagonal-architecture.md](references/hexagonal-architecture.md) | Structuring a package, adding an adapter, adding options, flags or env vars |
| [testing.md](references/testing.md) | Deciding what and how to test, choosing the runner, coverage |
| [adrs.md](references/adrs.md) | Recording an architectural decision |
62 changes: 62 additions & 0 deletions .agents/skills/architecture-guidelines/evals/triggers.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
[
{
"query": "design a new package for background jobs, where do ports and adapters go",
"should_trigger": true
},
{
"query": "should this CLI flag be public or hidden",
"should_trigger": true
},
{
"query": "write an ADR for switching the bundler",
"should_trigger": true
},
{
"query": "what should we unit test vs integration test for the http package",
"should_trigger": true
},
{
"query": "how do request ids travel between the noskills server and worker",
"should_trigger": true
},
{
"query": "yeni bir servis tasarlıyorum, katmanları nasıl ayırayım",
"should_trigger": true
},
{
"query": "we're adding an option to the public API of @eserstack/config, is that ok",
"should_trigger": true
},
{
"query": "the Go tests fail with a data race",
"should_trigger": false
},
{
"query": "use namespace import here",
"should_trigger": false
},
{
"query": "bump all packages to the next minor",
"should_trigger": false
},
{
"query": "write a README for laroux",
"should_trigger": false
},
{
"query": "set the GitHub workflow timeout",
"should_trigger": false
},
{
"query": "should this function take a pointer or a value",
"should_trigger": false
},
{
"query": "secret key is in the logs, fix it",
"should_trigger": false
},
{
"query": "commit and push",
"should_trigger": false
}
]
28 changes: 28 additions & 0 deletions .agents/skills/architecture-guidelines/references/adrs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Architectural Decision Records

When to write an ADR and what it contains.

---

## Architectural Decision Records

Scope: Decisions that change a package's architecture, a public contract, a
dependency with lasting cost, or a product target

Rule: Record the decision in this codebase's ADR directory (`docs/adr/` by
default) as `NNNN-kebab-title.md`, numbered after the highest existing file. An
ADR is written before or with the change, not after. It states:

- `## Status`: Proposed, Accepted, or Superseded by a named ADR.
- `## Context and Problem Statement`: the forces and the question being decided.
- `## Decision Drivers`: what the decision optimizes for.
- `## Considered Options`, with the trade-offs of each.
- `## Decision Outcome`: the choice and why it beat the others.
- `## Consequences`: what becomes easier and what becomes harder.
- `## Links` and related files, when there are any.

An accepted ADR is not rewritten to match a later decision. A new ADR supersedes
it, and the old one's status names the new one.

**Why:** the reasoning behind a structure is what a later change needs, and it
is the part the code cannot show.
Loading
Loading