Closed
jason.woltje
wants to merge 2 commits from
fix/installer-provider-gate-and-local-gateway-redis into main
pull from: fix/installer-provider-gate-and-local-gateway-redis
merge into: :main
:main
:feat/webui-p1-vite-skeleton
:fix/gateway-runner-image
:fix/break-c-hooks-and-web-image
:fix/1138-conditional-federation
:next
:docs/webui-fleet-claude-bridge-plan
:fix/wizard-gateway-failure
:fix/ci-queue-wait-no-status
:fix/next-node-gate
:fix/mosaic-init-rce
:feat/lease-promotion-and-harness-isolation
:greenfield/fomo-lin
:fix/1099-pipefail-wake
:fix/1099-pipefail-tests
:fix/1099-pipefail-sweep
:fix/framework-shell-portability
:fix/1043-pane-git-identity
:fix/1081-issue-close-silent-comment-failure
:fix/1090-enrollment-wallclock-tolerance
:feat/1082-tea-stale-token-diagnostic
:fix/detect-platform-silent-128-outside-repo
:feat/1050-install-state-machine-red-fixture
:fix/pr-merge-message-field
:feat/1051-mosaic-brain-installer
:feat/1045-mosaic-cred
:remediation/state
:fix/1056-upgrade-rollback-control-race
:fix/1019-ci-queue-timeout-harness
:feat/rm-02-gate-registry
:fix/rm-01-reproducible-checkout
:remediation/mission-setup
:fix/hygiene-inert-format-gate
:fix/1019-queue-guard-stdin
:feat/mos-ste-writing-standard
:fix/1007-suite-hermeticity
:fix/991-comment-url-scheme-normalise
:feat/push-guard-null-case-verification
:mos-comms-live
:docs/heartbeat-framework-layering-ms-lead
:feat/869-c4-version-coupling
:feat/869-c2-install-ordering-guard
:feat/869-c5-doctor-activation-check
:feat/per-agent-gitea-identity
:fix/875-belongs-case-insensitive-slug
:fix/ci-queue-wait-404-branch-absent
:feat/869-c1-activation-probe
:feat/869-c3-broker-supervisor
:fix/865-tea-cli-comment-invocation
:feat/glpi-skills
:fix/860-deflake-mutator-lease-gate
:fix/850-detect-platform-port-normalization
:fix/856-worktree-deps-preflight
:fix/835-pr-review-approve-reject-comment-flag
:fix/848-truthful-evidence
:fix/812-pr-review-comment
:fix/849-recovery-runtime-fixture-race
:docs/758-ledger-m5-001-sync
:feat/834-tc-server-side-doc
:feat/833-constrained-recovery-command
:feat/827-gate0-probe
:governance/gate0-probe3-amendment
:fix/795-codex-pr-diff
:fix/795-ci-base-jq
:fix/795-ci-base-git
:feat/791-pr3-fleet-regen
:feat/791-pr2-snapshot-restore
:fix/807-glpi-206
:fix/808-agent-send-false-sender
:feat/791-upgrade-config-protection
:feat/790-mosaic-yolo-claudex-pr2
:feat/790-mosaic-yolo-claudex
:feat/758-v1-v2-migrator
:fix/766-exact-fleet-comms
:test/758-reconciler-lifecycle-gates
:docs/771-kbn101-db-role-split
:test/758-example-profile-dispositions
:feat/758-shared-role-resolution
:feat/mos-logical-identity-fencing
:feat/769-kbn100-unified-schema
:docs/753-kbn010-threat-gate
:feat/758-roster-v2-compiler
:feat/756-official-discord-plugin
:docs/758-fleet-config-management
:fix/mos-option2-qualification-format
:docs/issue-758-m0
:docs/mos-option2-qualification
:mos-comms
:feat/tess-interaction-agent
:fix/tess-docs-format
:draft/mosaic-platform-prd
:fix/installer-provider-gate-and-local-gateway-redis
:release/mosaic-cli-0.0.37
:feat/framework-constitution-alpha
:fix/git-wrapper-repo-detection
:fix/woodpecker-wrapper-legacy-mosaic
:fix/t-a292e96f-gitea-pr-metadata
:fix/gitea-pr-metadata-login-t-a292e96f
:fix/t_a292e96f-pr-metadata-gitea
:fix/t_3a368a52-gitea-usc-login
:fix/bootstrap-hotfix
:fix/populate-known-packages-list
:fix/idempotent-init
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #675
Fixes two greenfield-test (0.0.48, fresh Debian 13) installer defects.
Bug #1 — quick-start provider gate (
packages/mosaic)Quick Start let the user skip the LLM provider/API key and then falsely reported "Mosaic is ready".
provider-setup.ts: interactive path now REQUIRES a provider select (Anthropic/OpenAI) + a validated key (rejects empty, wrong-prefix, andsk-ant-for OpenAI).quick-start.ts: belt-and-suspenders guard; headless/scripted installs warn-and-continue (no false-green — finalize gates the "ready" message).finalize.ts: emits a Provider status line and will not print "Mosaic is ready" without a configured provider.errors.ts:WizardCancelledErroraccepts an optional diagnostic message.mosaic configuresubcommand.Bug #2 — local-tier gateway Redis gate (
apps/gateway)On the
localstorage tier the gateway opened ioredis/BullMQ connections at bootstrap (ECONNREFUSED → never healthy), ignoring{ queue: { type: 'local' } }.Every Redis consumer is now tier-aware and degrades gracefully on local tier; Standalone/Federated unaffected:
queue.service.ts(enabled flag gates all BullMQ ops),gc.module.ts+session-gc.service.ts,commands.module.ts+command-executor.service.ts,preferences/system-override.service.ts(in-memory fallback),log/cron.service.ts,admin/admin-health.controller.ts.SystemOverrideServiceioredis handle leak (addedOnApplicationShutdown).Verification
provider-setup.spec.ts6/6,unified-wizard.test.ts3/3, gateway service specs 38/38fleet.spec.tsfailures (missingframework/fleet/examples/fixture) confirmed present without this diffMerge note
Per the dev-install plan, this branch is intended to be dev-installed off HEAD on the test VM and verified healthy before merge + the 0.0.49 release cut.
🤖 Generated with Claude Code
REVIEW-OF-RECORD — REQUEST CHANGES (#676). BLOCKER: the Redis/local-tier gateway behavior is source-changing bootstrap logic across QueueService, GCModule/SessionGCService, CommandsModule/CommandExecutorService, SystemOverrideService, CronService, and AdminHealthController, but this PR does not add/update gateway tests for the local-tier no-Redis contract. Existing command/preferences specs still pass, but they do not prove the bug fix: a local config with queue.type=local should not instantiate BullMQ/ioredis/createQueue, should report cache healthy, should no-op queue workers/repeatable jobs, and should preserve SystemOverrideService set/get/clear via the in-memory fallback. Please add focused tests that would fail on main for at least QueueService local disabled behavior plus one or more direct Redis consumers (admin health, GC/commands module factory, SystemOverrideService local fallback).
Also recommended: add a small installer test for the no-provider false-green path (finalize does not call outro "Mosaic is ready" when providerType is none / no key), since that is the explicit quick-start bug being fixed.
Reviewer evidence: provider setup + unified wizard scoped tests pass (9/9); existing gateway command/preferences scoped tests pass (66/66); gateway typecheck/lint pass; mosaic lint pass. Mosaic package typecheck could not be used as reviewer evidence in this worktree because of pre-existing fleet-backlog/@mosaicstack/db export errors unrelated to this diff. No implementation defect found in the reviewed local-tier guards themselves; the blocker is missing regression coverage for the main gateway Redis bug.
Closing as superseded / deferred — disposition per orchestrator coordination after the 0.0.49 RC blocker pass:
next(sha56787fab). That part of #676 is done.main, which is FROZEN at86e106fcpending jetrich's greenfield HEAD blessing — it cannot merge here regardless.No code is lost: the redis gate shipped via #689; the provider/quick-start work is captured in the 0.0.50 epic backlog. Closing to keep the queue clean. Reopen/rebuild against
nextwhen the 0.0.50 provider work is scheduled.Pull request closed