Build(deps): Bump inquirer from 8.2.6 to 12.9.6#123
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
Bumps [inquirer](https://github.com/SBoudrias/Inquirer.js) from 8.2.6 to 12.9.6. - [Release notes](https://github.com/SBoudrias/Inquirer.js/releases) - [Commits](https://github.com/SBoudrias/Inquirer.js/compare/inquirer@8.2.6...inquirer@12.9.6) --- updated-dependencies: - dependency-name: inquirer dependency-version: 12.9.6 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
|
Superseded by #150. |
joelteply
added a commit
that referenced
this pull request
Jun 2, 2026
…Registry (#123 slice 1) ## Why Joel directive (2026-06-01): substrate MUST work headless; TS-decorator pipeline isn't reachable in headless mode; substrate-only entities (hw_tiers, role_templates, identity pools, universes, future continuum config) MUST be authored Rust-first. Single source of truth lives in Rust; ts-rs projects the matching TS types. References: - [[orm-everything-not-hand-edited-files]] — ORM is the universal data interface; repo source = JSON, runtime backend = ORM's choice, commands = mutation path - [[authored-data-vs-procedural-projection]] — substrate-data entities are the authored half; IdentityProjector (#124) is the procedural half ## What ships (slice 1: infrastructure only, no behavioral migration) ### src/orm/entity.rs (new, ~370 lines) - BaseEntity struct + ts-rs export — the canonical wire-type base (id, createdAt, updatedAt, version). Single source of truth in Rust; ts-rs emits shared/generated/orm/BaseEntity.ts. The hand-authored TS BaseEntity.ts can be migrated to the generated version in a follow-up. - BaseEntity::for_new_record() — UUID v4 + now() + version=1 - base_entity_fields() — the STORAGE half of the base contract: SchemaField vec the ORM adapter declares to SQL. Kept in lockstep with the BaseEntity wire type via cross-test. - OrmEntity trait — COLLECTION const + collection_schema() - OrmEntityRegistry — process-wide write-once-at-boot registry; register<E>() is idempotent on identical schemas, errors on conflicts (different shape, same collection name) - Tests use fresh OrmEntityRegistry::new() instances — global singleton would race under parallel cargo test runs ### src/modules/data.rs (updated handle_ensure_schema) Resolution order: 1. Rust-native OrmEntityRegistry (substrate entities) 2. entity_schemas.json from TS decorators (user-app entities) 3. Error with diagnostic pointing at both authoring paths Headless deployments rely on path 1 alone; the TS-decorator path stays for user-facing entity work. ### src/persona/hw_tier_descriptor.rs (new, ~290 lines) - HwTierDescriptor — the editable, shareable ORM-stored description of one hardware tier. Distinct from HwCapabilityTier (the enum discriminant for runtime use). - HwTierCategory — Floor / Base / Pro per Joel's 2026-06-01 3-plan framing (Intel/low-end is Floor with video via grid-inference; MacBook M-series is Base, the design center; M-series Pro/Max + future unified-memory PCs are Pro) - local_video_capable flag — universal-avatar doctrine applied: rendering medium scales with hardware + grid-inference availability; the avatar property itself is universal - Tests verify BaseEntity contract + tier_id-vs-id distinction + serde camelCase + registration roundtrip ### src/persona/role_template.rs (existing struct, new OrmEntity impl) - OrmEntity impl for the existing RoleTemplate struct - Storage: BaseEntity columns + role (natural key, unique+indexed) + priority (indexed) + identity/cognition/modelPerTier (JSON columns for nested structs) - No changes to the existing helper_template()/coder_template() — that migration is slice 2 (seed JSON + retire hardcoded constants) ### src/persona/mod.rs (register_substrate_orm_entities helper) - Takes a &OrmEntityRegistry parameter so production calls register_substrate_orm_entities(OrmEntityRegistry::global()) and tests call with fresh new() instances - Cross-collection test verifies BaseEntity fields land in every registered substrate collection — catches future entities that forget to call base_entity_fields() ## Tests (632 passing across the lib) - 10 OrmEntityRegistry tests (register/resolve/idempotent/conflict/ order-independent/wire-vs-storage match/for_new_record sanity) - 7 HwTierDescriptor tests (schema count/BaseEntity present/tier_id unique-and-distinct-from-pk/category indexed/registration roundtrip/ serde camelCase/HwTierCategory lowercase) - 2 register_substrate_orm_entities tests (boot-order proof + idempotence + cross-collection BaseEntity check) - All 8 generator concurrency tests still green (regression) - 632 lib tests overall pass — no broader breakage ## What is NOT in this commit (slice 2 and beyond) - Seed JSON files under seeds/<collection>/*.json (#123 slice 2) - Retirement of helper_template()/coder_template() in favor of ORM queries (#123 slice 2) - Identity card pools, universe entities (#127 — Tron universe pack) - IdentityProjector procedural pick layer (#124) - First-connection ceremony (#126) - BaseEntity flatten into entity structs (matches TS class-extension convention) — held back to avoid churning helper_template/ coder_template constructors before slice 2's seed-JSON migration Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
joelteply
added a commit
that referenced
this pull request
Jun 2, 2026
## Why Slice 1 (de1ba9a) shipped the Rust-native entity authoring path (BaseEntity, OrmEntityRegistry, OrmEntity trait, HwTierDescriptor + RoleTemplate schemas). Slice 2 ships the data half: the canonical day-zero hw_tiers JSON, embedded via include_str! so the substrate always ships data + code together (per [[orm-everything-not-hand- edited-files]] "all ship together" doctrine). Headless-clean: include_str! bakes seeds into the binary; no runtime path discovery, no missing-file failure modes, works wherever Rust runs. Filesystem-override for live editing is a future slice. ## What ships ### seeds/hw_tiers/*.json (new, 9 files) camelCase JSON conforming to HwTierDescriptor's serde shape. Spans all three categories per Joel's 2026-06-01 3-plan framing: - **Floor** (Intel + low-end; video via grid-inference): cpu_only, mac_intel_metal_discrete - **Base** (MacBook M-series; design center; local-leaning): m1_uma_8gb, m1_uma_16gb - **Pro** (M-series Pro/Max + future + cloud-as-peer): m3_uma_pro_max, m5_uma_pro_max, sm60, sm120, cloud Each carries: tierId, label, category, localVideoCapable, minParamsBMeaningful, maxParamsBFits, optional unifiedMemoryGib / discreteVramGib / note. localVideoCapable=false on Floor + cloud is a coarse proxy for "can host the persona's inference locally for real-time avatar" — WebRTC + animation are always local; routing inference to a grid/cloud peer still produces a video persona per [[persona-webrtc-all-tiers-latency-obsessed]]. ### src/persona/hw_tier_descriptor.rs - Per-tier `SEED_*` consts via include_str! - `SEED_FILES` table: (tier_id, raw_json) pairs for diagnostic clarity - `parse_seed_descriptors() -> Result<Vec<HwTierDescriptor>, String>` — parses every embedded seed at runtime, returns the first error named by its expected tier_id. Boot-time entry point for the ingest-if-empty step that lands in a follow-up slice. ## Tests (4 new, all green; 23 total in the module) - `all_seed_files_parse_into_descriptors` — every embedded JSON deserializes against HwTierDescriptor; tier_ids are unique within the seed set. This IS the #125 CI guard for hw_tiers: if the Rust struct grows a required field or renames one, this fails the build. - `seeds_cover_all_three_categories` — Floor + Base + Pro all represented. Deleting the only Floor seed (or any category) fails. - `anchor_tiers_are_present` — load-bearing tier_ids (cpu_only, m1_uma_8gb, m3_uma_pro_max, sm120, cloud) must ship; silent removal would break downstream routing. - `seed_file_names_match_tier_ids` — file name and JSON tier_id field must match; catches copy-paste errors at build time. Plus the 8 generator concurrency tests still green (regression). ## What's NOT here - Ingest-into-ORM step — needs an adapter handle; lands in the PersonaSpawnerModule slice (#121) or a dedicated seed-runner. - role_templates seed JSON — the nested-tuple shape of ModelChoicePerTier benefits from normalization to a more JSON- natural form (object map instead of Vec<(tier, choice)>) before hand-authoring. Coming in a follow-up. - Filesystem override of embedded seeds for live editing — future slice; ship-time embedded seeds are the floor. - Identity card pools, universes, continuum_config — #127 and beyond. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
joelteply
added a commit
that referenced
this pull request
Jun 2, 2026
…133 slice 6) Materializes a Vec<Result<PersonaInferenceProfile>> from a substrate- resolved roster + tier descriptor. Each row composes through slice 5's build_profile so the substrate's "what personas exist on this machine?" decision is a pure function of (hardware tier × roster × registry). ## What ships ### RosterEntry Substrate-resolved persona slot: - role: RoleId - persona_id: Uuid (derived from airc peer_id per [[persona-identity- derives-from-source-id]]) - persona_name: String (typically from name_generator) - model_id: String (registry id picked by role_template or future ORM-stored role data) The slice 7 ServiceModule allocates each slot's airc identity FIRST, then hands the resolved (peer_id, name) pair into the planner. ### derive_spawn_plan(roster, tier_id, tier_category, registry) Iterates the roster, calls build_profile per row, returns one Result<PersonaInferenceProfile> per slot. Per [[no-fallbacks-ever]]: - Per-row errors are kept separate (one bad model_id doesn't block other personas) - Substrate refuses to substitute a default when a row fails - Slice 7 ServiceModule decides whether to refuse boot or skip bad personas with a diagnostic ## Why explicit roster (not auto-derivation from role_template) 1. Identity belongs to airc, not role_template. Each persona needs a peer_id (from airc-attach) BEFORE the planner runs. Auto-derivation would require the planner to allocate airc identities, coupling planning to networking. 2. Model selection is changing under #123 (ORM-stored role_templates). The planner consumes a resolved roster so it stays stable as the selection logic evolves. This keeps slice 6 testable without an airc fixture and without touching the role_template hardcoded-Rust path. ## Tests (4 new + 12 generator regression = 16 green) - plans_helper_and_coder_for_compat_tier — canonical Intel-Mac multi-persona startup state; both personas share the LCD model (sets up future #122 shared-base + LoRA paging) - per_row_errors_dont_block_other_personas — Helper resolves cleanly while a Coder row with a nonexistent model_id errors loud - empty_roster_yields_empty_plan — no-op contract - tier_category_threads_into_every_profile — Compat vs MSeries produce different tier-shaped knobs (gpu_layers, context_length) for the same roster Test fixture uses a real tempfile for gguf_local_path so the registry's resolve_model_artifacts on-disk check passes without the real GGUF. ## Slice progression on #133 - ✓ Slice 1 (d8256f3): HwTierCategory rename - ✓ Slice 2 (e2510c0): qwen2.5-0.5b-instruct registered - ✓ Slice 3a (859c01c): PersonaInferenceProfile type - ✓ Slice 3b (b70c238): LlamaCppAdapter::for_persona - ✓ Slice 4 (a114714): demo binary uses for_persona - ✓ Slice 5 (8f1c7b5): substrate-side build_profile - ✓ Slice 6 (this commit): derive_spawn_plan - ⏳ Slice 7 (planned): PersonaSpawnerModule — wraps the plan with airc attach + room join + persona lifecycle References: [[intent-driven-api-not-hot-patches]], [[no-fallbacks-ever]], [[persona-identity-derives-from-source-id]], [[lcd-model-qwen25-05b-and- foundry-lora]], #121 PersonaSpawnerModule (slice 7 home), #122 shared- base + LoRA paging, #123 ORM role_templates. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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 inquirer from 8.2.6 to 12.9.6.
Release notes
Sourced from inquirer's releases.
... (truncated)
Commits
8300fe3Publishb85cbe2chore: Speed up linting CI stage8fc86fefeat: Introduce@inquirer/core/ansi exportdcca892chore(@inquirer/testing): Remove unnecessary ansi code filtering logicdaef4f5chore: Bump yarn + yarn dedupe62045dcPublish7e75de6Publishb8361c5fix(@inquirer/rawlist): Properly handle specified numeric keys (previously wo...e3aed9cChore(deps): Bump actions/setup-node from 4 to 5 (#1832)93c7750Chore(deps-dev): Bump the linting group with 6 updates (#1831)Dependabot 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)