Build(deps-dev): Bump @typescript-eslint/parser from 8.29.1 to 8.39.0#100
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Build(deps-dev): Bump @typescript-eslint/parser from 8.29.1 to 8.39.0#100dependabot[bot] wants to merge 1 commit into
dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.29.1 to 8.39.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.39.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-version: 8.39.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
|
The |
Contributor
Author
|
Superseded by #103. |
joelteply
added a commit
that referenced
this pull request
Jun 2, 2026
…G introspection (task #100, slice A) Lifts the airc_rag_demo binary's per-item dump into a callable library function with a structured result type (`RagInspection`, `SourceDeliveryInspection`, `InspectedItem`). The function is pure async Rust — no Node.js, no TS, no IPC overhead — so the eventual ServiceModule wrapper and any other in-process caller (a sentinel persona, an adversarial reviewer, a CI mechanic) gets the same data the binary surfaces today. This is the first realization of the [[observability-is-half-the-architecture]] doctrine at the library layer: the introspection is no longer trapped in a binary's stdout — it's a first-class data shape that flows the same way as any other RAG primitive. Tests (9, all green): - Empty-transcript delivery is empty (no panic) - Allocation reports Satisfied when context_window can fit floor+max - Items carry score / age_s / peer_id_prefix / lamport / metadata - Long content truncated in preview, tokens stay accurate (no clipping) - Continuation flag set when budget overflows - Reader failure returns empty delivery, not panic (good citizen) - trace_path=Some(p) writes JSONL with the 4 expected event kinds - trace_path=None uses NoopRagCaptureSink (zero overhead) - Cross-persona scope check still active through library path Demo binary refactor: identical output against Paige (real persona) and rag-demo (synthetic), confirming the library composes from outside. ~200 LOC of demo logic became ~70 LOC of library calls. Next slice: ServiceModule wrapper + ts-rs binding so `Commands.execute('persona/rag-inspect', { persona })` becomes callable from any other AI's command surface.
joelteply
added a commit
that referenced
this pull request
Jun 2, 2026
…essions (task #107, slice A) The library layer of the inference handle pattern. Open a session against any AIProviderAdapter, get back a HandleRef, thread it through many generate() calls, close when done. Adapter-agnostic: works uniformly for HeuristicInferenceAdapter, AnthropicAdapter, OpenAICompatibleAdapter, future LlamaCppAdapter, future AircRemoteInferenceAdapter. Joel (2026-05-31): "Maybe you get a handle first then inference? Establish once? Keep loaded or it pages itself intelligently but still a handle. That way you've got a remote handle or a cloud handle. Etc. typically you call these things repeatedly in." Realizes [[inference-is-an-adapter-always-in-the-loop]] §"Inference handles": one canonical session shape across local / cloud / heuristic / remote — the substrate's answer to "model load is expensive, inference is cheap." Production paths (persona service cycle, RAG cycle, sentinel review) hold long-lived handles. ### Library shape - `OpenSessionRequest` — system_prompt, model override, LoRA active_adapters, persona_id scope - `InferenceSession` — adapter + session state + atomics for last_used_ms / generation_count (lock-free updates from generate through &session) - `InferenceHandleStore` — DashMap<Uuid, Arc<InferenceSession>>; multi-threaded generate calls don't serialize on the map - `SessionInspection` — read-only snapshot for [[observability-is-half-the-architecture]]: provider, model, persona, warm-state telemetry - `HandleStoreError` — typed errors (OwnerMismatch / TypeTagMismatch / HandleNotFound / PersonaScopeMismatch); consumers branch on the variant, no string parsing ### Doctrine touchpoints - HandleRef owner = "ai/inference", type_tag = "ai::InferenceSession" — matches the canonical example in cell_shapes.rs line 152 - Validates owner + type_tag before state-map lookup (HandleRef::expect_owned_by shape, per [[cell-processor-command-runtime]]) - Persona scope: session opened for persona A rejects generate requests with persona_id B (same defense-in-depth shape as AircRagSource's cross-persona ctx check) - Per-call request fields override session defaults — caller can vary sampling per turn while session-level system_prompt / LoRA / model stay sticky - Updates last_used_ms + generation_count BEFORE adapter call so observers see in-flight sessions even when generation fails ### Tests (16, all green) - open returns HandleRef with canonical owner + type_tag - multiple opens get distinct UUIDs - generate via valid handle routes to adapter - generate with mismatched owner / type_tag / unknown UUID → typed errors (no swallowing) - close releases; subsequent generate fails; double-close returns false the second time - generate updates last_used_ms + increments generation_count - session system_prompt applies when request omits it - per-request system_prompt overrides session default - persona-scoped session rejects mismatched persona request - persona-scoped session accepts matching persona request - unscoped session accepts any persona request - inspect reports provider / model / has_system_prompt / warm state - 16 concurrent open+generate+close tasks complete without deadlock or lost handles (DashMap concurrency guard) ### What's next (slice B) ServiceModule wrapper exposing `ai/inference/open`, `ai/inference/generate`, `ai/inference/close` as kernel commands. Tasks #100 (rag-inspect ServiceModule) and #104 (rag_inspect chains through inference) both become single-handle long-lived loops once that lands.
joelteply
added a commit
that referenced
this pull request
Jun 2, 2026
…able by other AIs (task #100) Wraps the existing `persona::rag_inspect` library function as a kernel-level command. Any AI (Claude, sentinel persona, another peer, mechanic shop) can now call `Commands.execute('persona/rag-inspect', { persona })` and get back a structured snapshot of what that persona's RAG layer would deliver right now — the three canonical introspection questions ([[observability-is-half-the-architecture]]) answered in one call: 1. "Would I respond as it requests at this step?" — full prompt reconstructable from `deliveries`. 2. "Which layer is broken?" — per-source `allocations` show Satisfied / FloorOnly / Dropped / UnderProvisioned state. 3. "Is this contextually relevant?" — each `item` carries score, age_s, peer_id_prefix, lamport, content_preview. ### Architecture - `PersonaResolver` trait — abstracts "given a persona name, give me persona_id + AircTranscriptReader." Production wiring (later commit) implements against `~/.continuum/personas/<name>/seed.json` + `airc_lib::Airc::attach_as`. Tests use a stub that returns canned events without needing a live airc daemon. - `PersonaRagInspectModule` — ServiceModule. Holds `Arc<dyn PersonaResolver>`. Routes the `persona/rag-inspect` command into the library function with parameter overrides (context_window, airc_floor/max/fetch_limit, trace_path, now_ms). - Wire types (`RagInspectParams`, `RagInspectAllocation`, `RagInspectItem`, `RagInspectDelivery`, `RagInspectResult`) ts-rs-derived + auto-exported to `shared/generated/persona/Rag*.ts`. The library's `BudgetAllocation` (which doesn't have ts-rs derives) gets flattened/projected into wire types at the module layer so the inference doctrine layering stays clean. ### Optional knobs flow through Caller can vary the inspection profile per call: - `contextWindow` — model context size (default 32K from library). - `aircFloor` / `aircMax` — source budget overrides. - `aircFetchLimit` — how many airc events to consider (default 100). - `tracePath` — JSONL capture trace for replay (other AIs resume against this). - `nowMs` — wall-clock override for deterministic replay. ### Doctrine alignment - [[commands-are-kernel-level-and-compose]] — pure command-envelope routing. The module has no introspection logic of its own; it's the kernel surface for the library function. - [[observability-is-half-the-architecture]] — this commit realizes the doctrine: introspection becomes a substrate primitive that any AI can call, not just a file on disk that someone has to `cat | jq`. - [[inference-is-an-adapter-always-in-the-loop]] — the resolver trait is the "adapter" for persona resolution; production wiring plugs in the real airc-attach path the same way coordinator wiring plugs in adapters elsewhere. ### Tests (13, all green) Module behavior (8): - config_reports_canonical_name_and_prefix - empty_persona_name_returns_typed_error - unknown_persona_surfaces_resolver_error (resolver errors propagate cleanly to callers) - known_persona_with_empty_room_returns_zero_items_but_satisfied_allocation — Paige has no airc events; deliveries empty; allocation still reports Satisfied because the airc source's full max fits available_for_sources. - known_persona_with_events_returns_items_with_full_rationale — two events; first item has content_preview="hello world", score=1.0, age_s=100, peer_id_prefix.len()=8. - context_window_override_threads_through (8192 instead of 32K default). - handle_command_routes_canonical_command_to_inspect — full CommandRequest envelope round-trips through. - handle_command_unknown_returns_loud_error — typed routing error. ts-rs binding exports (5): - RagInspectAllocation, RagInspectDelivery, RagInspectItem, RagInspectParams, RagInspectResult — all auto-generated to `shared/generated/persona/`. ### What this unblocks - #104: rag_inspect chains through the inference command. With the module shipped, an AI can sequence `persona/rag-inspect` → `ai/inference/open` → `ai/inference/generate` to get the full "what would the persona see + what would they say" loop in two command calls. - Sentinel personas doing adversarial review of other personas' turn quality. - Mechanic-shop tools running prompt audits without needing file-system access. ### Production wiring deferred The `PersonaResolver` impl that reads `~/.continuum/personas/<name>/seed.json` + attaches via `airc_lib::Airc::attach_as` is its own focused commit. The module is ready to wire into the runtime registry the moment that resolver lands.
joelteply
added a commit
that referenced
this pull request
Jun 2, 2026
…a/rag-inspect (task #116, slice A) Production wiring for the PersonaResolver trait shipped with task #100. Reads the canonical persona-on-disk layout: ~/.continuum/personas/<agent_name>/ ├── seed.json (persona_id + agent_name, written by │ PersonaPersistenceModule) └── airc/ (airc home — keypair + per-persona events.sqlite) ### What ships - `FilesystemPersonaResolver::new(continuum_root, airc_socket_path)` - `.with_default_adapter(adapter)` to wire heuristic / llama.cpp / cloud / remote-grid into the inference probe path - `PersonaResolver::resolve(name)` (now async): 1. Reads seed.json via existing `persona::seed::read_seed` (typed errors, async I/O) 2. Ensures airc home dir exists (tokio::fs) 3. Attaches to the running airc daemon via `airc_lib::Airc::attach_as(home, name, socket_path)` 4. Returns PersonaResolution with persona_id + airc reader + optional inference adapter - Public helpers `read_persona_seed` and `airc_home_for` so the CI harness (slice B, separate commit) + the airc_rag_demo binary can use the same path math ### Trait change: PersonaResolver::resolve is now async Production needs async — seed file read goes through tokio::fs; airc attach goes through tokio::net. The stub test resolver got a trivial `async fn` update. All 18 existing PersonaRagInspectModule tests still pass; the module pipeline already lived inside an async command-handler so the .await is free. ### Tests (6, all green) - read_persona_seed_round_trips_a_well_formed_seed (V1 schema: persona_id, agent_name, created_at_ms) - read_persona_seed_missing_file_returns_typed_error (error references the path so operators know where the substrate looked) - read_persona_seed_malformed_returns_typed_error - airc_home_for_matches_canonical_layout - seed_path_matches_canonical_layout - with_default_adapter_threads_adapter_through_to_resolution ### What is deliberately NOT unit-tested The full `resolve(name)` flow that calls `airc_lib::Airc::attach_as` is integration-tested by the `airc_rag_demo` binary (proven against operator%27s live daemon as of 2026-05-31). Slice B of #116 wraps this resolver into a headless CI harness once we have a way to spin up airc-in-CI. ### What unblocks now Any consumer that has a continuum root + an airc socket path can construct a FilesystemPersonaResolver and pass it into a PersonaRagInspectModule. The `persona/rag-inspect` command now has its production resolver. `continuum-core-server` wiring is the next slice (separate commit) — construct the resolver + register the module with the runtime registry at startup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps @typescript-eslint/parser from 8.29.1 to 8.39.0.
Release notes
Sourced from
@typescript-eslint/parser's releases.... (truncated)
Changelog
Sourced from
@typescript-eslint/parser's changelog.... (truncated)
Commits
c98d513chore(release): publish 8.39.02112d58feat: update to TypeScript 5.9.2 (#11445)d11e79echore(release): publish 8.38.0816be17chore(release): publish 8.37.084b7a2echore(release): publish 8.36.0e2ecca6chore: fix issues introduced by updatednxconfiguration (#11230)f9bd7d8chore(release): publish 8.35.1d19c9f3chore(release): publish 8.35.0ccd0791chore(release): publish 8.34.18915a47chore(release): publish 8.34.0Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)