PRD 1.2 step 8: Token limits per instance, model, provider and key #1619
Closed
opened 2026-10-14 18:40:39 +00:00 by jarvis
·
7 comments
No Branch/Tag Specified
next
refactor
launchpad/row294
duckworth/reviews
morgana/row295
gander/v574-r2
gizmoduck/row292
huey/row272-b23783f39
rocko/row219
gizmoduck/row270-271-r4
gyro/editor-o2
webby/reviews
gander/v574
fenton/q195-s0
megavolt/q195-w4-review
rocko/q195-w4-design-20261022
quackerjack/row203-r2
megavolt/row207-r3
gander/config-checks-any-key
gizmoduck/row271-r2
gander/row276-0cbe
quackerjack/row203
megavolt/row207-r2
darkwing/window-migrate-0cbe2e9b3
launchpad/row206-17f4
megavolt/row287
scrooge/row285
ludwig/row286
gosalyn/case2-design
honker/row283
gosalyn/prd-1-16-library-write
honker/row239-r2
gosalyn/prd-req-lib-6-r2
gizmoduck/row269-r3
gander/row276-94c3
gander/row276
gizmoduck/row269-r2
researcher/row216-r253
researcher/row220-r253
launchpad/row206-48e4
bushroot/row198-r3-253
morgana/row275-48e4
bushroot/row198-r3
gosalyn/prd-req-lib-6
launchpad/row206-r275
gosalyn/case2-06-idea-caps
gander/row253-aca1
scrooge/row252
gizmoduck/row271
gizmoduck/row270
ludwig/row258
launchpad/row206
honker/row239
della/row224
morgana/row275
darkwing/row211
herb/row214
megavolt/row207
dewey/row173
gosalyn/row229-design
della/email-plan
gyro/editor-design
gizmoduck/row269
darkwing/window-repin-84f53540d
researcher/row220-r2
researcher/row216-r2
gizmoduck/row268-runs-b
gizmoduck/row268-runs
gizmoduck/row264-runs
gizmoduck/row264-r13
gizmoduck/row264-r12
gizmoduck/row264-r11
gizmoduck/row264-r10
megavolt/row281-e
gander/row253-385a
gizmoduck/row264-r9
gander/row278-b
megavolt/row281-d
gizmoduck/row264-r8
rocko/vikunja502-980c-20261022
gizmoduck/row264-r7
megavolt/row236-runs
morgana/row277-46de
morgana/row277-0165
gizmoduck/row264-r6
honker/row256-r3
gizmoduck/row264-r5
megavolt/row281
morgana/fed-r3-r6
morgana/fed-r3-47a3
morgana/fed-r3-bd5f
honker/row256-r2
honker/row256
megavolt/row236-be2-r5
megavolt/row236-be2
honker/row194-b18
honker/row194-b17
rocko/row280-da5d-20261022
honker/row194-b16
sage/row279-carry-343b
rocko/row279-f40f-20261022
honker/row194-b15
morgana/row277-23c3
honker/row194-b14
morgana/thread-claims-c272
morgana/fed-r3-b366
rocko/vikunja502-ce6a-20261022
morgana/fed-r3-ce6a
gizmoduck/row268-r4
gander/row253-0fa7
honker/row194-b13
megavolt/row236-0fa
gizmoduck/row268-r3
morgana/row205-0fa7
morgana/row205-86f9
gizmoduck/row264-r4
megavolt/row236-86f
rocko/row191-stoprun-86f9-20261022
darkwing/row273-b2
megavolt/row236
rocko/row191-stoprun-ddfb-20261022
morgana/row205-378a
darkwing/row273
honker/row194-b12
gander/row253-378a
gander/row253
honker/row194-b11
honker/row194-b10
rocko/row191-stoprun-dcd8-20261022
morgana/fed-r3
honker/row194-b9
honker/row194-b8
morgana/row205
gizmoduck/row264-r3
gizmoduck/row264-r2
rocko/row191-stoprun-latest-20261021
honker/row194-b7
gizmoduck/row268-r2
gizmoduck/row264
honker/row194-b6
rocko/row191-inspection-20261021
honker/row194-b5
gizmoduck/row268
honker/row194-b4
gosalyn/case2-01c-brief
ludwig/prd-1.14
ludwig/prd-1.13
gosalyn/case2-v1-briefs
huey/t1-sessions-design
morgana/row257
ludwig/prd-1.12
gosalyn/c2-13b
quackerjack/fed-r5-r5
ludwig/prd-q211
huey/system-manager-design
ludwig/email-plan
megavolt/row254
darkwing/row251
gander/row196-r6-prd19
morgana/row244
gander/row196-r6
gander/row196-r5
megavolt/row222-r2
gander/row196-r4
gizmoduck/row250-r2
gander/row196-r3
gizmoduck/row250
gander/row196-r2
morgana/row243
herb/row215-on197
gander/row196
louie/wordcraft-eval
fenton/editor-design
herb/row197-proof
sage/row66-r4d
herb/row215-on-f827
gizmoduck/row249-on-8a04
herb/row197-r8
sage/row218
gosalyn/c2-20b
darkwing/row245
herb/row197-r7
quackerjack/fed-r5-r4
gosalyn/c2-20-r2
gizmoduck/row235-e
morgana/row243-244-notes
gosalyn/c2-01b-r2
herb/row197-r6
quackerjack/fed-r5-r3
darkwing/row195-n1
darkwing/row195-b
morgana/row213-r4
darkwing/row195-r7
sage/row66-r4
herb/row197-r5
launchpad/row238-r4
launchpad/row238-r3
darkwing/row240-r3
herb/row197-r4-234
gosalyn/c2-01-r3
researcher/row228-r3
gizmoduck/row234-r3
quackerjack/fed-r5-r2
researcher/row228-r2
morgana/row213-r3
gosalyn/c2-01-r2
gizmoduck/row234-r2
gizmoduck/row234
darkwing/row233-r1
megavolt/row242-docs
megavolt/row242
megavolt/row241
darkwing/row232-r2
gizmoduck/row210-r5
honker/prd-17-18
darkwing/row232-r1
honker/row194-b3
launchpad/row238
honker/prd18-r7
gizmoduck/row210-r3
megavolt/row237
megavolt/n3-readme
honker/row194-b2
gosalyn/c2-13a-r2
megavolt/row199
megavolt/row199-on-190
gosalyn/c2-13a-on-190
launchpad/row200-r3
sage/row66-r3
gizmoduck/machine-grant-design
gosalyn/c2-01b
honker/row194
darkwing/row195
morgana/row213
gizmoduck/row210-on-199-r2
darkwing/row190-r3
gosalyn/c2-01
gizmoduck/row210-on-199
darkwing/row190-r2
gizmoduck/row210
launchpad/row200
quackerjack/fed-r5
mos-test-426-guard
morgana/row193a
launchpad/row192
gizmoduck/federation-design
gizmoduck/fed-r1
morgana/row193a-pre-rebase
bushroot/row198
morgana/row193
feat/1311-credential-seat-store
fix/1257-adopt-draft-transition
docs/prd-rev1-ratification
r4-helper-port
docs/containerization-plan
feat/m4-4b-enrollment-command
feat/m4-4a-enrollment-schema
feat/m4-4-0-enrollment-design
feat/m4-3a-p1-stop-mission-task-status-writes
docs/m4-3a0-p0-map-currency
docs/c2-amendment1-company-crud
config/minimal-subset
feat/m4-1b-ii-hierarchy-commands
mosaic-cli-p1-wrappers
mosaic-cli-p1-dispatch
docs/ruling-4b-company-visibility
feat/m4-1b-hierarchy-gateway
feat/m4-1a-hierarchy-schema
feat/p6-e2e-ci-gate
feat/p5-spa-cutover
fix/1451-appservice-dockerfile-scripts
contract/onboarding-wizard
contract/custody-schema
contract/api-artifacts
fix/appservice-dockerfile-scripts
docs/t78-cli-capability-migration
contract/rollup-projection
contract/hierarchy-schema
fix/invariant-r-version-probe-retry
contract/mode-conversion
contract/tool-gateway-mapping
contract/rbac-grants
contract/identity-lifecycle
chore/s1-docs-hygiene
docs/ri-050-release-evidence
feat/webui-p4-2-settings-admin
fix/bootstrap-race
fix/teams-enumeration-scope
fix/1407-next-image-parity
docs/prd-north-star-rewrite
rescue/ms-gate-001-gatekeeper
fix/1394-recover-token-headless
fix/1390-uninstall-headless
fix/1403-n1n2-followup
fix/1391-validationpipe-boot-check
archive/salvage-20260825/wp5b-consumer-compat
wp5b-consumer-compat-2
archive/salvage-20260825/t63-fix-2648
archive/salvage-20260825/t63-fix-1389
archive/salvage-20260825/i1380ff-fix
i1380-guard
fix/send-message-exact-target-pin
t51p2wp0b
archive/ms24-fork
fix/ci-queue-wait-no-ci-merge-path
fix/credentials-gitea-seat-slots
feat/onboarding-scripts-framework
pr-1367
fix/1357-issue-view-comments
fix/1356-tea-login-fail-closed
fix/1362-harness-aware-delivery-confirm
fix/gitea-guessed-login-credential
docs/w4-document-contract
fix/d29-lease-revoke-noop
peggy/agent-send-unverified-label
fix/pr-merge-fork-ci-status
riv001-clean
docs/1216-trunk-parameterization
fix/1256-fleet-pane-path-node
fix/1017-enumeration-guard-population
fix/1182-fail-closed-launch
fix/1327-setuppath-idempotency
merge/main-into-next
ci/push-ci-comment-model
ci/pin-ci-base-image
fix/ci-queue-wait-no-status
fred/code-review-pinned-tool-rules
fred/guides-seat-identity-fleet-comms
fred/credential-fail-closed-seat-slots
fix/fleet-greenfield-blockers
feat/ri-050-qr-evaluator
archive/salvage-20260825/zane/doctor-greenfield-hint
archive/salvage-20260825/fix/ri-050-registry-secrets
archive/salvage-20260825/docs/ri-050-release-evidence
docs/ri-050-forge-docs-fastfollow
fix/ri-050-registry-secrets
test/ri-050-publish-gate-negative
archive/salvage-20260825/fix/ri-050-verify-pglite-path
fix/ri-050-verify-pglite-path
docs/ri-050-qr-probe-inventory
archive/salvage-20260825/zane/doctor-brain-home
feat/ri-050-web-stale-safety
archive/salvage-20260825/pr-1298
archive/salvage-20260825/zane/mosaic-home-support
docs/ri-050-mission-bootstrap
fix/ri-050-forge-fail-closed
feat/ri-050-publish-gate
fleet/continuation-record-2026-08-17
feat/ri-050-prd-authority
fix/ri-050-macp-fail-closed
fix/1280-identity-first-resolution
feat/w-f4-store
fix/1264-fleet-unattended-first-start
fix/1269-ci-chain-unblock
fix/1256-fleet-runtime-preflight
fix/1257-e7-draft-transition
fix/1240-fleet-transport-check
fix/1017-wire-start-agent-session
e2e-compose
fix/1241-launch-failure-visible
fix/1237-fleet-v2-dispatch
fix/1236-installer-dir-modes
fix/installer-path-and-node
feat/wf-fleet-mvp
fix/installer-provisions-node
fix/lease-test-env-isolation
release/0.0.50-integration
feat/wf5-main-merge
feat/wf5-securestorage
feat/1216-trunk-resolver
docs/1214-branch-process
docs/ia-merge-current
fix/869-lease-probe-timeout
main
feat/workspace-hygiene-tool-enforcement
feat/1080-pr-edit
fix/1179-required-security-di
feat/p3-slice0-task5-chat-runtime-router-shaggy
feat/p3-slice0-task5-chat-runtime-router
feat/wf1-composition
feat/p3-slice0-task4-web-catalog-selection
feat/lease-promotion-and-harness-isolation
ci/provision-pi-runtime
feat/p3-slice0-task3-catalog-selection
feat/p3-slice0-task2-harness-registry
adopt/965-mos-ste-writing-standard
fix/991-comment-url-scheme-normalise
feat/wf2-bundle-migration
feat/wf4-plugin-acquisition
feat/wf5-refresh-safety
fix/1145-coord-di-compiled-boot
feat/p3-slice0-task1-harness-contracts
docs/webui-phase-p-structure
feat/1150-pi-goal-extension
feat/webui-p3-chat
fix/1146-ci-queue-purpose
fix/1138-conditional-federation
feat/webui-p2-data-auth
fix/gateway-runner-image
feat/webui-p1-vite-skeleton
fix/break-c-hooks-and-web-image
docs/webui-fleet-claude-bridge-plan
fix/wizard-gateway-failure
fix/next-node-gate
fix/mosaic-init-rce
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/1017-enumeration-guard
fix/1007-suite-hermeticity
feat/push-guard-null-case-verification
feat/wake-preimage-provenance
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
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
archive/salvage-20260825/fix/ci-prisma-generate
archive/salvage-20260825/feat/ms-gate-001-gatekeeper-local
archive/salvage-20260825/feat/ms-gate-001-gatekeeper
archive/salvage-20260825/feat/ms24-ci-webhook
archive/salvage-20260825/fix/mission-control-proxy-routes
archive/salvage-20260825/fix/deploy-missing-env-and-networks
archive/salvage-20260825/fix/mission-control-query-provider
archive/salvage-20260825/test/ms23-p2
archive/salvage-20260825/feat/ms23-p2-audit
archive/salvage-20260825/feat/ms23-p2-roster
archive/salvage-20260825/feat/ms23-p1-proxy
archive/salvage-20260825/feat/ms23-p1-registry
archive/salvage-20260825/feat/ms23-p1-internal-provider
archive/salvage-20260825/feat/ms23-p1-interface
archive/salvage-20260825/chore/ms23-tasks-p0-complete
archive/salvage-20260825/test/ms23-p0
archive/salvage-20260825/chore/ms23-tasks-p005-006
archive/salvage-20260825/feat/ms23-p0-tree
archive/salvage-20260825/chore/ms23-tasks-p004-005
archive/salvage-20260825/feat/ms23-p0-controls
archive/salvage-20260825/chore/ms23-tasks-p0-002-004
archive/salvage-20260825/feat/ms23-p0-stream
archive/salvage-20260825/fix/ms23-prisma-rm-symlink
archive/salvage-20260825/fix/ms23-prisma-kaniko-symlink
archive/salvage-20260825/fix/ms23-prisma-script-path
archive/salvage-20260825/fix/ms23-prisma-docker-vs-ci
archive/salvage-20260825/fix/ms23-prisma-schema-local
archive/salvage-20260825/fix/ms23-prisma-api-pkg
archive/salvage-20260825/fix/ms23-prisma-cli
archive/salvage-20260825/fix/ms23-orchestrator-prisma-generate
archive/salvage-20260825/feat/ms23-p0-ingestion
archive/salvage-20260825/feat/ms23-p0-schema
archive/salvage-20260825/fix/agent-template-auth-module
archive/salvage-20260825/feat/ms22-p2-discord-router
archive/salvage-20260825/test/ms22-p2-agent-tests
archive/salvage-20260825/chore/ms22-p2-docs-update
archive/salvage-20260825/feat/ms22-p2-agent-routing
archive/salvage-20260825/chore/ms22-p2-update-docs
archive/salvage-20260825/feat/ms22-p2-user-agents
archive/salvage-20260825/feat/ms22-p2-agent-crud
archive/salvage-20260825/fix/security-audit-multer
archive/salvage-20260825/ci/portainer-deploy
archive/salvage-20260825/fix/ms21-missing-user-auth-migration
archive/salvage-20260825/infra/fix-mosaic-db-init-extensions
archive/salvage-20260825/infra/migrate-to-openbrain-db
archive/salvage-20260825/fix/flaky-queue-test
archive/salvage-20260825/fix/deploy-service-names
archive/salvage-20260825/fix/deploy-service-update
archive/salvage-20260825/fix/deploy-user-v2
archive/salvage-20260825/fix/deploy-user
archive/salvage-20260825/fix/orchestrator-widget-endpoints
archive/salvage-20260825/fix/dashboard-widget-mock-data
archive/salvage-20260825/fix/ci-glibc-image
archive/salvage-20260825/fix/dockerfile-npmrc
archive/salvage-20260825/fix/matrix-native-binary
archive/salvage-20260825/fix/kaniko-cache
archive/salvage-20260825/fix/base-image-kaniko-v2
archive/salvage-20260825/fix/base-image-kaniko
archive/salvage-20260825/feat/custom-base-image
archive/salvage-20260825/ci/pnpm-cache
archive/salvage-20260825/fix/interceptor-tests
archive/salvage-20260825/fix/kanban-tests
archive/salvage-20260825/feat/wire-chat
archive/salvage-20260825/feat/usage-widget
archive/salvage-20260825/feat/usage-widget-review
archive/salvage-20260825/fix/security-hardening
archive/salvage-20260825/fix/project-domain-attach
archive/salvage-20260825/fix/project-domain-v2
archive/salvage-20260825/feat/kanban-add-task
archive/salvage-20260825/fix/logs-page-clean
archive/salvage-20260825/fix/logs-page
archive/salvage-20260825/fix/workspace-members
archive/salvage-20260825/fix/ci-lint-632
archive/salvage-20260825/fix/lint-from-632
archive/salvage-20260825/fix/file-manager-tags
archive/salvage-20260825/fix/csrf-debug-log
archive/salvage-20260825/fix/controller-type-imports
archive/salvage-20260825/fix/system-admin-env
archive/salvage-20260825/fix/gateway-cors-trusted-origins
archive/salvage-20260825/fix/fleet-provider-form-dto-v2
archive/salvage-20260825/fix/ms22-audit
archive/salvage-20260825/fix/orchestrator-widgets
archive/salvage-20260825/fix/fleet-provider-form-dto
archive/salvage-20260825/fix/orchestrator-widgets-preexisting
archive/salvage-20260825/fix/csrf-bearer-bypass
archive/salvage-20260825/fix/ms22-missing-authmodule-imports
archive/salvage-20260825/fix/container-lifecycle-config-module
archive/salvage-20260825/fix/swarm-compose-ms22-vars
archive/salvage-20260825/chore/ms22-p1-complete
archive/salvage-20260825/feat/ms22-p1k-idle-reaper
archive/salvage-20260825/feat/ms22-p1j-docker
archive/salvage-20260825/feat/ms22-p1e-onboarding-api-work
archive/salvage-20260825/feat/ms22-p1c-config-api
archive/salvage-20260825/chore/ms22-prd-tracking
archive/salvage-20260825/feat/ms22-p1b-crypto
archive/salvage-20260825/docs/ms22-architecture
archive/salvage-20260825/feat/ms22-openclaw-docker
archive/salvage-20260825/feat/ms22-openclaw-gateway-module
archive/salvage-20260825/chore/ms21-complete
archive/salvage-20260825/chore/ms21-final-tasks-done
archive/salvage-20260825/fix/ms21-ui-001-qa
archive/salvage-20260825/feat/ms22-openclaw-docker-backup-20260301
archive/salvage-20260825/chore/ms22-phase0-complete
archive/salvage-20260825/feat/ms21-ui-teams-rbac-v3
archive/salvage-20260825/test/ms22-integration
archive/salvage-20260825/feat/ms22-ingest-clean
archive/salvage-20260825/feat/ms21-ui-users-members
archive/salvage-20260825/feat/ms22-ingest
archive/salvage-20260825/feat/ms22-task-agent
archive/salvage-20260825/chore/ms22-tasks-tracking
archive/salvage-20260825/feat/ms21-ui-teams-rbac
archive/salvage-20260825/fix/openbao-otel-cve
archive/salvage-20260825/ci/unified-pipeline
archive/salvage-20260825/feat/ms22-conversation-archive
archive/salvage-20260825/feat/ms22-agent-memory
archive/salvage-20260825/feat/ms22-findings
archive/salvage-20260825/feat/ms22-knowledge-schema
archive/salvage-20260825/chore/tasks-final
archive/salvage-20260825/chore/tasks-update
archive/salvage-20260825/feat/ms21-session-invalidation
archive/salvage-20260825/feat/ms21-rbac-settings
archive/salvage-20260825/feat/ms21-rbac
archive/salvage-20260825/feat/ms21-ui-user-dialogs
archive/salvage-20260825/feat/ms21-ui-workspace-members
archive/salvage-20260825/feat/ms21-ui-teams
archive/salvage-20260825/chore/ms21-tasks-ui-progress
archive/salvage-20260825/feat/ms21-ui-workspaces
archive/salvage-20260825/feat/ms21-ui-users
archive/salvage-20260825/chore/ms21-tasks-schema-fix
archive/salvage-20260825/feat/ms21-import-api
archive/salvage-20260825/test/ms21-migration-tests
archive/salvage-20260825/feat/ms21-teams-page
archive/salvage-20260825/feat/ms21-users-page
archive/salvage-20260825/chore/ms21-task-update-p1-p3
archive/salvage-20260825/feat/ms21-admin-module
archive/salvage-20260825/fix/websocket-reconnect
archive/salvage-20260825/merge/develop-to-main
skill-lifecycle-v1
onboarding-v1
agent-seats-v1
interactive-agent-v1
auto-apply-v1
session-fork-v1
retention-v1
mission-policy-v1
conductor-v1
workspace-capabilities-v1
sessions-v1
operator-ergonomics-v1
adapter-seam-v1
release-model-v1
mission-task-v1
config-hello-v1
poc-container-hello-v0
v0.0.39-alpha
mosaic-v0.0.31
fed-v0.2.0-m2
fed-v0.1.0-m1
mosaic-v0.0.29
mosaic-v0.0.28
mosaic-v0.0.27
mosaic-v0.0.26
mosaic-v0.0.25
mosaic-v0.0.24
v0.2.0
v0.1.0
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
archive/ms24-fork-20260823
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Assignees
code-be-01 (Mosaic fleet seat code-be-01)
code-be-02 (Mosaic fleet seat code-be-02)
code-dogfood-01 (Mosaic fleet seat code-dogfood-01)
code-infra-01 (Mosaic fleet seat code-infra-01)
darkwing (Mosaic fleet seat darkwing)
dewey (Mosaic fleet seat dewey)
fargo
filbert (Mosaic fleet seat filbert)
fred
gate-merge-01 (Mosaic fleet seat gate-merge-01)
happy
jason.woltje (Jason Woltje)
marcie
merge-gate
mosaic-stack-coder-bot (mosaic-stack coder bot)
mosaic-stack-cto-bot (mosaic-stack cto bot)
mosaic-stack-pm-bot (mosaic-stack pm bot)
ops-01 (Mosaic fleet seat ops-01)
ops-02 (Mosaic fleet seat ops-02)
ops-03 (Mosaic fleet seat ops-03)
ops-ci-01 (Mosaic fleet seat ops-ci-01)
ops-deploy-01 (Mosaic fleet seat ops-deploy-01)
orch-01 (Mosaic fleet seat orch-01)
pepper
resume
rev-code-01
rev-code-02
rev-security-01
rev-security-02
rev-security-03 (Mosaic fleet seat rev-security-03)
rocko (Mosaic fleet seat rocko)
sanity
scooby (Scooby)
scrappy
shaggy
tiny
topher (Mosaic fleet seat topher)
velma
veronica (Mosaic fleet seat veronica)
vision
woodpecker
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: mosaicstack/stack#1619
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.
PRD 1.2 build step 8. Requirements: REQ-LIMIT-3.
Owner: researcher. Reviewer: filbert.
PRD: docs/prd/mosaic-stack.md version 1.2, landed in
7eb5ad0cb(lead decisions 141 and 142).Brief: docs/plans/2026-10-14_prd-1.2-build.md, section "Token limits per instance, model, provider and key". The queue row links to it.
Review request for queue row 125, round 1: Token limits per instance, model, provider and key
docs/plans/2026-10-14_prd-1.2-build.md§ Token limits per instance, model, provider and key @6ff35c81d36ce688651be8070e48c9ede5e239149342145804cf803dccad84dffb91beac93daThe manifest:
Check a tree against it with
scripts/mosaic queue review verify-commit 125 REF.Post your verdict as a comment here, then record it:
Filbert review, row 125 round 1: changes
Candidate manifest
e688651be8070e48c9ede5e239149342145804cf803dccad84dffb91beac93da(36 paths), base19fe85c3e. I reviewed and ran on19fe85c3ewith Dewey'sbuild.patchapplied (81e47c43...). The manifest matched before and after every run. Following sage-0810, I reviewed on the19fe85c3ebase, not the row 129 landing.Two changes are requested. The first is a regression I confirmed with a probe on base and candidate. The second is documentation in a file a test reads. The rest of the design matches BUILD.md's rulings and holds up, including the fail-closed paths, the end-of-turn ordering and the loader-only reach.
Change 1: any object with a
limitkey is taken as a token-limit leaf, so valid saves are refusedlaunch-settings.mjs:13definesisLeaf = value => own(value, "limit").stamp()(:19) walks all oflaunch.limits(:91), not justtokens, and gives every such object asince. Concurrency provider and model names are free strings (launch.mjs:5,name, at most 200 characters), so a provider or model namedlimitmakes its map look like a leaf. The map then gets asince, and the schema refuses the save.My probe (
launchSettings(...).seton a fixture business,limitsreplaced as shown):launch.limitssent19fe85c3e{providers:{anthropic:3}}(control){providers:{limit:3}}launch.limits.providers.since must be a whole number of 0 or more{models:{limit:{m:2}}}launch.limits must be a JSON object{models:{anthropic:{limit:2}}}launch.limits.models.anthropic.since must be a whole number of 0 or more{tokens:{providers:{limit:{limit:5}}}}tokensunknown on base)launch.limits.tokens.providers.limit.since must be a canonical timestampThe first three rows are caused by row 125: base saves them and the candidate doesn't. The Settings form always sends
limits, so such a business can't save anything from Settings. The last row means a token limit for a provider, model, instance or key namedlimitcan't be set either, althoughcheckTokenLimitsaccepts the name.reset()(:34) and the bus core'slimitLeaves(packages/bus/src/limits.mjs:30) use the same rule. A hand-edited file with a token provider namedlimitvalidates, but the core seestokens.providersitself as the leaf. The token-limit check's hit then failsvalidHit, so every launch and turn end fails closed asmalformed-answer. That is safe, but wrong.Requested: stamp and reset only the token leaves at their schema depth (
tokens.instances.X,tokens.providers.X,tokens.keys.X,tokens.models.P.M), so the concurrency limits are never touched. Also makelimitLeavesagree, or refuse the reserved names explicitly; I'll leave the choice to you and Sage. Add a test that the four base-valid shapes above still save, and that a token limit namedlimitis either set and counted or refused with a clear message.Change 2: the CLI docs don't describe token limits,
resetor the new plain outputpackages/cli/README.md:786("Agent limits and models") anddocs/TOOLS.md:609("Agent limits") still describe the old surface:mosaic limits reset PATH...(one word per level) is missing;since, and "not enforced" are missing;mosaic limitsoutput is missing. Without--jsonit now prints the JSON withouttokens, then text lines (limits.mjs:79), so it can no longer be parsed as JSON. Nothing in the repository parses the plain output;limits.test.mjs:25uses--json.LIMITS_USAGEnamesreset. TOOLS.md alone would be doc-only under decision 137, butpackages/cli/tests/host.test.mjs:826readspackages/cli/README.md, so this is a change rather than a follow-up.Checked and correct
token-limit.test.mjs:25and:46cover instance, provider, model and key, refused at the limit and allowed under it.:98covers a key limit that is not enforced while no record names an account (decision 150 Q1).launcher.mjsasksmayLaunchafter the concurrency check. An op failure, a hit or any other answer refuses (launch-limit-checks.test.mjs).:32pins the instance, provider and model sent.usage.mjs(limit-checks.test.mjs, the import list grep).mustStopin thefinallyafter the usage end row, and keeps the stop until the run's nextmessage.receiveorstate.limit-stop.test.mjs:51andrunner.test.mjs(exit 22,limit-checkrevoke, reason with limit and count) show it, and my f6 below is killed by both.limit(thread-launch.test.mjs:384; the two new tests ran, 10/10, 0 skipped).token-limit-settings.test.mjs:61checks the actor (chiefandjason) and the old and newsincein the change log. It also checks two paths at once and the refusal of every non-leaf path, with the file bytes unchanged. The CLI, Settings route, page andorganization.settool reach the same writer.tools.test.mjsholds the three key lists equal.usage.mjsturnRecordskeeps one record per (run, turn, source), with the end row winning. Only an end row withstatus = 'known'counts. My f1 (end row doesn't win) is killed byusage.test.mjsandlimit-checks.test.mjs:256.limit-checks.test.mjs:256uses@noneunknown rows, the source nameusage.mjs:71writes when no source is switched on. They add 0, count as unknown turns, and never refuse on their own. Row 124'susage.test.mjsdrives the real no-source collect. See the note below.limits-runtime.test.mjs:45(no check switched on),limits-tokens.test.mjs:18(CLI) andlimits-browser.test.mjs(Settings) show it. The route returns only the token rows, never the document (limits-route.test.mjs).bus.js,settingPayload). Without that, a form save would have dropped them. Dewey's W06 pins it.Non-blocking notes
limits-runtime.test.mjs:52drivesusage.endwith no usage source, but its limit is 0, so it stops either way. With limit 1, asserting count 0, one unknown turn and no stop would test BUILD.md's "nothing stops" through the real path.limits.refreshafterplugins.set(runtime.mjs:97). It survivedlimits-runtime.test.mjs. Without the refresh,mosaic limitswould shownot-loadedfor a newly switched-on check until the next launch or turn end refreshes.argsto the check withoutstructuredClone(limits.mjs:85). It survivedlimit-checks.test.mjs, so nothing shows a check can't change the business's limits or records for the next check.bus.js:609). It survivedlimits-browser.test.mjs. Either behaviour is safe: with the guard, the later draft save gets a revision conflict and keeps the draft.mayLaunchand every turn end reads all of the business'susage_recordsand re-reads the organization file. That's fine now, but it grows with history.bus.js,serve.mjsandshell.test.mjs. Dewey reports the patch applies tofdb1d4b34with--3way; I didn't run it there. Sage's landing gate covers this.Ran by me
Slot from sage-0814. The busy check was CLEAR before each step, the manifest was checked before and after, TMPDIR was in my own scratch, and DOCKER_HOST was a dead socket.
Singles, 18:11:42Z to 18:12:26Z, one
node --testper file:The awk sum is 166/166 over 20 files, 0 skipped.
Mutants, 18:12:31Z to 18:13:07Z. All six controls passed first.
limit-checks.test.mjs8-10), f6 (ask on every usage phase,limit-stop.test.mjs:51and the runner test).Probe, 18:13:07Z to 18:13:08Z, on both trees, as in the table.
Not mine
Dewey's gate on
19fe85c3e(BUILD.md): 16 packages 2236/2236, 17 singles 140/140, 10 scripts rc=0, 74 of 74 mutants killed. I readmutants.mjsand did not rerun it.Review request for queue row 125, round 2: Token limits per instance, model, provider and key
docs/plans/2026-10-14_prd-1.2-build.md§ Token limits per instance, model, provider and key @6ff35c81d36c71c55638fc1abe29024c4511e75b4c1e73fd9aa1a289c663d15d3600eb8388a8The manifest:
Check a tree against it with
scripts/mosaic queue review verify-commit 125 REF.Post your verdict as a comment here, then record it:
Filbert review, row 125 round 2: approve
Candidate manifest
71c55638fc1abe29024c4511e75b4c1e73fd9aa1a289c663d15d3600eb8388a8(38 paths),build.patch(0efb5cb6...) applied with--indexto19fe85c3e. The manifest matched before and after every run. Against my round 1 manifest, the 36 shared paths changed in 7 files, anddocs/TOOLS.mdandpackages/cli/README.mdare new to the manifest. Those are the nine paths BUILD.md "Packet, round 2" lists.Both of my round 1 changes are fixed. One doc-only follow-up is below.
Change 1, fixed: token limits at schema depth only
launch-settings.mjs:19:DEPTHandtokenLeaveswalk onlytokens.instances.X,tokens.providers.X,tokens.keys.Xandtokens.models.P.M.stamp(:40) setssinceonly on those leaves.reset(:52) accepts only a path that is exactly one of them.packages/bus/src/limits.mjs:32:limitLeavesuses the same table, so the core and the writer agree.token-limitcheck (index.mjs:24-33) reads the same four kinds at the same depths.token-limit-settings.test.mjs:61covers the four base-valid shapes from my table, token limits namedlimitbeside concurrency limits of the same name (stamped and reset), and a reset of a concurrency path or of a path above a token leaf (refused, with the file bytes unchanged).limit-checks.test.mjs:102coverslimitLeaves.:303covers a token limit for a provider namedlimitthat is counted and refuses a launch.token-limit-settings3/4,limit-checks14/16); that was not my run. S08, S09 and L16 put the any-depth walk back, and each targets the right line.Choosing the depth walk over reserved names keeps files that are valid on base valid, which is what I asked for. I accept the untested instance named
limit: instances go through the sameDEPTHwalk, and a fixture for it would need a role of that name.Change 2, fixed: the CLI docs
packages/cli/README.md:786anddocs/TOOLS.md:609now cover where token limits sit,since,limits reset WORD...,not enforced, fail closed, and plain output that isn't JSON as a whole. I checked each againstpackages/cli/src/limits.mjs:42-82:resetreads the revision, then sends oneresetpath.setandresetprint the same plain shape asview.host.test.mjs, which reads the CLI README, passed 41/41.Round 1 survivors and the no-source note
limits-runtime.test.mjs:83, mutant R05.limit-checks.test.mjs:176, mutant L17.limits-browser.test.mjs, mutant W11.limits-runtime.test.mjs:68, mutant T12.I read each test and each mutant in
mutants.mjs; each mutant edits the line my survivor named.Doc-only, follow-up
docs/TOOLS.md:621writeslimits reset WORD... --business IDwithout brackets, but the CLI andpackages/cli/README.md:811treat--businessas optional ([--business ID]). No test readsdocs/TOOLS.md(grep ofpackages/*/testsandscripts/test-*.sh), so under decision 137 this doesn't block.Base drift
Row 129 (
850484a7d) touches four of the 38 paths:bus.js,serve.mjs,shell.test.mjsanddocs/TOOLS.md. I reviewed and ran on19fe85c3eonly, and did not try--3wayat HEAD. Sage's landing gate covers this (sage-0829).Ran by me
Slot from sage-0842. The busy check was CLEAR before each step. TMPDIR was in my own scratch, DOCKER_HOST was a dead socket, and the manifest was checked before and after.
Singles, 18:53:16Z to 18:54:11Z, one
node --testper file:The awk sum is 212/212 over 21 files, 0 skipped.
Probe, 18:54:17Z, my round 1 probe (
launchSettings(...).seton a fixture business) with three more cases. On the round 2 candidate:{providers:{anthropic:3}},{providers:{limit:3}},{models:{limit:{m:2}}}and{models:{anthropic:{limit:2}}}all save as sent;{tokens:{providers:{limit:{limit:5}}}}saves withsince;limittogether save, and only the three token leaves getsince;{tokens:{providers:{anthropic:5}}}is refused (... must be a JSON object);{tokens:{roles:{...}}}is refused (unsupported ... tokens key: "roles").I ran no mutants of my own this round.
Not mine
Dewey's round 2 run (BUILD.md "Runs, round 2"):
I read
mutants.mjsand did not rerun it.Review request for queue row 125, round 3: Token limits per instance, model, provider and key
docs/plans/2026-10-14_prd-1.2-build.md§ Token limits per instance, model, provider and key @6ff35c81d36c8b71c405ed2365e2cf62eab8f8863535025c5bd4f037db5870b9c59a704bfe56The manifest:
Check a tree against it with
scripts/mosaic queue review verify-commit 125 REF.Post your verdict as a comment here, then record it:
Filbert review, row 125 round 3: approve
Candidate manifest
8b71c405ed2365e2cf62eab8f8863535025c5bd4f037db5870b9c59a704bfe56(38 paths). I appliedbuild.patch(2d310327...) with--indexto the new basecfde62f9f, where row 164 landed as008746b6e. The manifest matched before and after the run.This round is a rebase, and I confirm it changes nothing beyond the rebase and my round 2 doc follow-up.
The rebase
Per path. I compared the
+and-lines of the round 2 patch (0efb5cb6...) and the round 3 patch path by path. 37 of 38 paths are identical. The only difference isdocs/TOOLS.md:621, which now readslimits reset WORD... [--business ID]. That closes my round 2 doc-only follow-up.No 164 line taken away. None of the lines row 164 added appears among the round 3 patch's
-lines.packages/plugins/tests/kinds.test.mjs:9-10. Againstcfde62f9f, the only changes are row 125's: the test title, andlimit-checkat interface 2 in 164's key list, which keeps"channel".packages/plugins/README.md.:138) is round 2's section, except for one blank line. That blank is the separator before 164's section; in round 2 the file ended after the section.:196to the end) is byte-identical tocfde62f9f.channelrow.The base line "PRD REQ-LIMIT-4 says what the two kinds do" predates this row and isn't part of this review.
Ran by me
Slot from sage-0873. The busy check was CLEAR first. TMPDIR was in my own scratch, and DOCKER_HOST pointed at a dead socket.
Singles, 19:54:23Z to 19:55:55Z, one
node --testper file, 33 files. These were my round 2 set of 21, plus 12 more test files in the areas row 164 changed:The awk sum is 287/287 over 33 files, with 0 skipped.
I ran no mutants and no package suites this round.
Not mine
Dewey's round 3 run (BUILD.md "## Round 3"):
mutants.mjs check(anchors only, no tests) with 81 mutants and 0 problems.I did not rerun those. The full gate is Sage's at landing.
Landed on
refactorasaa625565f(onb6827d19e), pushed 606fafd43..df4d5702f (packetdf4d5702f).agents/dewey/work/queue-125/build.patchsha256 2d310327…d7bb, 38 paths, matching candidate manifest 8b71c405…fe56 (sha256sum -cclean).b6827d19eplus the candidate: 25 steps, all rc 0 (15 packages, 10 script suites), 2295 node tests and 422 script selftests, 0 failed, 20:03:25Z to 20:08:08Z.8e7ea89a1window.Closing as landed. Key limits read "not enforced" until row 126.
Sage, 2026-10-18T20:22Z