@bongos/core 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bongos-core.json +5727 -0
- package/.claude/skills/blocker-review/SKILL.md +91 -0
- package/.claude/skills/blocker-solve/SKILL.md +96 -0
- package/.claude/skills/builder-backup/SKILL.md +54 -0
- package/.claude/skills/builder-box/SKILL.md +45 -0
- package/.claude/skills/builder-claim/SKILL.md +76 -0
- package/.claude/skills/builder-connect/SKILL.md +59 -0
- package/.claude/skills/builder-cost/SKILL.md +47 -0
- package/.claude/skills/builder-end/SKILL.md +81 -0
- package/.claude/skills/builder-exit/SKILL.md +88 -0
- package/.claude/skills/builder-key/SKILL.md +40 -0
- package/.claude/skills/builder-reauth/SKILL.md +50 -0
- package/.claude/skills/builder-redteam/SKILL.md +109 -0
- package/.claude/skills/builder-release/SKILL.md +41 -0
- package/.claude/skills/builder-setup/SKILL.md +62 -0
- package/.claude/skills/builder-ship/SKILL.md +79 -0
- package/.claude/skills/builder-stage/SKILL.md +51 -0
- package/.claude/skills/builder-start/SKILL.md +46 -0
- package/.claude/skills/close-box/SKILL.md +43 -0
- package/.claude/skills/design-sync/SKILL.md +69 -0
- package/.claude/skills/dev/SKILL.md +49 -0
- package/.claude/skills/feedback/SKILL.md +32 -0
- package/.claude/skills/figma-design-sync/SKILL.md +74 -0
- package/.claude/skills/goal-review/SKILL.md +89 -0
- package/.claude/skills/idea-triage/SKILL.md +144 -0
- package/.claude/skills/ideate/SKILL.md +82 -0
- package/.claude/skills/merge-mode/SKILL.md +169 -0
- package/.claude/skills/new-project/SKILL.md +108 -0
- package/.claude/skills/otb-character-review/SKILL.md +71 -0
- package/.claude/skills/otb-design-review/SKILL.md +47 -0
- package/.claude/skills/otb-feedback-capture/SKILL.md +45 -0
- package/.claude/skills/otb-figma-sync/SKILL.md +54 -0
- package/.claude/skills/otb-tile-generate/SKILL.md +45 -0
- package/.claude/skills/paint/SKILL.md +70 -0
- package/.claude/skills/planning-session/SKILL.md +299 -0
- package/.claude/skills/priority-session/SKILL.md +134 -0
- package/.claude/skills/read-session-export/SKILL.md +58 -0
- package/.claude/skills/recall/SKILL.md +52 -0
- package/.claude/skills/session-handoff/SKILL.md +46 -0
- package/.claude/skills/status/SKILL.md +33 -0
- package/.devcontainer/Dockerfile +69 -0
- package/.devcontainer/README.md +73 -0
- package/.devcontainer/devcontainer-lock.json +19 -0
- package/.devcontainer/devcontainer.json +93 -0
- package/.devcontainer/healthcheck.sh +84 -0
- package/.devcontainer/init-firewall.sh +198 -0
- package/.devcontainer/post-create.sh +153 -0
- package/.dockerignore +36 -0
- package/.env.local.example +32 -0
- package/.gitattributes +83 -0
- package/.gitignore +91 -0
- package/CLAUDE.md +242 -0
- package/CODE_OF_CONDUCT.md +46 -0
- package/CONTRIBUTING.md +51 -0
- package/Dockerfile +46 -0
- package/GOVERNANCE.md +44 -0
- package/LICENSE +661 -0
- package/README.md +88 -0
- package/bin/bongos.js +222 -0
- package/clients/bongos-client/README.md +48 -0
- package/clients/bongos-client/bongos-client.global.js +617 -0
- package/clients/bongos-client/examples/hello-world.mjs +62 -0
- package/clients/bongos-client/index.cjs +619 -0
- package/clients/bongos-client/index.d.ts +793 -0
- package/clients/bongos-client/index.mjs +614 -0
- package/clients/bongos-client/package.json +32 -0
- package/config/branding.neutral.json +60 -0
- package/config/design-tokens.neutral.json +51 -0
- package/config/design-tokens.schema.json +96 -0
- package/config/modules.neutral.json +9 -0
- package/docker-compose.yml +52 -0
- package/docker-entrypoint.sh +30 -0
- package/docs/adr/0001-stack-choice-single-vps.md +45 -0
- package/docs/adr/0002-digitalocean-over-hetzner.md +27 -0
- package/docs/adr/0003-cloudflare-origin-cert-over-letsencrypt.md +35 -0
- package/docs/adr/0004-amazonprimea-name-and-trademark-acceptance.md +45 -0
- package/docs/adr/0005-invisible-other-players-in-v1.md +37 -0
- package/docs/adr/0006-singleton-worldroom-plus-queueroom.md +30 -0
- package/docs/adr/0007-persistent-identity-via-localstorage-uuid.md +31 -0
- package/docs/adr/0008-family-based-tile-generation.md +86 -0
- package/docs/adr/0008-google-chat-oauth-user-auth.md +37 -0
- package/docs/adr/0009-autotile-architecture.md +181 -0
- package/docs/adr/0010-pms-architecture.md +70 -0
- package/docs/adr/0011-terrain-id-rendering-model.md +174 -0
- package/docs/adr/0012-ground-object-cell-split.md +208 -0
- package/docs/adr/0013-paths-as-object-overlays-with-autotile-dispatch.md +158 -0
- package/docs/adr/0014-families-canonical-over-vocabulary.md +103 -0
- package/docs/adr/0015-task-dependencies-and-auto-promotion.md +125 -0
- package/docs/adr/0016-trust-boundary-server-enforced-permissions.md +132 -0
- package/docs/adr/0017-code-simplification-and-repo-cleanliness.md +74 -0
- package/docs/adr/0018-three-rank-model-goes-live.md +97 -0
- package/docs/adr/0019-red-team-bounty-payout-table.md +52 -0
- package/docs/adr/0020-security-model-public-stub.md +70 -0
- package/docs/adr/0021-per-builder-skill-model-preferences.md +99 -0
- package/docs/adr/0022-secrets-policy.md +124 -0
- package/docs/adr/0023-kind-multipliers-and-idea-bonus.md +118 -0
- package/docs/adr/0024-cloneable-repo-local-first-memory.md +277 -0
- package/docs/adr/0024-multi-agent-system-architecture.md +125 -0
- package/docs/adr/0025-offsite-backup-vendor-digitalocean-spaces.md +59 -0
- package/docs/adr/0025-structured-criterion-task-link.md +44 -0
- package/docs/adr/0026-bfg-memory-hygiene-and-cross-builder-learning.md +117 -0
- package/docs/adr/0027-bfg-session-inefficiency-evaluator.md +170 -0
- package/docs/adr/0028-honest-llm-spend-accounting.md +109 -0
- package/docs/adr/0029-status-page-outage-resilience.md +59 -0
- package/docs/adr/0030-builders-hall-live-updates.md +59 -0
- package/docs/adr/0031-cloud-dev-environments-for-builders.md +222 -0
- package/docs/adr/0032-discord-mirror-of-gds.md +50 -0
- package/docs/adr/0033-discord-bot-service-principal.md +82 -0
- package/docs/adr/0034-thetes-graduated-newcomer-rank.md +53 -0
- package/docs/adr/0035-builder-onboarding-three-paths.md +128 -0
- package/docs/adr/0036-builders-subdomain-and-ui-reorg.md +40 -0
- package/docs/adr/0037-discord-channel-management.md +51 -0
- package/docs/adr/0038-chromebook-ttyd-cloudflare-tunnel.md +111 -0
- package/docs/adr/0039-setup-first-onboarding-ux.md +49 -0
- package/docs/adr/0040-remote-control-default-browser-onramp.md +47 -0
- package/docs/adr/0041-temporary-grader-bypass-killswitch.md +40 -0
- package/docs/adr/0042-builder-self-deploy-ci-auto-merge.md +82 -0
- package/docs/adr/0043-git-ssh-trust-boundary-and-rank-floor-on-permission-paths.md +74 -0
- package/docs/adr/0044-mediterranean-palette-replacement.md +73 -0
- package/docs/adr/0044-per-box-live-game-preview.md +57 -0
- package/docs/adr/0045-devbox-desktop-app.md +133 -0
- package/docs/adr/0046-sandbox-first-review-gate.md +72 -0
- package/docs/adr/0047-discord-bugs-intake-anti-abuse.md +36 -0
- package/docs/adr/0048-works-in-progress-ia-split.md +32 -0
- package/docs/adr/0049-split-parallel-safety-contract.md +46 -0
- package/docs/adr/0050-device-flow-admission-invite-gated-by-default.md +43 -0
- package/docs/adr/0051-full-session-transcript-corpus.md +57 -0
- package/docs/adr/0052-sandbox-for-everyone-game-only-preview.md +70 -0
- package/docs/adr/0053-scoped-dev-box-session.md +55 -0
- package/docs/adr/0054-session-token-reward-cost-plus.md +63 -0
- package/docs/adr/0055-server-mediated-branch-publish.md +47 -0
- package/docs/adr/0056-prod-deploy-script-mirror-and-healthcheck-retry.md +62 -0
- package/docs/adr/0057-container-cost-ledger.md +28 -0
- package/docs/adr/0057-discord-archon-approval-channels.md +64 -0
- package/docs/adr/0058-automatic-gate-surface-gatekeeper.md +64 -0
- package/docs/adr/0059-single-approval-remove-devbox-approval-gate.md +37 -0
- package/docs/adr/0060-gds-retrieval-layer.md +97 -0
- package/docs/adr/0061-context-layer-decomposition.md +61 -0
- package/docs/adr/0062-medusa-instance-model-decoupling.md +107 -0
- package/docs/adr/0063-generated-repo-map-symbol-skeleton.md +44 -0
- package/docs/adr/0064-rename-medusa-to-cloud-bongos.md +49 -0
- package/docs/adr/0065-agpl-nonprofit-ai-first-governance.md +69 -0
- package/docs/adr/0066-generated-file-map-sections.md +51 -0
- package/docs/adr/0067-session-start-fast-forward-pull.md +43 -0
- package/docs/adr/0068-shared-art-key-for-newcomers.md +38 -0
- package/docs/adr/0069-hall-live-channel-sse-decouple.md +35 -0
- package/docs/adr/0070-deterministic-session-card-delivery.md +44 -0
- package/docs/adr/0071-box-confirm-before-destroyed-and-drift-reconcile.md +59 -0
- package/docs/adr/0072-bongos-app-mac-signed-first-windows-deferred.md +35 -0
- package/docs/adr/0072-dev-box-code-staleness-visibility.md +39 -0
- package/docs/adr/0073-builder-needs-signal-and-byok-gemini-key.md +64 -0
- package/docs/adr/0073-secrets-scan-exclude-uri-detector.md +37 -0
- package/docs/adr/0074-memory-map-stays-light.md +32 -0
- package/docs/adr/0075-per-system-cost-attribution.md +37 -0
- package/docs/adr/0076-in-session-deterministic-compaction.md +58 -0
- package/docs/adr/0077-content-addressed-llm-cache.md +32 -0
- package/docs/adr/0078-deterministic-first-cron.md +48 -0
- package/docs/adr/0079-value-gated-autonomous-engagement.md +39 -0
- package/docs/adr/0080-llm-cache-api-transport-and-trust-model.md +46 -0
- package/docs/adr/0081-tool-agnostic-design-layer.md +62 -0
- package/docs/adr/0082-productized-key-storage-provisioning.md +32 -0
- package/docs/adr/0082-server-side-merge-conflict-auto-resolution.md +55 -0
- package/docs/adr/0083-modular-architecture-strangler-build-plan.md +143 -0
- package/docs/adr/0084-auto-derived-per-task-rank-floor.md +86 -0
- package/docs/adr/0085-remove-default-per-builder-spend-cap.md +39 -0
- package/docs/adr/0086-goal-scoped-work-hierarchy.md +123 -0
- package/docs/adr/0087-bongos-app-architecture-and-handoff-contract.md +49 -0
- package/docs/adr/0087-compete-on-governance-not-tooling-cursor.md +65 -0
- package/docs/adr/0088-consistent-character-generative-animation.md +169 -0
- package/docs/adr/0089-modular-multi-model-adversarial-grader.md +179 -0
- package/docs/adr/0090-metic-task-authoring.md +73 -0
- package/docs/adr/0091-bounding-the-kernel-and-db-carve.md +106 -0
- package/docs/adr/0092-hosting-module-and-on-prem-target.md +117 -0
- package/docs/adr/0093-tranche-2-core-carve-sequence.md +72 -0
- package/docs/adr/0094-repo-atlas-self-drawing-codebase-map.md +49 -0
- package/docs/adr/0095-borrowed-memory-and-retrieval-concepts.md +65 -0
- package/docs/adr/0095-cross-agent-context-management.md +58 -0
- package/docs/adr/0096-require-reward-before-workable.md +209 -0
- package/docs/adr/0097-one-active-claim-per-session-and-worktree-binding.md +46 -0
- package/docs/adr/0097-retroactive-reward-backfill.md +124 -0
- package/docs/adr/0098-public-mirror-publish-manifest.md +92 -0
- package/docs/adr/0099-delayed-redacted-mirror-export.md +55 -0
- package/docs/adr/0100-two-repo-instance-model.md +60 -0
- package/docs/adr/0101-goal-hierarchy-phase-5-judge-membership-reward.md +90 -0
- package/docs/adr/0102-finish-bounding-the-kernel.md +36 -0
- package/docs/adr/0103-core-first-extraction-cloud-bongos-trunk.md +70 -0
- package/docs/adr/0103-gdsv4-bongos-consolidation.md +28 -0
- package/docs/adr/0104-trust-gds-api-channel-in-auto-mode.md +42 -0
- package/docs/adr/0105-instance-seed-migrations-out-of-core.md +47 -0
- package/docs/adr/0106-goal-owner-manager-authority.md +84 -0
- package/docs/adr/0107-module-upstreaming-contribution-to-core-catalog.md +83 -0
- package/docs/adr/0108-instance-composition-configurable-root.md +87 -0
- package/docs/adr/0109-self-describing-openapi-and-hosted-docs.md +44 -0
- package/docs/adr/0110-untrack-whole-file-generated-nav-docs.md +49 -0
- package/docs/adr/0111-instance-hosting-provisioning-module.md +135 -0
- package/docs/adr/0112-private-goals-invitations-join-requests.md +72 -0
- package/docs/adr/0113-sandbox-studio-descope-superseded-by-0044-0052.md +41 -0
- package/docs/adr/0114-instance-docs-discovery-contract.md +32 -0
- package/docs/adr/0115-scheduled-routines-portability.md +31 -0
- package/docs/adr/0116-api-error-envelope-and-code-taxonomy.md +62 -0
- package/docs/adr/0117-api-versioning-and-deprecation-policy.md +50 -0
- package/docs/adr/0118-api-contract-source-of-truth-code-first.md +47 -0
- package/docs/adr/0119-api-pagination-contract.md +34 -0
- package/docs/adr/0120-pay-on-land-and-builder-owned-rebase-gate.md +108 -0
- package/docs/adr/0121-greenfield-vs-brownfield-onboarding-adopt-existing-repo.md +97 -0
- package/docs/adr/0122-onboarding-diagram-renders-deploy-rendered-off-git.md +43 -0
- package/docs/adr/0123-box-idle-sweep-autosave-before-destroy.md +36 -0
- package/docs/adr/0124-typed-api-response-bodies.md +37 -0
- package/docs/adr/0125-control-plane-scaffolds-standalone-instance-repo.md +36 -0
- package/docs/adr/0126-dedicated-cloudbongos-control-plane-droplet.md +30 -0
- package/docs/adr/0127-cross-box-fleet-observability.md +64 -0
- package/docs/adr/0128-provisioning-runner-privilege-and-db-auth-model.md +46 -0
- package/docs/adr/0129-cloudbongos-control-plane-pull-deploy.md +34 -0
- package/docs/adr/0130-provision-remote-exec-over-ssh.md +61 -0
- package/docs/adr/0131-rank-scoped-skill-visibility.md +47 -0
- package/docs/adr/0132-cohost-fleet-control-plane-migration.md +54 -0
- package/docs/adr/0133-github-app-manifest-onboarding-signin.md +42 -0
- package/docs/adr/0134-private-first-npm-distribution.md +38 -0
- package/docs/adr/README.md +208 -0
- package/docs/api/openapi.json +13720 -0
- package/docs/api-reference.md +437 -0
- package/docs/architecture.md +244 -0
- package/docs/branding-contract.md +66 -0
- package/docs/branding-fill-prompt.md +25 -0
- package/docs/canonical-permissions.md +241 -0
- package/docs/design/container-exterior-tiles.md +49 -0
- package/docs/design/container-exterior.md +81 -0
- package/docs/design/container-interior.md +77 -0
- package/docs/design/modular-architecture/00-research-report.md +107 -0
- package/docs/design/modular-architecture/01-architecture.md +125 -0
- package/docs/design/modular-architecture/02-module-map.md +116 -0
- package/docs/design/modular-architecture/03-builder-flows.md +104 -0
- package/docs/design/modular-architecture/04-module-lifecycle.md +62 -0
- package/docs/design/modular-architecture/README.md +27 -0
- package/docs/design/vanilla-hall-ui-redesign-scope.md +284 -0
- package/docs/design/world-map-scroll.md +41 -0
- package/docs/design-contract.md +320 -0
- package/docs/file-map.md +418 -0
- package/docs/handoff-template.md +92 -0
- package/docs/modules-contract.md +293 -0
- package/docs/onboarding/browser-terminal-guide.md +73 -0
- package/docs/onboarding/diagrams/01-task-lifecycle.mmd +28 -0
- package/docs/onboarding/diagrams/02-rank-ladder.mmd +54 -0
- package/docs/onboarding/diagrams/03-drachmae-karma.mmd +37 -0
- package/docs/onboarding/diagrams/04-architecture.mmd +51 -0
- package/docs/onboarding/diagrams/05-versioning.mmd +29 -0
- package/docs/onboarding/diagrams/README.md +94 -0
- package/docs/onboarding/diagrams/assertions.json +170 -0
- package/docs/onboarding/diagrams/puppeteer-config.json +1 -0
- package/docs/onboarding/diagrams/render-config.json +9 -0
- package/docs/onboarding/drachmae-and-karma.md +178 -0
- package/docs/onboarding/primer.md +202 -0
- package/docs/project-context.template.md +67 -0
- package/docs/recipes/README.md +35 -0
- package/docs/recipes/audit-replay.md +100 -0
- package/docs/recipes/bongos-cli-release.md +66 -0
- package/docs/recipes/builder-box-lifecycle.md +152 -0
- package/docs/recipes/claude-design-loop.md +143 -0
- package/docs/recipes/claude-gemini-bongos-doors.md +155 -0
- package/docs/recipes/cloudbongos-staging-gate.md +139 -0
- package/docs/recipes/cloudbongos-standup.md +111 -0
- package/docs/recipes/devbox-app-release.md +93 -0
- package/docs/recipes/devbox-app-windows-test.md +128 -0
- package/docs/recipes/failed-ship-recovery-proof.md +102 -0
- package/docs/recipes/figma-design-loop.md +129 -0
- package/docs/recipes/gds-db-backup.md +255 -0
- package/docs/recipes/instance-deploy.md +37 -0
- package/docs/recipes/managed-settings-remote-control.md +416 -0
- package/docs/recipes/memory-backup.md +71 -0
- package/docs/recipes/memory-sync-conflicts.md +98 -0
- package/docs/recipes/multi-builder-merge.md +78 -0
- package/docs/recipes/ops-gotchas.md +212 -0
- package/docs/recipes/overnight-builder.md +53 -0
- package/docs/recipes/packaging-the-core.md +49 -0
- package/docs/recipes/parallel-load-results-2026-05-30.md +63 -0
- package/docs/recipes/parallel-load-test.md +32 -0
- package/docs/recipes/pixel-art-pipeline.md +411 -0
- package/docs/recipes/private-npm-distribution.md +79 -0
- package/docs/recipes/search-index-ingestion.md +67 -0
- package/docs/recipes/self-host.md +60 -0
- package/docs/recipes/ship-and-regrade.md +72 -0
- package/docs/recipes/staging-data.md +50 -0
- package/docs/recipes/staging-environment.md +215 -0
- package/docs/recipes/upgrading-the-core.md +58 -0
- package/docs/research/cursor-competitive-analysis.md +255 -0
- package/docs/research/llm-model-agnostic-and-cheaper-grader.md +227 -0
- package/migrations/003_pms.sql +284 -0
- package/migrations/004_pms_cost_idempotency.sql +13 -0
- package/migrations/005_pms_smoke_filter.sql +44 -0
- package/migrations/006_pms_v2.sql +378 -0
- package/migrations/007_pms_v2_hierarchy_trigger.sql +59 -0
- package/migrations/008_pms_v2_migration_allocator.sql +27 -0
- package/migrations/009_pms_v2_blockers_table.sql +68 -0
- package/migrations/010_uptime.sql +29 -0
- package/migrations/011_backfill_v2_v3_done_when.sql +20 -0
- package/migrations/012_pms_v2_task_lifecycle_states.sql +82 -0
- package/migrations/013_claim_locking.sql +22 -0
- package/migrations/014_pms_task_discipline.sql +86 -0
- package/migrations/015_pms_estimation_calibration.sql +140 -0
- package/migrations/016_pms_task_grades.sql +60 -0
- package/migrations/017_version_progress_exclude_abandoned.sql +49 -0
- package/migrations/019_rename_pms_v3_to_gds_v3.sql +65 -0
- package/migrations/020_task_dependencies.sql +99 -0
- package/migrations/021_v3_renumber_and_deps.sql +224 -0
- package/migrations/022_v3_reconcile_dep_gated_status.sql +41 -0
- package/migrations/023_pms_rank.sql +30 -0
- package/migrations/025_builder_exit_status.sql +15 -0
- package/migrations/027_builders_preferred_disciplines.sql +46 -0
- package/migrations/028_tasks_parallel_safe.sql +71 -0
- package/migrations/029_rank_three_live.sql +32 -0
- package/migrations/030_vulnerability_reports.sql +61 -0
- package/migrations/031_reward_simplification.sql +57 -0
- package/migrations/032_repo_health_snapshots.sql +56 -0
- package/migrations/033_audit_log.sql +64 -0
- package/migrations/034_lifecycle_breakdown_leaf_only.sql +62 -0
- package/migrations/035_auth_token_hygiene.sql +66 -0
- package/migrations/037_builder_skill_model_prefs.sql +44 -0
- package/migrations/038_task_override_requests.sql +51 -0
- package/migrations/039_newcomer_friendly_column.sql +124 -0
- package/migrations/040_builder_karma.sql +58 -0
- package/migrations/041_kind_multipliers_and_idea_bonus.sql +42 -0
- package/migrations/042_criterion_proposal_workflow.sql +78 -0
- package/migrations/043_builder_onboarding_observability.sql +66 -0
- package/migrations/044_tasks_requires_rank.sql +97 -0
- package/migrations/045_builder_onboarding_state.sql +147 -0
- package/migrations/046_cost_log_builder_attribution.sql +42 -0
- package/migrations/054_builder_memory.sql +108 -0
- package/migrations/055_task_criteria.sql +90 -0
- package/migrations/058_peer_votes.sql +41 -0
- package/migrations/059_onboarding_pick_disciplines.sql +59 -0
- package/migrations/060_access_requests.sql +46 -0
- package/migrations/061_backfill_override_ship_attribution.sql +29 -0
- package/migrations/062_session_records.sql +34 -0
- package/migrations/063_session_records_tool_errors_idx.sql +11 -0
- package/migrations/064_grade_attempts.sql +18 -0
- package/migrations/065_bfg_principal.sql +58 -0
- package/migrations/066_live_notify_triggers.sql +69 -0
- package/migrations/067_builder_boxes.sql +117 -0
- package/migrations/067_discord_bot_foundation.sql +69 -0
- package/migrations/068_thetes_requires_rank.sql +27 -0
- package/migrations/069_builder_ssh_keys.sql +66 -0
- package/migrations/070_box_intents.sql +101 -0
- package/migrations/071_box_first_provision_approval.sql +46 -0
- package/migrations/072_onboarding_ship_three_remove_primer.sql +80 -0
- package/migrations/073_box_terminal_access.sql +46 -0
- package/migrations/075_builder_sound_prefs.sql +28 -0
- package/migrations/078_box_claude_active.sql +22 -0
- package/migrations/079_box_first_connected_at.sql +20 -0
- package/migrations/081_tasks_needs_migration.sql +34 -0
- package/migrations/084_tasks_security_sensitive.sql +24 -0
- package/migrations/085_security_engagement_docs.sql +34 -0
- package/migrations/086_rename_disciplines.sql +125 -0
- package/migrations/088_builders_anthropic_link.sql +28 -0
- package/migrations/089_builders_monthly_budget.sql +19 -0
- package/migrations/090_box_scoped_sessions.sql +38 -0
- package/migrations/091_session_token_reward.sql +44 -0
- package/migrations/093_tasks_sandbox_review.sql +22 -0
- package/migrations/102_remove_box_first_provision_approval.sql +58 -0
- package/migrations/103_search_chunks.sql +90 -0
- package/migrations/104_builder_box_blocked.sql +34 -0
- package/migrations/105_box_host_keys.sql +35 -0
- package/migrations/111_medusa_customer0_framing.sql +35 -0
- package/migrations/112_drop_track_check.sql +25 -0
- package/migrations/113_merge_lease.sql +16 -0
- package/migrations/114_cloudbongos_rename_live_strings.sql +32 -0
- package/migrations/118_currency_label_decoupling.sql +23 -0
- package/migrations/119_builder_behavior_prefs.sql +31 -0
- package/migrations/121_box_code_version.sql +37 -0
- package/migrations/122_builder_gemini_key.sql +30 -0
- package/migrations/123_cost_log_tiers.sql +33 -0
- package/migrations/124_cost_baseline.sql +45 -0
- package/migrations/125_llm_cache.sql +54 -0
- package/migrations/126_autonomy_runs.sql +33 -0
- package/migrations/143_cost_calibration.sql +63 -0
- package/migrations/145_backfill_task_requires_rank.sql +84 -0
- package/migrations/160_goal_tier.sql +88 -0
- package/migrations/163_polymorphic_dependencies.sql +187 -0
- package/migrations/164_event_sound_prefs.sql +20 -0
- package/migrations/165_task_module_key.sql +15 -0
- package/migrations/171_claims_published_head_sha.sql +24 -0
- package/migrations/174_close_orphaned_claims_on_terminal_tasks.sql +30 -0
- package/migrations/175_task_grades_diff_hash.sql +9 -0
- package/migrations/176_promotion_respects_open_blockers.sql +58 -0
- package/migrations/176_ui_discipline.sql +40 -0
- package/migrations/177_require_reward_before_workable.sql +76 -0
- package/migrations/178_reward_gate_auto_assign_revert_autopromote.sql +61 -0
- package/migrations/179_search_chunk_usefulness.sql +33 -0
- package/migrations/180_one_active_claim_per_session.sql +54 -0
- package/migrations/181_cost_log_skill_name.sql +33 -0
- package/migrations/184_claim_release_requested.sql +25 -0
- package/migrations/185_module_upstreaming_goal_wiring.sql +59 -0
- package/migrations/187_goal_sort_order.sql +30 -0
- package/migrations/187_tasks_kind_check_add_verify.sql +21 -0
- package/migrations/README.md +88 -0
- package/migrations/core_188_goal_visibility_and_membership_requests.sql +71 -0
- package/migrations/core_189_core_upgrades_ledger.sql +37 -0
- package/migrations/core_189_credit_log_task_id_index.sql +19 -0
- package/migrations/core_190_rebuild_claimable_task_views.sql +71 -0
- package/migrations/instance/018_pms_v3_planning_seed.sql +131 -0
- package/migrations/instance/080_gds_v4_planning_seed.sql +75 -0
- package/migrations/instance/110_medusa_planning_seed.sql +70 -0
- package/migrations/instance/120_bongos_v1_planning_seed.sql +69 -0
- package/migrations/instance/144_bongos_v1_module_system_criterion.sql +26 -0
- package/migrations/instance/159_bongos_v1_goal_hierarchy_criterion.sql +29 -0
- package/migrations/instance/172_v2_world_planning_seed.sql +163 -0
- package/migrations/instance/173_bongos_v1_c7_core_modularized.sql +33 -0
- package/migrations/instance/182_gdsv4_bongos_consolidation.sql +132 -0
- package/migrations/instance/183_gdsv4_carryover_themed_goals.sql +116 -0
- package/migrations/instance/186_bongos_v1_governance_planning_seed.sql +69 -0
- package/modules/autonomy/CLAUDE.md +49 -0
- package/modules/autonomy/db.js +50 -0
- package/modules/autonomy/module.json +13 -0
- package/modules/autonomy/pollers/routine-timers.js +146 -0
- package/modules/autonomy/routes/autonomy.js +37 -0
- package/modules/builder-settings/CLAUDE.md +58 -0
- package/modules/builder-settings/builder-needs.js +115 -0
- package/modules/builder-settings/db.js +168 -0
- package/modules/builder-settings/display-name.js +84 -0
- package/modules/builder-settings/event-sound-prefs.js +169 -0
- package/modules/builder-settings/interaction-prefs.js +201 -0
- package/modules/builder-settings/model-alloc-prefs.js +147 -0
- package/modules/builder-settings/module.json +10 -0
- package/modules/builder-settings/render-prefs.js +103 -0
- package/modules/builder-settings/routes/settings.js +417 -0
- package/modules/builder-settings/settings.js +52 -0
- package/modules/builder-settings/skill-prefs.js +196 -0
- package/modules/builder-settings/sound-prefs.js +178 -0
- package/modules/builder-settings/wandering-prefs.js +282 -0
- package/modules/dev-box/CLAUDE.md +38 -0
- package/modules/dev-box/box-access.js +275 -0
- package/modules/dev-box/box-credential.js +94 -0
- package/modules/dev-box/box-onboard.js +486 -0
- package/modules/dev-box/boxes.js +842 -0
- package/modules/dev-box/db.js +39 -0
- package/modules/dev-box/module.json +14 -0
- package/modules/dev-box/routes/box.js +977 -0
- package/modules/discord/CLAUDE.md +50 -0
- package/modules/discord/auth.js +54 -0
- package/modules/discord/bug-attachments.js +210 -0
- package/modules/discord/db.js +96 -0
- package/modules/discord/discord-approvals.js +145 -0
- package/modules/discord/discord-audit.js +29 -0
- package/modules/discord/discord-bot.js +545 -0
- package/modules/discord/discord-bugs.js +257 -0
- package/modules/discord/discord-channels.js +412 -0
- package/modules/discord/discord-inbound.js +147 -0
- package/modules/discord/discord-message-buffer.js +54 -0
- package/modules/discord/discord-reaction.js +186 -0
- package/modules/discord/discord-role-sync.js +318 -0
- package/modules/discord/module.json +14 -0
- package/modules/discord/pollers/discord-bot.js +19 -0
- package/modules/discord/routes/bug-attachments.js +44 -0
- package/modules/discord/routes/discord.js +102 -0
- package/modules/discord/ship-broadcast.js +78 -0
- package/modules/discord/webhook.js +74 -0
- package/modules/economy/CLAUDE.md +48 -0
- package/modules/economy/achievements.js +594 -0
- package/modules/economy/cost-classify.js +331 -0
- package/modules/economy/cost-summary-shape.js +90 -0
- package/modules/economy/cost.js +438 -0
- package/modules/economy/credits.js +430 -0
- package/modules/economy/migrations/economy_001_fix_gds_shipper_description.sql +91 -0
- package/modules/economy/module.json +10 -0
- package/modules/economy/reward.js +61 -0
- package/modules/economy/routes/cost.js +97 -0
- package/modules/economy/routes/leaderboard.js +26 -0
- package/modules/economy/routes/reward.js +42 -0
- package/modules/economy/streak.js +285 -0
- package/modules/grading/CLAUDE.md +42 -0
- package/modules/grading/db.js +39 -0
- package/modules/grading/grader-rubric.json +151 -0
- package/modules/grading/grader-workers/efficiency.js +213 -0
- package/modules/grading/grader-workers/extract-json.js +80 -0
- package/modules/grading/grader-workers/fence.js +100 -0
- package/modules/grading/grader-workers/hacker.js +239 -0
- package/modules/grading/grader-workers/index.js +183 -0
- package/modules/grading/grader-workers/narc.js +207 -0
- package/modules/grading/grader-workers/quality.js +198 -0
- package/modules/grading/grader-workers/rubric.js +20 -0
- package/modules/grading/grader-workers/worker-prompt.js +89 -0
- package/modules/grading/grader-workers/worker-verdict.js +50 -0
- package/modules/grading/grader.js +1790 -0
- package/modules/grading/module.json +12 -0
- package/modules/grading/routes/grade.js +51 -0
- package/modules/hall-ui/CLAUDE.md +61 -0
- package/modules/hall-ui/module.json +14 -0
- package/modules/hall-ui/public/atlas.html +180 -0
- package/modules/hall-ui/public/atlas.js +336 -0
- package/modules/hall-ui/public/box-panel.js +423 -0
- package/modules/hall-ui/public/brand-apply.js +117 -0
- package/modules/hall-ui/public/builders.js +3028 -0
- package/modules/hall-ui/public/chime.wav +0 -0
- package/modules/hall-ui/public/copy-on-click.js +174 -0
- package/modules/hall-ui/public/cursors/arrow.png +0 -0
- package/modules/hall-ui/public/cursors/hand-pointer.png +0 -0
- package/modules/hall-ui/public/cursors/magnifier-out.png +0 -0
- package/modules/hall-ui/public/cursors/magnifier.png +0 -0
- package/modules/hall-ui/public/diagram-viewer.css +125 -0
- package/modules/hall-ui/public/diagram-viewer.js +330 -0
- package/modules/hall-ui/public/diagrams.html +113 -0
- package/modules/hall-ui/public/dom-utils.js +212 -0
- package/modules/hall-ui/public/drachmae.html +68 -0
- package/modules/hall-ui/public/drachmae.js +136 -0
- package/modules/hall-ui/public/gate.html +143 -0
- package/modules/hall-ui/public/gate.js +228 -0
- package/modules/hall-ui/public/goals-page.js +1297 -0
- package/modules/hall-ui/public/goals.html +376 -0
- package/modules/hall-ui/public/goals.js +119 -0
- package/modules/hall-ui/public/hall-widgets.js +189 -0
- package/modules/hall-ui/public/harbor.html +167 -0
- package/modules/hall-ui/public/harbor.js +335 -0
- package/modules/hall-ui/public/index.html +116 -0
- package/modules/hall-ui/public/instances-panel.js +172 -0
- package/modules/hall-ui/public/md-reader.js +234 -0
- package/modules/hall-ui/public/modules.html +119 -0
- package/modules/hall-ui/public/modules.js +154 -0
- package/modules/hall-ui/public/new-project-wizard.js +186 -0
- package/modules/hall-ui/public/not-ready.html +48 -0
- package/modules/hall-ui/public/pair.html +119 -0
- package/modules/hall-ui/public/pair.js +132 -0
- package/modules/hall-ui/public/primer.css +404 -0
- package/modules/hall-ui/public/primer.html +85 -0
- package/modules/hall-ui/public/primer.js +641 -0
- package/modules/hall-ui/public/profile.html +85 -0
- package/modules/hall-ui/public/profile.js +236 -0
- package/modules/hall-ui/public/ranks.html +69 -0
- package/modules/hall-ui/public/ranks.js +206 -0
- package/modules/hall-ui/public/roadmap.html +209 -0
- package/modules/hall-ui/public/roadmap.js +375 -0
- package/modules/hall-ui/public/sessions.html +92 -0
- package/modules/hall-ui/public/sessions.js +222 -0
- package/modules/hall-ui/public/settings.html +640 -0
- package/modules/hall-ui/public/settings.js +1219 -0
- package/modules/hall-ui/public/shell.js +495 -0
- package/modules/hall-ui/public/style.css +1748 -0
- package/modules/hall-ui/public/task-detail.js +253 -0
- package/modules/hall-ui/public/task.html +83 -0
- package/modules/hall-ui/public/task.js +326 -0
- package/modules/hall-ui/public/watch.html +333 -0
- package/modules/hall-ui/public/watch.js +859 -0
- package/modules/hall-ui/public/work.html +469 -0
- package/modules/hall-ui/public/work.js +1292 -0
- package/modules/ideas/CLAUDE.md +37 -0
- package/modules/ideas/blockers.js +100 -0
- package/modules/ideas/inbox.js +459 -0
- package/modules/ideas/module.json +10 -0
- package/modules/ideas/routes/blockers.js +120 -0
- package/modules/ideas/routes/inbox.js +230 -0
- package/modules/lifecycle/CLAUDE.md +63 -0
- package/modules/lifecycle/conflict-resolve.js +436 -0
- package/modules/lifecycle/db.js +4970 -0
- package/modules/lifecycle/done-when.js +355 -0
- package/modules/lifecycle/github-push.js +969 -0
- package/modules/lifecycle/goal-conflicts.js +133 -0
- package/modules/lifecycle/hierarchy.js +104 -0
- package/modules/lifecycle/lifecycle.js +58 -0
- package/modules/lifecycle/merge-lock.js +261 -0
- package/modules/lifecycle/migrations/lifecycle_001_goal_first_leads.sql +28 -0
- package/modules/lifecycle/migrations/lifecycle_002_backfill_orphan_task_goals.sql +36 -0
- package/modules/lifecycle/module.json +13 -0
- package/modules/lifecycle/pollers/publish-reconciler.js +20 -0
- package/modules/lifecycle/publish-reconciler.js +418 -0
- package/modules/lifecycle/routes/analytics.js +63 -0
- package/modules/lifecycle/routes/claims.js +506 -0
- package/modules/lifecycle/routes/dependencies.js +82 -0
- package/modules/lifecycle/routes/done-when.js +136 -0
- package/modules/lifecycle/routes/gate-approvals.js +197 -0
- package/modules/lifecycle/routes/goals.js +1419 -0
- package/modules/lifecycle/routes/lifecycle.js +43 -0
- package/modules/lifecycle/routes/tasks.js +1703 -0
- package/modules/lifecycle/routes/versions.js +128 -0
- package/modules/lifecycle/ship-card.js +505 -0
- package/modules/lifecycle/ship-preflight.js +225 -0
- package/modules/lifecycle/task-classifier.js +512 -0
- package/modules/lifecycle/version-close.js +106 -0
- package/modules/memory/CLAUDE.md +40 -0
- package/modules/memory/learnings.js +275 -0
- package/modules/memory/memory.js +572 -0
- package/modules/memory/module.json +12 -0
- package/modules/memory/routes/learnings.js +90 -0
- package/modules/memory/routes/memory.js +916 -0
- package/modules/memory/routes/search.js +188 -0
- package/modules/memory/search-chunker.js +252 -0
- package/modules/memory/search.js +320 -0
- package/modules/onboarding/CLAUDE.md +55 -0
- package/modules/onboarding/approval-broadcast.js +59 -0
- package/modules/onboarding/db.js +54 -0
- package/modules/onboarding/module.json +10 -0
- package/modules/onboarding/newcomer-restock.js +212 -0
- package/modules/onboarding/onboarding-state.js +532 -0
- package/modules/onboarding/onboarding.js +508 -0
- package/modules/onboarding/port.js +63 -0
- package/modules/onboarding/routes/access-requests.js +208 -0
- package/modules/onboarding/routes/onboarding.js +54 -0
- package/modules/security/CLAUDE.md +44 -0
- package/modules/security/module.json +10 -0
- package/modules/security/routes/reports.js +251 -0
- package/modules/security/secret-scrub.js +201 -0
- package/modules/security/security.js +294 -0
- package/modules/sessions/CLAUDE.md +39 -0
- package/modules/sessions/bfg.js +357 -0
- package/modules/sessions/db.js +326 -0
- package/modules/sessions/module.json +10 -0
- package/modules/sessions/pulse.js +149 -0
- package/modules/sessions/routes/sessions.js +331 -0
- package/modules/status-ui/CLAUDE.md +47 -0
- package/modules/status-ui/module.json +14 -0
- package/modules/status-ui/public/README.md +29 -0
- package/modules/status-ui/public/cursors/arrow.png +0 -0
- package/modules/status-ui/public/cursors/hand-pointer.png +0 -0
- package/modules/status-ui/public/index.html +363 -0
- package/modules/status-ui/public/snapshots/.gitkeep +0 -0
- package/modules/status-ui/public/status.js +1375 -0
- package/modules/status-ui/public/style.css +1342 -0
- package/package-lock.json +975 -0
- package/package.json +28 -0
- package/public-docs/index.html +35 -0
- package/public-docs/redoc.standalone.js +1838 -0
- package/public-docs/redoc.standalone.js.LICENSE.txt +102 -0
- package/public-landing/buddha.png +0 -0
- package/public-landing/create.html +868 -0
- package/public-landing/index.html +168 -0
- package/scripts/bongos-mcp.js +28 -0
- package/scripts/cron/style_guide_audit.sh +134 -0
- package/scripts/discord/README.md +52 -0
- package/scripts/discord/lib.js +80 -0
- package/scripts/discord/post.js +51 -0
- package/scripts/gds/CLAUDE.md +144 -0
- package/scripts/gds/abandon.js +58 -0
- package/scripts/gds/adopt-detect.js +123 -0
- package/scripts/gds/adopt-import.js +111 -0
- package/scripts/gds/adopt-preflight.js +121 -0
- package/scripts/gds/api.js +78 -0
- package/scripts/gds/architect-audit.js +288 -0
- package/scripts/gds/art-stage.js +152 -0
- package/scripts/gds/audit-authorship.sh +243 -0
- package/scripts/gds/audit-deps.js +121 -0
- package/scripts/gds/audit-exports.js +128 -0
- package/scripts/gds/audit-replay.sh +161 -0
- package/scripts/gds/audit-ships.js +251 -0
- package/scripts/gds/autonomy-gate.js +135 -0
- package/scripts/gds/backfill-cost.js +165 -0
- package/scripts/gds/backfill-sessions.js +351 -0
- package/scripts/gds/backfill-task-rewards.js +408 -0
- package/scripts/gds/backup.js +94 -0
- package/scripts/gds/bfg-principal-token.js +65 -0
- package/scripts/gds/box-auth-check.js +160 -0
- package/scripts/gds/box-connect-lib.js +453 -0
- package/scripts/gds/box.js +1258 -0
- package/scripts/gds/build-bongos.js +94 -0
- package/scripts/gds/capture.js +123 -0
- package/scripts/gds/cf-tunnel.js +419 -0
- package/scripts/gds/ci-grade.js +82 -0
- package/scripts/gds/claim-recall.js +112 -0
- package/scripts/gds/claim.js +333 -0
- package/scripts/gds/classify-discipline.js +153 -0
- package/scripts/gds/claude-materialize.js +176 -0
- package/scripts/gds/cleanup-orphans.js +74 -0
- package/scripts/gds/cli-lib.js +518 -0
- package/scripts/gds/code.js +101 -0
- package/scripts/gds/codemod-rename-src-gds.js +145 -0
- package/scripts/gds/conductor-dispatch.js +426 -0
- package/scripts/gds/context-pack.js +228 -0
- package/scripts/gds/coreB-carve-proof.sh +716 -0
- package/scripts/gds/cost.js +47 -0
- package/scripts/gds/db-backup-nightly.sh +160 -0
- package/scripts/gds/db-backup-offsite.sh +152 -0
- package/scripts/gds/demote.js +40 -0
- package/scripts/gds/design-sync.js +62 -0
- package/scripts/gds/diagnose-achievements.js +118 -0
- package/scripts/gds/diagram-facts.js +319 -0
- package/scripts/gds/discipline-modes.json +25 -0
- package/scripts/gds/discord-channels.js +66 -0
- package/scripts/gds/do-api.js +176 -0
- package/scripts/gds/docs-entropy.js +403 -0
- package/scripts/gds/doctor.js +389 -0
- package/scripts/gds/feedback-latest.js +94 -0
- package/scripts/gds/fetch-art-key.js +106 -0
- package/scripts/gds/fetch-sound-prefs.js +88 -0
- package/scripts/gds/figma-design-sync.js +61 -0
- package/scripts/gds/fitness.js +1446 -0
- package/scripts/gds/gate-review.js +322 -0
- package/scripts/gds/gating.js +325 -0
- package/scripts/gds/gds-db-backup.service +24 -0
- package/scripts/gds/gds-db-backup.timer +20 -0
- package/scripts/gds/gds-db-offsite.service +29 -0
- package/scripts/gds/gds-db-offsite.timer +18 -0
- package/scripts/gds/gen-api-client.js +508 -0
- package/scripts/gds/gen-api-docs.js +1037 -0
- package/scripts/gds/gen-atlas.js +366 -0
- package/scripts/gds/gen-diagrams.js +608 -0
- package/scripts/gds/gen-file-map.js +196 -0
- package/scripts/gds/gen-repo-map.js +519 -0
- package/scripts/gds/gen-session-index.js +210 -0
- package/scripts/gds/git-merge-regen.js +147 -0
- package/scripts/gds/grade-smoke.js +205 -0
- package/scripts/gds/hooks/pre-push.js +169 -0
- package/scripts/gds/http-api-client.js +88 -0
- package/scripts/gds/init.js +903 -0
- package/scripts/gds/install-git-hooks.js +114 -0
- package/scripts/gds/key-card.js +213 -0
- package/scripts/gds/key-status.js +126 -0
- package/scripts/gds/land-watch.js +168 -0
- package/scripts/gds/learning-capture.js +145 -0
- package/scripts/gds/lib.sh +44 -0
- package/scripts/gds/linkify-refs.js +473 -0
- package/scripts/gds/local-preview-lib.js +159 -0
- package/scripts/gds/local-preview.js +95 -0
- package/scripts/gds/login.js +225 -0
- package/scripts/gds/main-audit.js +279 -0
- package/scripts/gds/me.js +88 -0
- package/scripts/gds/memory-map.js +174 -0
- package/scripts/gds/merge-lock.js +71 -0
- package/scripts/gds/migration-namespace.js +200 -0
- package/scripts/gds/mirror-lineage-check.js +319 -0
- package/scripts/gds/mirror-redact.js +305 -0
- package/scripts/gds/module.js +482 -0
- package/scripts/gds/newcomer-floor.config.json +13 -0
- package/scripts/gds/newcomer-floor.js +415 -0
- package/scripts/gds/newcomer-floor.templates.json +86 -0
- package/scripts/gds/newcomer-floor.test.js +235 -0
- package/scripts/gds/next-number.js +163 -0
- package/scripts/gds/oauth-secret.js +197 -0
- package/scripts/gds/onboard.js +217 -0
- package/scripts/gds/onboarding-analyze.js +226 -0
- package/scripts/gds/onboarding-config.js +178 -0
- package/scripts/gds/onboarding-ship.js +92 -0
- package/scripts/gds/package-core.js +684 -0
- package/scripts/gds/paste-token.js +131 -0
- package/scripts/gds/portability-smoke-art.sh +85 -0
- package/scripts/gds/portability-smoke-memory.sh +147 -0
- package/scripts/gds/provision.js +1324 -0
- package/scripts/gds/publish-manifest.js +307 -0
- package/scripts/gds/pulse.js +309 -0
- package/scripts/gds/push-main.js +45 -0
- package/scripts/gds/read-session-export.js +359 -0
- package/scripts/gds/reauth.js +149 -0
- package/scripts/gds/recall.js +135 -0
- package/scripts/gds/release.js +71 -0
- package/scripts/gds/render-ideas.js +173 -0
- package/scripts/gds/repo-metrics.js +363 -0
- package/scripts/gds/resolve-skill-model.js +57 -0
- package/scripts/gds/run-routine.js +197 -0
- package/scripts/gds/run-unit-tests.js +178 -0
- package/scripts/gds/sandbox-stage.js +653 -0
- package/scripts/gds/search-ingest-db.js +209 -0
- package/scripts/gds/search-ingest-md.js +225 -0
- package/scripts/gds/security-baseline-check.sh +180 -0
- package/scripts/gds/seed-adopt-tasks.js +75 -0
- package/scripts/gds/seed-api-contract-goal-tasks.js +141 -0
- package/scripts/gds/seed-bongos-app-tasks.js +294 -0
- package/scripts/gds/seed-bongos-coreB-tranche1-tasks.js +81 -0
- package/scripts/gds/seed-bongos-coreB-tranche2-tasks.js +100 -0
- package/scripts/gds/seed-bongos-goal-hierarchy-tasks.js +307 -0
- package/scripts/gds/seed-bongos-module-system-tasks.js +346 -0
- package/scripts/gds/seed-bongos-tasks.js +214 -0
- package/scripts/gds/seed-gds-v4-tasks.js +624 -0
- package/scripts/gds/seed-governance-tasks.js +340 -0
- package/scripts/gds/seed-medusa-tasks.js +440 -0
- package/scripts/gds/seed-module-upstreaming.js +219 -0
- package/scripts/gds/seed-productization-tasks.js +235 -0
- package/scripts/gds/seed-provisioning-tasks.js +83 -0
- package/scripts/gds/seed-staging.sh +104 -0
- package/scripts/gds/seed-v2-world-tasks.js +283 -0
- package/scripts/gds/seed-v3-tasks.js +1981 -0
- package/scripts/gds/session-cost.js +393 -0
- package/scripts/gds/session-digest.js +179 -0
- package/scripts/gds/session-eval.js +576 -0
- package/scripts/gds/session.js +404 -0
- package/scripts/gds/setup.js +504 -0
- package/scripts/gds/shell.js +100 -0
- package/scripts/gds/ship.js +3618 -0
- package/scripts/gds/smoke-batch-claim.sh +213 -0
- package/scripts/gds/smoke-batch-release.sh +296 -0
- package/scripts/gds/smoke-box.sh +150 -0
- package/scripts/gds/smoke-claim-consistency.sh +212 -0
- package/scripts/gds/smoke-dependencies.sh +84 -0
- package/scripts/gds/smoke-gds.js +125 -0
- package/scripts/gds/smoke-write.sh +168 -0
- package/scripts/gds/start.js +782 -0
- package/scripts/gds/status.js +365 -0
- package/scripts/gds/triage.js +366 -0
- package/scripts/gds/upgrade.js +421 -0
- package/scripts/gds/validate-design.js +254 -0
- package/scripts/gds/version-close.js +549 -0
- package/scripts/migrate.sh +183 -0
- package/scripts/migrate_cost_ledger.sh +178 -0
- package/scripts/public-mirror-export.js +291 -0
- package/scripts/render-diagrams.sh +88 -0
- package/scripts/security/dep-audit.js +276 -0
- package/scripts/setup-builder.js +274 -0
- package/scripts/setup-builder.sh +28 -0
- package/scripts/snapshots/backfill-history.mjs +292 -0
- package/scripts/snapshots/maybe-render-on-deploy.sh +66 -0
- package/scripts/snapshots/render-pre-art-eras.mjs +329 -0
- package/scripts/snapshots/render-world.mjs +322 -0
- package/scripts/status-mirror-sync.js +192 -0
- package/scripts/status-probe.mjs +185 -0
- package/server.js +212 -0
- package/src/asset-version.js +71 -0
- package/src/bongos/CLAUDE.md +64 -0
- package/src/bongos/api-errors.js +281 -0
- package/src/bongos/api-path-404.js +67 -0
- package/src/bongos/api-prefix.js +38 -0
- package/src/bongos/app-pair.js +172 -0
- package/src/bongos/auth.js +979 -0
- package/src/bongos/cascade-dispatch.js +123 -0
- package/src/bongos/db-kernel.js +252 -0
- package/src/bongos/db.js +911 -0
- package/src/bongos/goal-scope-check.js +120 -0
- package/src/bongos/hierarchy-config.js +189 -0
- package/src/bongos/live-channel.js +145 -0
- package/src/bongos/llm-cache.js +260 -0
- package/src/bongos/llm-pricing.js +220 -0
- package/src/bongos/metrics.js +286 -0
- package/src/bongos/middleware/audit.js +274 -0
- package/src/bongos/middleware/error-envelope.js +93 -0
- package/src/bongos/middleware/rate-limit.js +195 -0
- package/src/bongos/module-scope-map.js +271 -0
- package/src/bongos/optimizer.js +166 -0
- package/src/bongos/path-match.js +47 -0
- package/src/bongos/permission-path-check.js +248 -0
- package/src/bongos/pool.js +55 -0
- package/src/bongos/repo-info.js +91 -0
- package/src/bongos/route-rank-check.js +420 -0
- package/src/bongos/routes/CLAUDE.md +43 -0
- package/src/bongos/routes/_helpers.js +369 -0
- package/src/bongos/routes/audit-log.js +59 -0
- package/src/bongos/routes/auth.js +755 -0
- package/src/bongos/routes/backup.js +104 -0
- package/src/bongos/routes/builders.js +526 -0
- package/src/bongos/routes/healthz.js +16 -0
- package/src/bongos/routes/instance.js +129 -0
- package/src/bongos/routes/live.js +125 -0
- package/src/bongos/routes/llm-cache.js +119 -0
- package/src/bongos/routes/me.js +380 -0
- package/src/bongos/routes/modules.js +131 -0
- package/src/bongos/routes/optimizer.js +54 -0
- package/src/bongos/routes/public.js +476 -0
- package/src/bongos/routes/security.js +207 -0
- package/src/bongos/routes.js +166 -0
- package/src/bongos/secret-box.js +177 -0
- package/src/bongos/sensitive-surfaces.js +30 -0
- package/src/bongos/serve-internal.js +889 -0
- package/src/bongos/uptime-poller.js +90 -0
- package/src/bongos-downloads.js +70 -0
- package/src/branding.js +182 -0
- package/src/build-info.js +77 -0
- package/src/devbox-downloads.js +67 -0
- package/src/instance-config.js +200 -0
- package/src/module-api.js +366 -0
- package/src/module-loader/loader.js +268 -0
- package/src/module-loader/manifest-schema.js +140 -0
- package/src/module-loader/provenance.js +28 -0
- package/src/module-loader/semver.js +100 -0
- package/src/module-seams.js +291 -0
- package/src/modules.js +254 -0
- package/src/platform-server.js +135 -0
- package/src/ui/adapters/claude-design/index.js +333 -0
- package/src/ui/adapters/figma/index.js +328 -0
- package/tests/abandon_task.mjs +138 -0
- package/tests/achievements_reconcile.mjs +167 -0
- package/tests/adopt_detect.mjs +141 -0
- package/tests/adopt_import.mjs +132 -0
- package/tests/adopt_preflight.mjs +105 -0
- package/tests/anti_grid.mjs +89 -0
- package/tests/api_client.mjs +231 -0
- package/tests/api_docs.mjs +283 -0
- package/tests/api_error_envelope_buildcheck.mjs +56 -0
- package/tests/api_error_envelope_middleware.mjs +99 -0
- package/tests/api_error_registry.mjs +108 -0
- package/tests/api_pagination_contract.mjs +51 -0
- package/tests/api_path_404.mjs +96 -0
- package/tests/app_pair.mjs +168 -0
- package/tests/architect.mjs +140 -0
- package/tests/art_key.mjs +121 -0
- package/tests/art_stage.mjs +121 -0
- package/tests/asset_version.mjs +94 -0
- package/tests/atlas.mjs +69 -0
- package/tests/audit_deps.mjs +74 -0
- package/tests/audit_middleware.mjs +385 -0
- package/tests/auth_admission_gate.mjs +164 -0
- package/tests/auth_anthropic_identity.mjs +95 -0
- package/tests/auth_duplicate_cookie.mjs +56 -0
- package/tests/auth_error_brand.mjs +77 -0
- package/tests/auth_flow_slice1.mjs +223 -0
- package/tests/auth_inactive_builder.mjs +94 -0
- package/tests/auth_page_gate.mjs +92 -0
- package/tests/auth_session_ttl.mjs +155 -0
- package/tests/autonomous_fit_protected_paths.mjs +115 -0
- package/tests/autonomy_gate.mjs +85 -0
- package/tests/autotile_variants.mjs +256 -0
- package/tests/autotile_xverify.mjs +133 -0
- package/tests/backfill_sessions.mjs +101 -0
- package/tests/backfill_task_rewards.mjs +152 -0
- package/tests/backup_cli.mjs +104 -0
- package/tests/bfg.mjs +327 -0
- package/tests/bfg_write.mjs +423 -0
- package/tests/bongos_box_connect.mjs +89 -0
- package/tests/bongos_dispatch.mjs +74 -0
- package/tests/bongos_downloads.mjs +118 -0
- package/tests/bongos_login.mjs +34 -0
- package/tests/box_access.mjs +186 -0
- package/tests/box_auth_check.mjs +114 -0
- package/tests/box_code_staleness.mjs +116 -0
- package/tests/box_connect_e2e.mjs +196 -0
- package/tests/box_cost.mjs +70 -0
- package/tests/box_dns_repoint.mjs +151 -0
- package/tests/box_host_keys.mjs +102 -0
- package/tests/box_onboard.mjs +317 -0
- package/tests/box_scope_session.mjs +115 -0
- package/tests/box_ship_permissions.mjs +71 -0
- package/tests/box_terminal_ssrf.mjs +90 -0
- package/tests/boxes.mjs +1255 -0
- package/tests/branding.mjs +88 -0
- package/tests/bug_attachments.mjs +189 -0
- package/tests/build_info.mjs +88 -0
- package/tests/builder_needs.mjs +99 -0
- package/tests/cap_newcomer_tasks.mjs +114 -0
- package/tests/cascade-dispatch.mjs +95 -0
- package/tests/cf_tunnel.mjs +459 -0
- package/tests/claim_recall.mjs +150 -0
- package/tests/claims_bind_session.mjs +47 -0
- package/tests/claude_materialize.mjs +148 -0
- package/tests/cli_box_scope.mjs +52 -0
- package/tests/cli_lib_formatters.mjs +87 -0
- package/tests/cli_token_reissue.mjs +147 -0
- package/tests/client_bundle_route.mjs +47 -0
- package/tests/cloud_bongos_pack.mjs +85 -0
- package/tests/conductor.mjs +496 -0
- package/tests/confirm_attribution.mjs +156 -0
- package/tests/conflict_resolve.mjs +462 -0
- package/tests/context_pack.mjs +240 -0
- package/tests/cost.mjs +94 -0
- package/tests/cost_audit.mjs +122 -0
- package/tests/cost_budget_status.mjs +78 -0
- package/tests/cost_reconcile.mjs +102 -0
- package/tests/cost_summary_shape.mjs +94 -0
- package/tests/credit_grant.mjs +376 -0
- package/tests/criterion_progress.mjs +220 -0
- package/tests/criterion_proposal.mjs +109 -0
- package/tests/criterion_ref_parse.mjs +53 -0
- package/tests/currency_label.mjs +119 -0
- package/tests/day_cycle.mjs +197 -0
- package/tests/dependencies_migration.mjs +77 -0
- package/tests/dependencies_polymorphic.mjs +212 -0
- package/tests/deploy_instance.mjs +78 -0
- package/tests/devbox_downloads.mjs +122 -0
- package/tests/diff_derived_signals.mjs +115 -0
- package/tests/discord_approvals.mjs +174 -0
- package/tests/discord_autojoin.mjs +158 -0
- package/tests/discord_bot.mjs +94 -0
- package/tests/discord_bugs.mjs +297 -0
- package/tests/discord_channels.mjs +337 -0
- package/tests/discord_foundation.mjs +76 -0
- package/tests/discord_inbound.mjs +190 -0
- package/tests/discord_message_buffer.mjs +87 -0
- package/tests/discord_oauth.mjs +55 -0
- package/tests/discord_reaction.mjs +170 -0
- package/tests/discord_role_sync.mjs +151 -0
- package/tests/display_name.mjs +123 -0
- package/tests/dns_preflight.mjs +74 -0
- package/tests/event_sound_prefs.mjs +194 -0
- package/tests/eviction_policy.mjs +279 -0
- package/tests/figma_adapter.mjs +199 -0
- package/tests/file_map.mjs +91 -0
- package/tests/first_admin_bootstrap.mjs +40 -0
- package/tests/fitness.mjs +435 -0
- package/tests/fitness_two_root.mjs +104 -0
- package/tests/fixtures/session-506-digest.json +34 -0
- package/tests/gate_approvals.mjs +451 -0
- package/tests/gate_review.mjs +152 -0
- package/tests/git_merge_regen.mjs +151 -0
- package/tests/github_push_ancestry.mjs +119 -0
- package/tests/github_push_land_proof.mjs +127 -0
- package/tests/github_push_merge_driver.mjs +175 -0
- package/tests/goal_abuse_matrix.mjs +187 -0
- package/tests/goal_achievement.mjs +146 -0
- package/tests/goal_conflicts.mjs +305 -0
- package/tests/goal_dependencies_read.mjs +73 -0
- package/tests/goal_member_roles.mjs +420 -0
- package/tests/goal_membership_requests.mjs +332 -0
- package/tests/goal_routes.mjs +203 -0
- package/tests/goal_scope_check.mjs +167 -0
- package/tests/goal_tier.mjs +312 -0
- package/tests/goal_wall_proof.mjs +112 -0
- package/tests/grade_attempts.mjs +73 -0
- package/tests/grade_attribution.mjs +117 -0
- package/tests/grade_diff_hash.mjs +191 -0
- package/tests/grade_server_authoritative.mjs +305 -0
- package/tests/grade_unavailable_display.mjs +66 -0
- package/tests/grader.mjs +1960 -0
- package/tests/grader_bypass.mjs +57 -0
- package/tests/grader_panel.mjs +252 -0
- package/tests/grader_prompt_fencing.mjs +192 -0
- package/tests/helpers.mjs +52 -0
- package/tests/hierarchy-config.mjs +81 -0
- package/tests/init.mjs +463 -0
- package/tests/instance_config.mjs +76 -0
- package/tests/instance_manifest.mjs +110 -0
- package/tests/interaction_prefs.mjs +72 -0
- package/tests/key-card.mjs +110 -0
- package/tests/key-status.mjs +45 -0
- package/tests/land_watch.mjs +115 -0
- package/tests/lifecycle-card.mjs +145 -0
- package/tests/lifecycle_breakdown_view.mjs +236 -0
- package/tests/linkify_refs.mjs +264 -0
- package/tests/live_channel.mjs +128 -0
- package/tests/live_sse.mjs +122 -0
- package/tests/llm-cache-route.mjs +110 -0
- package/tests/llm-cache.mjs +140 -0
- package/tests/llm-pricing.mjs +152 -0
- package/tests/local_preview.mjs +136 -0
- package/tests/main_audit.mjs +137 -0
- package/tests/memory_isolation.mjs +431 -0
- package/tests/memory_map.mjs +107 -0
- package/tests/memory_pull.mjs +429 -0
- package/tests/merge_lease.mjs +100 -0
- package/tests/merge_lock.mjs +312 -0
- package/tests/metrics.mjs +147 -0
- package/tests/migration_allocation.mjs +146 -0
- package/tests/migration_namespace.mjs +185 -0
- package/tests/migrations_fresh_replay_guard.mjs +38 -0
- package/tests/mirror_lineage_fulltree.mjs +45 -0
- package/tests/mirror_lineage_proof.mjs +72 -0
- package/tests/mirror_redact.mjs +193 -0
- package/tests/model_alloc_prefs.mjs +63 -0
- package/tests/module-scope-map.mjs +88 -0
- package/tests/module_api.mjs +110 -0
- package/tests/module_cli.mjs +292 -0
- package/tests/module_contributions.mjs +148 -0
- package/tests/module_loader.mjs +286 -0
- package/tests/module_manifest.mjs +194 -0
- package/tests/module_owned_tests.mjs +105 -0
- package/tests/module_provenance.mjs +34 -0
- package/tests/module_route_rank.mjs +147 -0
- package/tests/module_seams.mjs +68 -0
- package/tests/modules.mjs +156 -0
- package/tests/modules_route.mjs +38 -0
- package/tests/newcomer_floor.mjs +17 -0
- package/tests/newcomer_restock.mjs +80 -0
- package/tests/next_number.mjs +154 -0
- package/tests/oauth_secret.mjs +60 -0
- package/tests/onboard.mjs +70 -0
- package/tests/onboarding_gate.mjs +267 -0
- package/tests/onboarding_observability.mjs +344 -0
- package/tests/onboarding_route_signals.mjs +175 -0
- package/tests/onboarding_state.mjs +346 -0
- package/tests/one_active_claim_per_session.mjs +111 -0
- package/tests/orphaned_claim_ship.mjs +135 -0
- package/tests/override_attribution.mjs +142 -0
- package/tests/override_request_ownership.mjs +235 -0
- package/tests/package_core.mjs +435 -0
- package/tests/parallel-load.mjs +402 -0
- package/tests/path_match.mjs +62 -0
- package/tests/permission_path.mjs +151 -0
- package/tests/platform_boot.mjs +167 -0
- package/tests/pre_compact.mjs +60 -0
- package/tests/preview_server.mjs +127 -0
- package/tests/profile_route.mjs +197 -0
- package/tests/provision.mjs +805 -0
- package/tests/provisioning_github_app_routes.mjs +98 -0
- package/tests/public_mirror_export.mjs +124 -0
- package/tests/public_task_resolver.mjs +112 -0
- package/tests/publish_branch_route.mjs +422 -0
- package/tests/publish_manifest.mjs +184 -0
- package/tests/publish_reconciler.mjs +728 -0
- package/tests/rank_gate.mjs +463 -0
- package/tests/rate_limit_public.mjs +217 -0
- package/tests/read_session_export.mjs +89 -0
- package/tests/recall_cli.mjs +82 -0
- package/tests/recall_hints.mjs +119 -0
- package/tests/recent_shipped_window.mjs +80 -0
- package/tests/regrade_eligibility.mjs +202 -0
- package/tests/render_prefs.mjs +122 -0
- package/tests/repo_map.mjs +92 -0
- package/tests/reward_gate.mjs +284 -0
- package/tests/route_rank_check.mjs +243 -0
- package/tests/route_validation.mjs +490 -0
- package/tests/routine_timers.mjs +72 -0
- package/tests/rubric_fixtures.mjs +140 -0
- package/tests/run_routine.mjs +69 -0
- package/tests/sandbox_stage.mjs +582 -0
- package/tests/scrubber_corpus.mjs +257 -0
- package/tests/search_chunker.mjs +209 -0
- package/tests/search_ingest.mjs +96 -0
- package/tests/search_ingest_db.mjs +88 -0
- package/tests/search_isolation.mjs +204 -0
- package/tests/search_route.mjs +95 -0
- package/tests/secret_box.mjs +189 -0
- package/tests/security_docs.mjs +186 -0
- package/tests/security_route.mjs +108 -0
- package/tests/served_paths_shipped.mjs +118 -0
- package/tests/session-cards.mjs +142 -0
- package/tests/session_506_regression.mjs +69 -0
- package/tests/session_caps.mjs +238 -0
- package/tests/session_cost.mjs +133 -0
- package/tests/session_digest.mjs +73 -0
- package/tests/session_eval.mjs +386 -0
- package/tests/session_index.mjs +105 -0
- package/tests/session_records.mjs +369 -0
- package/tests/session_search.mjs +78 -0
- package/tests/session_start_freshness.mjs +123 -0
- package/tests/setup_smoke.mjs +154 -0
- package/tests/ship_autolinkify.mjs +60 -0
- package/tests/ship_automerge_injection.mjs +174 -0
- package/tests/ship_broadcast_routing.mjs +125 -0
- package/tests/ship_broadcast_server.mjs +175 -0
- package/tests/ship_card.mjs +280 -0
- package/tests/ship_ci_deploy.mjs +374 -0
- package/tests/ship_preflight.mjs +368 -0
- package/tests/ship_premerge.mjs +75 -0
- package/tests/ship_resume.mjs +129 -0
- package/tests/ship_upload_skip.mjs +89 -0
- package/tests/ship_zero_commit.mjs +60 -0
- package/tests/single_host_hall.mjs +98 -0
- package/tests/skill_prefs.mjs +150 -0
- package/tests/smoke_preflight.mjs +66 -0
- package/tests/snapshot_picker.mjs +233 -0
- package/tests/sound_prefs.mjs +198 -0
- package/tests/sprite_facing.mjs +35 -0
- package/tests/status-probe.mjs +89 -0
- package/tests/status_backfill.mjs +94 -0
- package/tests/stop_refcheck.mjs +127 -0
- package/tests/streak.mjs +175 -0
- package/tests/subdomain_auth.mjs +58 -0
- package/tests/task_classifier_vocab.mjs +41 -0
- package/tests/task_create_idempotency.mjs +96 -0
- package/tests/task_goal_link.mjs +93 -0
- package/tests/task_ownership_gate.mjs +125 -0
- package/tests/terrain_picker.mjs +298 -0
- package/tests/touches_overlap.mjs +75 -0
- package/tests/triage_development.mjs +140 -0
- package/tests/turn_in_place.mjs +280 -0
- package/tests/upgrade.mjs +357 -0
- package/tests/verify_task_guard.mjs +64 -0
- package/tests/version_close.mjs +76 -0
- package/tests/versions_route.mjs +93 -0
- package/tests/walkability.mjs +188 -0
- package/tests/wandering_prefs.mjs +176 -0
- package/tests/worktree_disambiguation.mjs +105 -0
- package/tests/worktree_guard.mjs +90 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
-- core_189_core_upgrades_ledger.sql — the per-instance core-upgrade ledger
|
|
2
|
+
-- (task 1690, ADR 0100 §2 / ADR 0103 §4 — the `bongos upgrade` channel).
|
|
3
|
+
--
|
|
4
|
+
-- When a two-repo consumer pulls the Cloud Bongos core from version N to N+1 via
|
|
5
|
+
-- `bongos upgrade`, the channel records the event here: which version it came
|
|
6
|
+
-- from, which it went to, the core source commit (from the pin manifest), and an
|
|
7
|
+
-- optional note. This is a small, per-instance audit trail — each consumer's own
|
|
8
|
+
-- DB carries its own upgrade history — and doubles as the migration the first
|
|
9
|
+
-- real bump actually APPLIES, so the channel's "runs additive migrations" step is
|
|
10
|
+
-- exercised end-to-end rather than being a no-op on a consumer with no pending
|
|
11
|
+
-- schema changes.
|
|
12
|
+
--
|
|
13
|
+
-- This is a CORE-owned table (it ships in the core package and every consumer
|
|
14
|
+
-- gets it), so it lives in core migrations/, core_-namespaced (ADR 0108 §5: a new
|
|
15
|
+
-- core migration numbered above LEGACY_BARE_CORE_MAX=187 must be core_-prefixed,
|
|
16
|
+
-- else the fitness namespacing check reds the build).
|
|
17
|
+
--
|
|
18
|
+
-- PURELY ADDITIVE + idempotent (CREATE ... IF NOT EXISTS): fresh-DB-replay safe,
|
|
19
|
+
-- no hard-coded builder ids (learning 1238). migrate.sh records this file's stem
|
|
20
|
+
-- in schema_migrations (the modern 187/188 pattern — the file does not
|
|
21
|
+
-- self-insert).
|
|
22
|
+
|
|
23
|
+
BEGIN;
|
|
24
|
+
|
|
25
|
+
CREATE TABLE IF NOT EXISTS core_upgrades (
|
|
26
|
+
id bigserial PRIMARY KEY,
|
|
27
|
+
from_version text, -- the core version upgraded FROM (null if unknown / first pin)
|
|
28
|
+
to_version text NOT NULL, -- the core version upgraded TO
|
|
29
|
+
source_commit text, -- the core's source commit (from the pin manifest), when known
|
|
30
|
+
note text, -- optional free-text (e.g. who ran it / why)
|
|
31
|
+
applied_at timestamptz NOT NULL DEFAULT now()
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
-- Cheap "what's the latest applied upgrade" lookup.
|
|
35
|
+
CREATE INDEX IF NOT EXISTS core_upgrades_applied_at_idx ON core_upgrades (applied_at DESC);
|
|
36
|
+
|
|
37
|
+
COMMIT;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
-- 189 index credit_log(task_id) — back the per-task credits_awarded rollups
|
|
2
|
+
-- Applied under task 1960 (follow-up from task 1957's review). Idempotent on re-run.
|
|
3
|
+
--
|
|
4
|
+
-- Problem: task 1957 added a per-task `credits_awarded` figure — the SUM of the
|
|
5
|
+
-- task-reward credit_log deltas WHERE task_id = t.id (see CREDITS_AWARDED_SUBQUERY
|
|
6
|
+
-- in modules/lifecycle/db.js). credit_log carried only idx_credit_log_builder
|
|
7
|
+
-- (builder_id, recorded_at); its task_id column (a FK from migration 003, which
|
|
8
|
+
-- Postgres does NOT auto-index) had no index, so every evaluation of that
|
|
9
|
+
-- subquery — and the existing sumCreditsForTasks() query in
|
|
10
|
+
-- modules/economy/credits.js — sequentially scans the append-only ledger.
|
|
11
|
+
-- 1957 already mitigated the hot board/claimable path with a CASE guard (unsettled
|
|
12
|
+
-- tasks skip the subquery entirely), but settled-task lists (the goal Done tab, the
|
|
13
|
+
-- ships ledger) and future ledger growth still benefit from a real index lookup.
|
|
14
|
+
--
|
|
15
|
+
-- Plain (non-concurrent) CREATE INDEX: migrate.sh applies each file with `psql -f`
|
|
16
|
+
-- in autocommit, and credit_log is small at current scale, so the brief exclusive
|
|
17
|
+
-- lock during the build is negligible. IF NOT EXISTS keeps re-runs a no-op.
|
|
18
|
+
|
|
19
|
+
CREATE INDEX IF NOT EXISTS idx_credit_log_task ON credit_log (task_id);
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
-- core_190_rebuild_claimable_task_views.sql — task 2024: goal filter on the
|
|
2
|
+
-- Work Board silently drops every task when a real goal is selected.
|
|
3
|
+
--
|
|
4
|
+
-- Root cause: claimable_tasks and tasks_session_fit are both `SELECT t.*, ...`
|
|
5
|
+
-- views over `tasks`. Postgres freezes a `SELECT t.*` view's output column
|
|
6
|
+
-- list at CREATE VIEW time — a later `ALTER TABLE tasks ADD COLUMN` does NOT
|
|
7
|
+
-- retroactively add that column to the view. The last migration to rebuild
|
|
8
|
+
-- these two views was 044 (tasks_requires_rank). Six columns landed on
|
|
9
|
+
-- `tasks` since then and never made it into either view:
|
|
10
|
+
-- 081 needs_migration, 084 security_sensitive, 093 sandbox_review,
|
|
11
|
+
-- 160 goal_id, 165 module_key, 177 reward_gate_exempt.
|
|
12
|
+
-- (086 and 176 correctly skipped a rebuild — they only changed the *values*
|
|
13
|
+
-- of an already-projected column, not the column list.)
|
|
14
|
+
--
|
|
15
|
+
-- `/api/gds/tasks/claimable` (modules/hall-ui/public/work.js) reads goal_id
|
|
16
|
+
-- off this exact feed to populate + filter the Work Board's Goal dropdown
|
|
17
|
+
-- (task 1755): every row's goal_id comes back undefined, so
|
|
18
|
+
-- `String(t.goal_id) !== gFilter` never matches any real goal and picking one
|
|
19
|
+
-- empties the list — the reported bug. The other five missing columns are
|
|
20
|
+
-- the same class of silent bug, just not yet reported.
|
|
21
|
+
--
|
|
22
|
+
-- Fix: rebuild both views (DROP+CREATE) with bodies identical to 044's — the
|
|
23
|
+
-- `SELECT t.*` wildcard then re-expands to every current column, including
|
|
24
|
+
-- the six added since. No WHERE/CASE logic changes.
|
|
25
|
+
--
|
|
26
|
+
-- Idempotent: safe to re-run.
|
|
27
|
+
|
|
28
|
+
BEGIN;
|
|
29
|
+
|
|
30
|
+
DROP VIEW IF EXISTS claimable_tasks;
|
|
31
|
+
CREATE VIEW claimable_tasks AS
|
|
32
|
+
SELECT t.*,
|
|
33
|
+
pms_calibrated_minutes(t.est_minutes, t.kind) AS est_minutes_calibrated
|
|
34
|
+
FROM tasks t
|
|
35
|
+
WHERE t.status = 'ready'
|
|
36
|
+
AND t.title NOT LIKE '\_\_smoke\_\_%' ESCAPE '\'
|
|
37
|
+
AND NOT EXISTS (
|
|
38
|
+
SELECT 1 FROM task_blockers tb WHERE tb.task_id = t.id
|
|
39
|
+
)
|
|
40
|
+
AND NOT EXISTS (
|
|
41
|
+
SELECT 1 FROM claims c
|
|
42
|
+
JOIN tasks t2 ON t2.id = c.task_id
|
|
43
|
+
WHERE c.released_at IS NULL
|
|
44
|
+
AND t2.touches && t.touches
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
DROP VIEW IF EXISTS tasks_session_fit;
|
|
48
|
+
CREATE VIEW tasks_session_fit AS
|
|
49
|
+
SELECT t.*,
|
|
50
|
+
CASE
|
|
51
|
+
WHEN t.automation_tag = 'overnight-safe' AND COALESCE(t.manual_degree, 5) <= 2
|
|
52
|
+
AND NOT EXISTS (SELECT 1 FROM task_blockers tb WHERE tb.task_id = t.id)
|
|
53
|
+
THEN ARRAY['autonomous','check-in','active']
|
|
54
|
+
WHEN t.automation_tag = 'live-only' OR COALESCE(t.manual_degree, 5) >= 4
|
|
55
|
+
THEN ARRAY['active']
|
|
56
|
+
ELSE ARRAY['check-in','active']
|
|
57
|
+
END AS fits_session_modes,
|
|
58
|
+
pms_calibrated_minutes(t.est_minutes, t.kind) AS est_minutes_calibrated,
|
|
59
|
+
CASE
|
|
60
|
+
WHEN t.credits_reward > 0
|
|
61
|
+
AND pms_calibrated_minutes(t.est_minutes, t.kind) IS NOT NULL
|
|
62
|
+
AND pms_calibrated_minutes(t.est_minutes, t.kind) > 0
|
|
63
|
+
THEN ROUND(t.credits_reward::numeric / pms_calibrated_minutes(t.est_minutes, t.kind), 3)
|
|
64
|
+
ELSE NULL
|
|
65
|
+
END AS credits_per_minute
|
|
66
|
+
FROM tasks t;
|
|
67
|
+
|
|
68
|
+
INSERT INTO schema_migrations (version) VALUES ('core_190_rebuild_claimable_task_views')
|
|
69
|
+
ON CONFLICT (version) DO NOTHING;
|
|
70
|
+
|
|
71
|
+
COMMIT;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
-- PMS-V3 Planning Session #1 seed
|
|
2
|
+
-- Applied under claim 166 (task 227, V3.R00 — Planning Session #1).
|
|
3
|
+
-- Idempotent on re-run.
|
|
4
|
+
--
|
|
5
|
+
-- What this migration does:
|
|
6
|
+
-- 1. Updates versions.PMS-V3.done_when to match the 9 criteria
|
|
7
|
+
-- 2. Seeds 9 done_when_criteria rows for version_id='PMS-V3'
|
|
8
|
+
-- 3. Renames the 9 existing PMS-V3 tasks with their V3.R## prefix
|
|
9
|
+
-- and sets their priorities per the ranking. Existing descriptions
|
|
10
|
+
-- are preserved.
|
|
11
|
+
--
|
|
12
|
+
-- Net-new tasks (81 of them) are created via scripts/pms/seed-v3-tasks.js
|
|
13
|
+
-- which runs after this migration is applied. We split because tasks have
|
|
14
|
+
-- rich descriptions and the API handles task_kind classification + foreign-
|
|
15
|
+
-- key writes more cleanly than a long SQL VALUES list.
|
|
16
|
+
|
|
17
|
+
BEGIN;
|
|
18
|
+
|
|
19
|
+
-- Short-circuit guard: migration 019 renames versions.id 'PMS-V3' to 'GDS-V3'.
|
|
20
|
+
-- If the rename has already happened (or this DB never had PMS-V3 at all),
|
|
21
|
+
-- every statement below is a no-op at best and a FK violation at worst.
|
|
22
|
+
-- Skip cleanly so a fresh restore + replay doesn't blow up the deploy.
|
|
23
|
+
--
|
|
24
|
+
-- We use a CTE-style WHERE-EXISTS guard on each statement (no DO block —
|
|
25
|
+
-- DO blocks can't short-circuit the rest of the file). The criteria INSERT
|
|
26
|
+
-- is wrapped with a SELECT-driven feed so it naturally produces zero rows
|
|
27
|
+
-- when PMS-V3 is absent.
|
|
28
|
+
|
|
29
|
+
-- ============================================================================
|
|
30
|
+
-- 1. Update versions.PMS-V3.done_when text
|
|
31
|
+
-- ============================================================================
|
|
32
|
+
UPDATE versions
|
|
33
|
+
SET done_when = 'When this is finished, multiple trusted builders will work the city in parallel — onboarded in under two hours, ranked into three tiers, shipping under their own credentials with their own karma alongside their drachmae, judged to the same quality bar, proposing scope into the next planning session, parallel-safe under load, gated by server-enforced permissions, cloneable in full with local-first memory that syncs on every ship, and able to earn drachmae by red-teaming a staging mirror of the city''s walls.'
|
|
34
|
+
WHERE id = 'PMS-V3';
|
|
35
|
+
|
|
36
|
+
-- ============================================================================
|
|
37
|
+
-- 2. Seed 9 done_when_criteria rows for PMS-V3
|
|
38
|
+
-- UPSERT semantics via ON CONFLICT (version_id, criterion_id).
|
|
39
|
+
-- Outer WHERE EXISTS makes this a no-op when 019 has already renamed
|
|
40
|
+
-- PMS-V3 → GDS-V3 (the FK check would otherwise fail).
|
|
41
|
+
-- ============================================================================
|
|
42
|
+
INSERT INTO done_when_criteria (version_id, criterion_id, criterion_md, sort_order)
|
|
43
|
+
SELECT * FROM (VALUES
|
|
44
|
+
('PMS-V3', 'onboarding-2h',
|
|
45
|
+
'**Trusted-newcomer onboarding to first shipped task is ≤ 2 hours.** A Metic-tier builder added by Archon today is shipping a real PMS task on `main` within 2 hours, without 1:1 help. Build environment bootstraps from `git clone` + one setup script; docs live outside CLAUDE.md, written for first-time readers; at least one newcomer-friendly task is always open per active version; `/builder-setup` no longer assumes Archon''s machine.',
|
|
46
|
+
1),
|
|
47
|
+
('PMS-V3', 'three-ranks-gate-everything',
|
|
48
|
+
'**Three ranks exist, and they gate every privileged operation.** Xenos (default for any GitHub-authed person; read-only on public surfaces + ship only explicitly-tagged-open tasks), Metic (Archon-approved; full claim/ship, planning sessions in proposal mode, idea triage, blocker review, priority sessions), Archon (rank promotion, ratification, version close, infra). `builders.rank` enum + middleware on every privileged route + Archon-only promotion/demotion endpoint + rank visible on /builders hall.',
|
|
49
|
+
2),
|
|
50
|
+
('PMS-V3', 'per-builder-credentials',
|
|
51
|
+
'**Every builder ships under their own credentials, with their own cost and authorship.** Per-builder Gemini key registered during `/builder-setup`; per-builder cost ledger entries; authorship in session_logs/claims/commits is the actual builder, never Archon-as-proxy; soft-cap warning before a builder hits their hard cost ceiling; Anthropic account linking via Claude Code self-verification.',
|
|
52
|
+
3),
|
|
53
|
+
('PMS-V3', 'quality-bar-holds',
|
|
54
|
+
'**Work shipped by any builder meets the same quality bar Archon''s V2 work did.** Opus-subagent grader replaces the v1 process-audit grader and gates `completed → confirmed`; per-builder × per-kind calibration tightens the bar over time, never loosens; failed confirmations are visible to the builder with actionable feedback written to the learnings table; regressions caught by automation, not by Archon''s eye.',
|
|
55
|
+
4),
|
|
56
|
+
('PMS-V3', 'propose-ratify',
|
|
57
|
+
'**Trusted builders propose; Archon ratifies; the cadence is structural.** Metics shape what comes next by surfacing proposals, not by writing system state directly. Planning sessions, priority sessions, idea triage, and blocker review are Metic-runnable; proposed criteria/tasks land in `idea_inbox` tagged with the source builder; Archon ratifies during the next planning session, writing them into `done_when_criteria` and `tasks`; nightly skill-usage feedback loop surfaces friction; builder analytics surface "AI dev curve" per builder; PMS-V4''s done-when criteria are mostly authored by Metic proposals captured during V3.',
|
|
58
|
+
5),
|
|
59
|
+
('PMS-V3', 'parallel-safe-under-load',
|
|
60
|
+
'**N>1 builders work in parallel without colliding on claims, merges, or shared system state.** Claim concurrency is deterministic; merge serialization handles drift; scheduled tasks don''t multiplex per-builder state incorrectly; session-scoped hooks move off per-session onto scheduled timers where appropriate; parallel-safety bugs surfaced during V3 get fixed in V3.',
|
|
61
|
+
6),
|
|
62
|
+
('PMS-V3', 'server-enforced-perms',
|
|
63
|
+
'**Permissions are enforced server-side; no builder can grant themselves authority by editing local files.** `rank` lives in the database, checked on every privileged request against the DB (no caching, so demotion is effectively instant); skills, hooks, and `.claude/settings.json` cannot grant authority — they can only call into server endpoints that themselves enforce rank; CLAUDE.md and other markdown files describe permissions but are never the source of truth; an ADR documents the trust boundary; a periodic auditor confirms no privileged route is missing a rank check.',
|
|
64
|
+
7),
|
|
65
|
+
('PMS-V3', 'cloneable-local-memory-server-sync',
|
|
66
|
+
'**The repo, memory system, art pipeline, and methodology are cloneable by any Metic; memory is local-first, server-canonical on ship.** `git clone` is the onboarding path — no Archon-only handoffs beyond rank assignment. No secrets live in the repo (verified). Each builder''s local memory dir syncs to a server-side per-builder store every time a task ships; learnings remain server-canonical. Cloning the repo never exposes another builder''s local memory. Art pipeline runs end-to-end on a fresh checkout with the builder''s own Gemini key.',
|
|
67
|
+
8),
|
|
68
|
+
('PMS-V3', 'security-baseline-plus-red-team',
|
|
69
|
+
'**The server has production-grade security basics, and Metics earn drachmae by red-teaming it.** Input validation, auth-token hygiene, rate limits on write paths, audit logging on privileged routes, dependency-scan in CI — all green before any non-Archon ships. A staging environment mirrors prod. Any Metic can role-play as an attacker on staging; confirmed vulnerabilities are filed by the discoverer and earn drachmae proportional to severity, auto-confirmed by a subagent reproducing the exploit on staging. Reported vulnerabilities are fixed in V3 unless Archon explicitly defers with an ADR. Observability dashboard (Grafana provisioned-as-code) makes regressions visible.',
|
|
70
|
+
9)
|
|
71
|
+
) AS v(version_id, criterion_id, criterion_md, sort_order)
|
|
72
|
+
WHERE EXISTS (SELECT 1 FROM versions WHERE id = 'PMS-V3')
|
|
73
|
+
ON CONFLICT (version_id, criterion_id) DO UPDATE
|
|
74
|
+
SET criterion_md = EXCLUDED.criterion_md,
|
|
75
|
+
sort_order = EXCLUDED.sort_order;
|
|
76
|
+
|
|
77
|
+
-- ============================================================================
|
|
78
|
+
-- 3. Update the 9 existing PMS-V3 task priorities + titles
|
|
79
|
+
-- Idempotent guard: only prepend V3.R## prefix when not already there.
|
|
80
|
+
-- These UPDATEs are intrinsically safe when PMS-V3 has been renamed:
|
|
81
|
+
-- the tasks they reference (by id) may still exist but their version_id
|
|
82
|
+
-- is now 'GDS-V3', and the WHERE-clause `id = N AND title NOT LIKE 'V3.R%'`
|
|
83
|
+
-- is already idempotent (title prefix was applied on the original run).
|
|
84
|
+
-- ============================================================================
|
|
85
|
+
|
|
86
|
+
-- V3.R04 — Builder rank system (Tier 1, P5)
|
|
87
|
+
UPDATE tasks SET priority = 5,
|
|
88
|
+
title = 'V3.R04 — ' || title
|
|
89
|
+
WHERE id = 106 AND title NOT LIKE 'V3.R%';
|
|
90
|
+
|
|
91
|
+
-- V3.R10 — Per-builder Gemini API key (Tier 1, P5)
|
|
92
|
+
UPDATE tasks SET priority = 5,
|
|
93
|
+
title = 'V3.R10 — ' || title
|
|
94
|
+
WHERE id = 91 AND title NOT LIKE 'V3.R%';
|
|
95
|
+
|
|
96
|
+
-- V3.R15 — Seamless builder onboarding umbrella (Tier 1, P5)
|
|
97
|
+
UPDATE tasks SET priority = 5,
|
|
98
|
+
title = 'V3.R15 — ' || title
|
|
99
|
+
WHERE id = 222 AND title NOT LIKE 'V3.R%';
|
|
100
|
+
|
|
101
|
+
-- V3.R18 — Replace v1 grader with Opus subagent (Tier 2, P5)
|
|
102
|
+
UPDATE tasks SET priority = 5,
|
|
103
|
+
title = 'V3.R18 — ' || title
|
|
104
|
+
WHERE id = 209 AND title NOT LIKE 'V3.R%';
|
|
105
|
+
|
|
106
|
+
-- V3.R19 — Subagent grader v1 (Tier 2, P5)
|
|
107
|
+
UPDATE tasks SET priority = 5,
|
|
108
|
+
title = 'V3.R19 — ' || title
|
|
109
|
+
WHERE id = 201 AND title NOT LIKE 'V3.R%';
|
|
110
|
+
|
|
111
|
+
-- V3.R20 — Grader calibration + per-builder × per-kind (Tier 2, P5)
|
|
112
|
+
UPDATE tasks SET priority = 5,
|
|
113
|
+
title = 'V3.R20 — ' || title
|
|
114
|
+
WHERE id = 202 AND title NOT LIKE 'V3.R%';
|
|
115
|
+
|
|
116
|
+
-- V3.R21 — Auto-flip confirmed→shipped on merge (Tier 2, P5)
|
|
117
|
+
UPDATE tasks SET priority = 5,
|
|
118
|
+
title = 'V3.R21 — ' || title
|
|
119
|
+
WHERE id = 98 AND title NOT LIKE 'V3.R%';
|
|
120
|
+
|
|
121
|
+
-- V3.R46 — version-close.js refusal bug fix (Tier 4, P4)
|
|
122
|
+
UPDATE tasks SET priority = 4,
|
|
123
|
+
title = 'V3.R46 — ' || title
|
|
124
|
+
WHERE id = 224 AND title NOT LIKE 'V3.R%';
|
|
125
|
+
|
|
126
|
+
-- V3.R47 — chat-inbox triage off per-session hook (Tier 4, P4)
|
|
127
|
+
UPDATE tasks SET priority = 4,
|
|
128
|
+
title = 'V3.R47 — ' || title
|
|
129
|
+
WHERE id = 220 AND title NOT LIKE 'V3.R%';
|
|
130
|
+
|
|
131
|
+
COMMIT;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
-- GDS-V4 Planning Session #1 seed
|
|
2
|
+
-- Applied under claim 742 (task 937, V4.R00 — Planning Session #1).
|
|
3
|
+
-- Idempotent on re-run.
|
|
4
|
+
--
|
|
5
|
+
-- What this migration does:
|
|
6
|
+
-- 1. Updates versions.GDS-V4 name + done_when to match the 6 criteria
|
|
7
|
+
-- 2. Seeds 6 done_when_criteria rows for version_id='GDS-V4'
|
|
8
|
+
-- 3. Renames the 2 existing open GDS-V4 carry-over tasks (263, 594) with
|
|
9
|
+
-- their V4.R## prefix and sets their priorities per the ranking.
|
|
10
|
+
-- Existing descriptions are preserved.
|
|
11
|
+
--
|
|
12
|
+
-- Net-new tasks (38 of them) are created via scripts/gds/seed-gds-v4-tasks.js
|
|
13
|
+
-- which runs after this migration is applied (same split as the V3 planning
|
|
14
|
+
-- seed, migration 018: tasks have rich descriptions + dependency wiring that
|
|
15
|
+
-- the API handles more cleanly than a long SQL VALUES list).
|
|
16
|
+
--
|
|
17
|
+
-- Source research: 2026-06-12 retrieval-layer architecture report + BFG
|
|
18
|
+
-- session-corpus friction mining (1,349 session_records; ceremony +
|
|
19
|
+
-- failed-tool-use taxonomies).
|
|
20
|
+
|
|
21
|
+
BEGIN;
|
|
22
|
+
|
|
23
|
+
-- ============================================================================
|
|
24
|
+
-- 1. Version name + done_when text
|
|
25
|
+
-- ============================================================================
|
|
26
|
+
UPDATE versions
|
|
27
|
+
SET name = 'GDS V4 — recall, resumable pipeline, honest measurement',
|
|
28
|
+
done_when = 'When this is finished, a builder''s session answers "have we done this before?" in one call instead of an afternoon — project knowledge (markdown and database prose alike) is searchable in one rank-scoped query and pushed into sessions at claim time; a failed ship is one command from resume instead of a consumed claim; the recurring tool-error classes (wrong-tree writes, HTML 404s, phantom smoke servers) are engineered away; the BFG''s measurements reflect real friction so the improvement is provable against the 2026-06-12 baseline; and the city watches itself on one pane of glass.'
|
|
29
|
+
WHERE id = 'GDS-V4';
|
|
30
|
+
|
|
31
|
+
-- ============================================================================
|
|
32
|
+
-- 2. Seed 6 done_when_criteria rows for GDS-V4
|
|
33
|
+
-- UPSERT semantics via ON CONFLICT (version_id, criterion_id).
|
|
34
|
+
-- ============================================================================
|
|
35
|
+
INSERT INTO done_when_criteria (version_id, criterion_id, criterion_md, sort_order)
|
|
36
|
+
SELECT * FROM (VALUES
|
|
37
|
+
('GDS-V4', 'one-call-recall',
|
|
38
|
+
'**Project knowledge is answerable in one call.** Any builder session — laptop, dev box, or browser — can ask one question and get back the relevant ADRs, recipes, session logs, learnings, ideas, and task notes, including the database prose nothing can search today. Done when: lexical search is live over repo markdown + DB prose; results are rank- and owner-scoped (Xenos never sees permission-core content; nobody sees another builder''s memory); every result cites its source so the agent can follow up; and a golden-question set mined from real sessions scores ≥80% recall@5 — whether plain text-search or embeddings gets there is decided by measurement, not taste.',
|
|
39
|
+
1),
|
|
40
|
+
('GDS-V4', 'sessions-start-knowing',
|
|
41
|
+
'**Sessions start knowing, not hunting.** What a session needs to act correctly is pushed at claim time instead of rediscovered: its worktree root, the claims it holds, the GDS API path prefix and field enums, OS environment facts, the next free ADR/migration number, and the top recall hits for the claimed task. Done when: the guess-and-retry API errors and worktree-path floods measured in the June 2026 corpus stop appearing in new sessions.',
|
|
42
|
+
2),
|
|
43
|
+
('GDS-V4', 'failed-ship-never-strands',
|
|
44
|
+
'**A failed ship never strands work.** Drift fails, grade failures, and merge bails leave the task one command from resume — no consumed claims, no reset-and-re-claim dance, no re-running an already-passing grader panel. Done when: a deliberately failed ship is resumed in one command, and claim_consumed_on_fail (which fired in 11 of 11 deep-dived sessions) goes quiet in new sessions.',
|
|
45
|
+
3),
|
|
46
|
+
('GDS-V4', 'machine-room-ergonomics',
|
|
47
|
+
'**Sessions stop fighting the machine room.** The recurring tool-error classes are engineered away: cross-tree writes guarded, API 404s/409s answer in JSON with a hint instead of an HTML page, laptop sessions stop smoke-testing against a server that isn''t running. Done when: the wrong-path class (84 hits, #1 in the June 2026 corpus) and its siblings drop measurably in new sessions.',
|
|
48
|
+
4),
|
|
49
|
+
('GDS-V4', 'bfg-measures-what-hurts',
|
|
50
|
+
'**The BFG measures what actually hurts.** The session evaluator''s numbers reflect real friction: ceremony is visible on cache-dominated marathon sessions (today they score ~99% efficient), the wrong-path footgun — the corpus''s #1 error class — is detected, harness guardrail retries stop inflating tool-error counts, and corpus coverage is reconciled. Done when: re-running the friction analysis produces numbers trustworthy enough to judge the other criteria.',
|
|
51
|
+
5),
|
|
52
|
+
('GDS-V4', 'one-pane-of-glass',
|
|
53
|
+
'**The city watches itself on one pane of glass.** The observability carry-overs land — Grafana dashboards as code, status surface v2 — plus staleness/health visibility for the new search index. Done when: those surfaces are live and the search index cannot silently go stale.',
|
|
54
|
+
6)
|
|
55
|
+
) AS v(version_id, criterion_id, criterion_md, sort_order)
|
|
56
|
+
WHERE EXISTS (SELECT 1 FROM versions WHERE id = 'GDS-V4')
|
|
57
|
+
ON CONFLICT (version_id, criterion_id) DO UPDATE
|
|
58
|
+
SET criterion_md = EXCLUDED.criterion_md,
|
|
59
|
+
sort_order = EXCLUDED.sort_order;
|
|
60
|
+
|
|
61
|
+
-- ============================================================================
|
|
62
|
+
-- 3. Re-prefix + re-prioritize the 2 existing open carry-over tasks.
|
|
63
|
+
-- Guarded so re-runs (and already-renamed rows) are no-ops.
|
|
64
|
+
-- ============================================================================
|
|
65
|
+
UPDATE tasks
|
|
66
|
+
SET title = 'V4.R28 — ' || regexp_replace(title, '^V\d+\.R\d+\s*—\s*', ''),
|
|
67
|
+
priority = 3
|
|
68
|
+
WHERE id = 263 AND version_id = 'GDS-V4' AND title NOT LIKE 'V4.R%';
|
|
69
|
+
|
|
70
|
+
UPDATE tasks
|
|
71
|
+
SET title = 'V4.R29 — ' || regexp_replace(title, '^V\d+\.R\d+\s*—\s*', ''),
|
|
72
|
+
priority = 3
|
|
73
|
+
WHERE id = 594 AND version_id = 'GDS-V4' AND title NOT LIKE 'V4.R%';
|
|
74
|
+
|
|
75
|
+
COMMIT;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
-- GDS-V4 Medusa Planning Session seed (2026-06-17)
|
|
2
|
+
-- Applied under claim 982 (task 1188 — "V4 — Medusa Planning Session").
|
|
3
|
+
-- Idempotent on re-run.
|
|
4
|
+
--
|
|
5
|
+
-- Adds the "Medusa" scope to GDS-V4: decouple the GDS from the Amazonprimea
|
|
6
|
+
-- game into a standalone, configurable, self-hostable, AGPL open-source,
|
|
7
|
+
-- non-profit, AI-first build platform. Amazonprimea becomes instance 1.
|
|
8
|
+
--
|
|
9
|
+
-- What this migration does:
|
|
10
|
+
-- 1. Appends a Medusa clause to versions.GDS-V4 done_when (guarded so it
|
|
11
|
+
-- only appends once).
|
|
12
|
+
-- 2. Seeds 2 done_when_criteria rows (C8 + C9) for version_id='GDS-V4'
|
|
13
|
+
-- at sort_order 8 and 9 (after the 7 existing criteria).
|
|
14
|
+
--
|
|
15
|
+
-- Net-new tasks (R50–R73, 24 of them) are created via
|
|
16
|
+
-- scripts/gds/seed-medusa-tasks.js which runs AFTER this migration is applied,
|
|
17
|
+
-- so the positional "C8"/"C9" criterion refs resolve. Same split as the
|
|
18
|
+
-- V4 Planning Session #1 seed (migration 080 + seed-gds-v4-tasks.js).
|
|
19
|
+
--
|
|
20
|
+
-- Locked owner decisions (this session): one project per install (no
|
|
21
|
+
-- multi-tenant project_id retrofit); migrate in place (OTB = instance 1, live
|
|
22
|
+
-- prod never breaks); AGPL-3.0 (anti-monopoly); keep the Greek rank ladder
|
|
23
|
+
-- (xenos<thetes<metic<archon) as the canonical enum (no rename); branding is a
|
|
24
|
+
-- per-instance config layer an owner's own LLM fills; feature-module selection
|
|
25
|
+
-- per instance; self-host canonical, managed hosting an optional later layer;
|
|
26
|
+
-- mobile contribution deferred to a later version; AI-first as a documented
|
|
27
|
+
-- norm (not a technical gate).
|
|
28
|
+
--
|
|
29
|
+
-- Source: 2026-06-17 Medusa decoupling codebase sweep (8-dimension audit +
|
|
30
|
+
-- synthesis + critique).
|
|
31
|
+
|
|
32
|
+
BEGIN;
|
|
33
|
+
|
|
34
|
+
-- ============================================================================
|
|
35
|
+
-- 1. Append a Medusa clause to the version-level done_when (once only).
|
|
36
|
+
-- ============================================================================
|
|
37
|
+
UPDATE versions
|
|
38
|
+
SET done_when = done_when ||
|
|
39
|
+
' And the build system itself becomes Medusa — a standalone, configurable, self-hostable, AGPL-licensed, non-profit, AI-first platform decoupled from any one project, with Amazonprimea running as its first instance.'
|
|
40
|
+
WHERE id = 'GDS-V4'
|
|
41
|
+
AND done_when NOT LIKE '%Medusa%';
|
|
42
|
+
|
|
43
|
+
-- ============================================================================
|
|
44
|
+
-- 2. Seed the 2 Medusa done_when_criteria rows for GDS-V4 (C8 + C9).
|
|
45
|
+
-- UPSERT via ON CONFLICT (version_id, criterion_id).
|
|
46
|
+
-- sort_order 8/9 → positional refs "C8"/"C9" for the seed script.
|
|
47
|
+
-- ============================================================================
|
|
48
|
+
INSERT INTO done_when_criteria (version_id, criterion_id, criterion_md, sort_order)
|
|
49
|
+
SELECT * FROM (VALUES
|
|
50
|
+
('GDS-V4', 'medusa-standalone-instance',
|
|
51
|
+
'**Medusa runs as a configurable, self-hostable, branded instance — Amazonprimea is instance 1.** The build system is no longer a fixture of the game: it boots with no game code in the process, runs on its own database, and takes its identity, branding, and feature selection from per-instance config — Amazonprimea becomes instance 1, its surfaces (status/builders) unchanged because their look now comes from config rather than hard-coding. Done when: a Medusa-only entrypoint boots with no Colyseus/Phaser/game routes; a fresh instance''s database holds only build-system tables (game tables only when the game module is enabled); one command (docker compose) stands an instance up with zero hard-coded server IP / service name / deploy script; product name, domain, sign-in origin, repo binding, currency label and the full branding pack resolve from one config with a neutral starter an owner''s own LLM fills; the first admin is set at install time, not in a migration; core carries no hard-coded project branding (the deploy-time diagram generator reads instance branding too; Greek rank names stay by decision); an instance turns feature modules (game, art pipeline, Discord, dev boxes) on/off; an instance declares its core version and `medusa upgrade` applies new migrations + code while preserving instance config; and a second, differently-branded non-game instance is created via a generic init flow and ships one task claim->grade->ship end-to-end. Live Amazonprimea is unaffected throughout.',
|
|
52
|
+
8),
|
|
53
|
+
('GDS-V4', 'medusa-open-and-protected',
|
|
54
|
+
'**Medusa is open, free, and protected from capture.** The platform is released to the public as open source on a deliberate delay so the live edge stays ahead of would-be cloners, under a license that stops a company from running a closed hosted fork, with non-profit, AI-first governance so it cannot be quietly captured. Done when: an AGPL-3.0 LICENSE ships in the repo; a public mirror repository carries only the publishable subset (the build system — not the game, infra secrets, or trust-boundary internals); an automated pipeline publishes to the mirror on a ~6-month delay with a redaction layer that strips secrets and prod topology even from old commits; GOVERNANCE, CONTRIBUTING, and CODE_OF_CONDUCT define the non-profit, AI-first (AI always writes the code) anti-monopoly stance; and the private<->public lineages stay consistent (migration numbering and enum values do not diverge), verified by a no-leak check on the published mirror.',
|
|
55
|
+
9)
|
|
56
|
+
) AS v(version_id, criterion_id, criterion_md, sort_order)
|
|
57
|
+
WHERE EXISTS (SELECT 1 FROM versions WHERE id = 'GDS-V4')
|
|
58
|
+
ON CONFLICT (version_id, criterion_id) DO UPDATE
|
|
59
|
+
SET criterion_md = EXCLUDED.criterion_md,
|
|
60
|
+
sort_order = EXCLUDED.sort_order;
|
|
61
|
+
|
|
62
|
+
-- ============================================================================
|
|
63
|
+
-- 3. Self-register so migrate.sh skips this file on the next deploy (it was
|
|
64
|
+
-- hot-applied via psql under the planning session). ON CONFLICT keeps it
|
|
65
|
+
-- safe if migrate.sh also registers it.
|
|
66
|
+
-- ============================================================================
|
|
67
|
+
INSERT INTO schema_migrations (version) VALUES ('110_medusa_planning_seed')
|
|
68
|
+
ON CONFLICT DO NOTHING;
|
|
69
|
+
|
|
70
|
+
COMMIT;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
-- Bongos App — V1 planning seed (2026-06-20)
|
|
2
|
+
-- Owner-directed (archon). Idempotent on re-run.
|
|
3
|
+
--
|
|
4
|
+
-- Creates a NEW version line: BONGOS-V1 — the inaugural version of the "bongos"
|
|
5
|
+
-- platform line. Strategic intent (owner): bongos is the successor to the GDS;
|
|
6
|
+
-- the GDS deprecates after GDS-V4 and its infra/build-out migrates into bongos.
|
|
7
|
+
-- What V1 SHIPS is the Cloud Bongos desktop "Feedback Capture" tool: a Zoom-style
|
|
8
|
+
-- floating toolbar that captures narrated voice + ~1/sec snapshots and freehand
|
|
9
|
+
-- markup over ANY on-screen target, synthesizes them into one cheap, model-agnostic
|
|
10
|
+
-- prompt, and hands it to Claude Desktop + Claude Code. The existing Dev Box
|
|
11
|
+
-- desktop app (ADR 0045) is absorbed as a module of the bongos app (reusing its
|
|
12
|
+
-- Apple cert + distribution pipeline). Visual element-select is deferred to V2.
|
|
13
|
+
--
|
|
14
|
+
-- What this migration does:
|
|
15
|
+
-- 1. INSERT the BONGOS-V1 versions row (track=internal, status=planning).
|
|
16
|
+
-- 2. Seed 4 done_when_criteria (C1..C4) at sort_order 1..4.
|
|
17
|
+
-- Net-new tasks (R01..R17) are created AFTER this is applied via
|
|
18
|
+
-- scripts/gds/seed-bongos-app-tasks.js, so the positional C1..C4 refs resolve.
|
|
19
|
+
-- (Same split as migration 110 + seed-medusa-tasks.js.)
|
|
20
|
+
|
|
21
|
+
BEGIN;
|
|
22
|
+
|
|
23
|
+
-- ============================================================================
|
|
24
|
+
-- 1. Create the BONGOS-V1 version row.
|
|
25
|
+
-- ============================================================================
|
|
26
|
+
INSERT INTO versions (id, name, track, status, scope_doc_path, done_when, started_at)
|
|
27
|
+
VALUES (
|
|
28
|
+
'BONGOS-V1',
|
|
29
|
+
'Bongos App — V1',
|
|
30
|
+
'internal',
|
|
31
|
+
'planning',
|
|
32
|
+
'limitations/bongos-v1.md',
|
|
33
|
+
'Bongos App V1 ships the Cloud Bongos desktop feedback tool: a Zoom-style floating toolbar that captures narrated voice + ~1/sec snapshots and freehand markup over any on-screen target, synthesizes them into one cheap, model-agnostic prompt, and hands it to Claude Desktop and Claude Code. The Dev Box desktop app is absorbed as a module of the bongos app. This is the inaugural version of the bongos line, the successor the GDS migrates into after GDS-V4. Visual element-select is deferred to V2.',
|
|
34
|
+
now()
|
|
35
|
+
)
|
|
36
|
+
ON CONFLICT (id) DO NOTHING;
|
|
37
|
+
|
|
38
|
+
-- ============================================================================
|
|
39
|
+
-- 2. Seed the 4 done_when_criteria (C1..C4). UPSERT on (version_id, criterion_id).
|
|
40
|
+
-- sort_order 1..4 -> positional refs C1..C4 for the seed script.
|
|
41
|
+
-- ============================================================================
|
|
42
|
+
INSERT INTO done_when_criteria (version_id, criterion_id, criterion_md, sort_order)
|
|
43
|
+
SELECT * FROM (VALUES
|
|
44
|
+
('BONGOS-V1', 'signed-installable',
|
|
45
|
+
'**Signed, installable, and permission-guided on Mac + Windows.** A code-signed, notarized macOS build and a signed Windows build install from a branded download and launch as a floating menu-bar/tray app, reusing the existing Dev Box app distribution + Apple Developer ID; the Dev Box switch is absorbed as a module of the bongos app rather than shipping as a separate install. Done when: the bongos app is one Electron app that contains the prior Dev Box functionality as a module; a signed+notarized Mac build and a signed Windows build install from the branded /downloads redirect and auto-update; a first-run permission wizard detects + deep-links Screen Recording and Microphone grants with live grant-state; and an unsigned dev-build path exists for local iteration.',
|
|
46
|
+
1),
|
|
47
|
+
('BONGOS-V1', 'captures-anywhere',
|
|
48
|
+
'**Captures narrated feedback over any on-screen target.** The floating toolbar overlays any window (the Zoom annotation model) and records the microphone plus time-aligned ~1/sec snapshots of the chosen target, with freehand/box/arrow/text markup and a freeze-frame, on macOS and Windows. Done when: a transparent, always-on-top, click-through overlay draws over arbitrary other apps (surviving macOS fullscreen/Spaces and Windows multi-monitor DPI); a global hotkey summons/dismisses the bar; Record captures mic + the chosen window/screen at ~1/sec with snapshot-on-change + perceptual dedup + a frame cap; and Markup draws and freezes over any pixels.',
|
|
49
|
+
2),
|
|
50
|
+
('BONGOS-V1', 'cheap-complete-synthesis',
|
|
51
|
+
'**Synthesizes one cheap, complete, model-agnostic prompt.** The capture is fused into a single LLM-ready bundle at a disciplined token envelope — frames dominate cost, so audio is transcribed on-device to text and frames are deduped + salience-escalated rather than sent 1/sec at full resolution. Done when: on-device transcription (whisper.cpp) yields word-timestamped text; transcript and frames are time-aligned and only transcript/markup-flagged frames escalate to full resolution; a deterministic prompt.md is assembled with inlined absolute image paths; and a typical multi-minute session lands at the disciplined envelope (~5-11k tokens), not the ~70k+ naive cost.',
|
|
52
|
+
3),
|
|
53
|
+
('BONGOS-V1', 'lands-in-claude',
|
|
54
|
+
'**Lands in Claude — Desktop and Code — reliably and model-agnostically.** The synthesized bundle reaches both Claude surfaces without a fragile step, under a documented contract that works for any agent. Done when: a file-bundle handoff (prompt.md + image files) plus clipboard text works for Claude Desktop; a /feedback path injects the prompt and loads the image paths in Claude Code; an optional local stdio MCP server exposes the latest bundle for a hands-free pull; and an ADR + README document the architecture and the model-agnostic prompt/handoff contract.',
|
|
55
|
+
4)
|
|
56
|
+
) AS v(version_id, criterion_id, criterion_md, sort_order)
|
|
57
|
+
WHERE EXISTS (SELECT 1 FROM versions WHERE id = 'BONGOS-V1')
|
|
58
|
+
ON CONFLICT (version_id, criterion_id) DO UPDATE
|
|
59
|
+
SET criterion_md = EXCLUDED.criterion_md,
|
|
60
|
+
sort_order = EXCLUDED.sort_order;
|
|
61
|
+
|
|
62
|
+
-- ============================================================================
|
|
63
|
+
-- 3. Self-register so migrate.sh skips this file on the next deploy (it is
|
|
64
|
+
-- hot-applied via psql under this planning seed).
|
|
65
|
+
-- ============================================================================
|
|
66
|
+
INSERT INTO schema_migrations (version) VALUES ('120_bongos_v1_planning_seed')
|
|
67
|
+
ON CONFLICT DO NOTHING;
|
|
68
|
+
|
|
69
|
+
COMMIT;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
-- BONGOS-V1 — module-system done-when criterion (C5) — 2026-06-21
|
|
2
|
+
-- Owner-directed (archon), task 1405 (BV1.R36) / ADR 0083.
|
|
3
|
+
--
|
|
4
|
+
-- Adds a 5th done_when_criterion to BONGOS-V1: the project-extensible module
|
|
5
|
+
-- system (the design scoped in docs/design/modular-architecture/, epic #1388 /
|
|
6
|
+
-- BV1.R34). The module-system child tasks are seeded AFTER this is applied via
|
|
7
|
+
-- scripts/gds/seed-bongos-module-system-tasks.js, so the positional ref C5
|
|
8
|
+
-- resolves at task-create. (Same migration+seed split as 120 + seed-bongos-app-tasks.js.)
|
|
9
|
+
--
|
|
10
|
+
-- Idempotent on re-run: UPSERT on (version_id, criterion_id). The companion
|
|
11
|
+
-- migration 120 already seeded C1..C4 (sort_order 1..4); this adds sort_order 5.
|
|
12
|
+
|
|
13
|
+
BEGIN;
|
|
14
|
+
|
|
15
|
+
INSERT INTO done_when_criteria (version_id, criterion_id, criterion_md, sort_order)
|
|
16
|
+
SELECT * FROM (VALUES
|
|
17
|
+
('BONGOS-V1', 'module-system-live',
|
|
18
|
+
'**The project-extensible module system is live — the whole product is `core + modules`.** Cloud Bongos''s closed four-module registry becomes self-describing packages the platform discovers, validates, and mounts; a host can ADD or CONFIGURE modules without forking core, and the trust boundary (ADR 0016) is ENFORCED across module routes, not trusted. Built as an incremental strangler migration (ADR 0083) — reorganize, not rewrite; single-package, single-process, no-bundler preserved. Done when: (1) `src/module-api.js` is the stable, semver''d doorway and the only core file a module may import; (2) a loader discovers/validates/mounts `modules/*/module.json` behind kernel-composed auth and replaces the hardcoded `KNOWN_MODULES` registry, with a kernel seam registry (ports + events) for cross-module capability; (3) the four feature modules (dev-box, game, discord, art-pipeline) are moved into `modules/<key>/` and the inline `if (isModuleEnabled())` gates are deleted, with OTB behaving byte-identically (the proof); (4) fitness functions fail the build on any boundary violation (core never imports a module, modules import only the published API, every module write-route is rank-gated, core carries no module code, module migrations are additive + namespaced); (5) module-owned migrations generalize the `migrations/game/` precedent to `modules/<key>/migrations/` (enabled-gated apply, disable-preserves-data); (6) `bongos module new <key>` scaffolds a module and `bongos upgrade` pre-checks coreVersion; and (7) docs/modules-contract.md documents the plugin-API contract + a module-author recipe.',
|
|
19
|
+
5)
|
|
20
|
+
) AS v(version_id, criterion_id, criterion_md, sort_order)
|
|
21
|
+
WHERE EXISTS (SELECT 1 FROM versions WHERE id = 'BONGOS-V1')
|
|
22
|
+
ON CONFLICT (version_id, criterion_id) DO UPDATE
|
|
23
|
+
SET criterion_md = EXCLUDED.criterion_md,
|
|
24
|
+
sort_order = EXCLUDED.sort_order;
|
|
25
|
+
|
|
26
|
+
COMMIT;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
-- BONGOS-V1 — goal-scoped-work-hierarchy done-when criterion (C6) — 2026-06-24
|
|
2
|
+
-- Owner-directed (archon), task 1507 / ADR 0086 (docs/adr/0086-goal-scoped-work-hierarchy.md).
|
|
3
|
+
--
|
|
4
|
+
-- Adds a 6th done_when_criterion to BONGOS-V1: the goal-scoped work hierarchy —
|
|
5
|
+
-- assign module-scoped GOALS, not individual tasks, and let a goal's members
|
|
6
|
+
-- author their own tasks within the goal's module wall, enforced server-side.
|
|
7
|
+
-- A criterion cluster ALONGSIDE the ADR 0083 module work (C5). The build tasks
|
|
8
|
+
-- (BV1.R54..R66, the ADR's Phases 1-4 + a deferred Phase-5 ADR spike + the live
|
|
9
|
+
-- proof) are seeded AFTER this is applied via
|
|
10
|
+
-- scripts/gds/seed-bongos-goal-hierarchy-tasks.js, so the positional ref C6
|
|
11
|
+
-- resolves at task-create (same migration+seed split as 144 + the module seed).
|
|
12
|
+
--
|
|
13
|
+
-- Idempotent on re-run: UPSERT on (version_id, criterion_id). Migrations 120/144
|
|
14
|
+
-- already seeded C1..C5 (sort_order 1..5); this adds sort_order 6.
|
|
15
|
+
|
|
16
|
+
BEGIN;
|
|
17
|
+
|
|
18
|
+
INSERT INTO done_when_criteria (version_id, criterion_id, criterion_md, sort_order)
|
|
19
|
+
SELECT * FROM (VALUES
|
|
20
|
+
('BONGOS-V1', 'goal-scoped-work-hierarchy',
|
|
21
|
+
'**Builders are assigned module-scoped goals, not individual tasks — and can author their own work within a goal''s wall, enforced server-side.** The owner stops hand-authoring every task; a builder joins a shared, module-scoped goal and gains bounded authority to create + organize tasks beneath it, never exceeding the goal''s module scope or touching the protected core. The six-tier hierarchy (Project → Version → Goal → Criteria → Task → Sub-task) is a per-instance config preset; enforcement is core (ADR 0086, building on ADR 0016/0043/0049/0083/0084). Done when: (1) a module-scope map (`module-scope-map.js`, importing `PROTECTED_GLOBS`) + a configurable hierarchy preset (`config/hierarchy.json` + `hierarchy-config.js`, onboarding-edited) exist; (2) a `goals` tier (shared, joinable, `scope_modules`) sits between versions and criteria, `done_when_criteria` re-parent under goals (backfilled under a per-version default goal), and `tasks` carry `goal_id`, with the `/status` rollup running Version → Goals → Criteria → Tasks; (3) a goal member can author a task via `POST /goals/:id/tasks` only if it is scope-subset + clears the protected-path gate + the auto-derived rank floor, with two fitness checks (goal routes pinned in `route-rank-check`; scope code imports `PROTECTED_GLOBS`) and an abuse-matrix test proving the wall holds; (4) a polymorphic dependency edge spans tasks/goals/criteria and resolves at the existing claim gate, a criterion auto-flags "met — pending review" when its tasks ship, a `/goal-review` cadence (Metic+) confirms → auto-achieves goals, and goals archive/reopen/carry-forward at rescope; and (5) a sub-Metic builder demonstrably authors, claims, and ships a task inside an assigned goal while being BLOCKED server-side from authoring one that touches a protected path outside scope (the live proof). Phase 5 of the ADR (an AI relevance judge + sub-Metic membership inside protected-scope goals) is deferred to its own security-reviewed ADR.',
|
|
22
|
+
6)
|
|
23
|
+
) AS v(version_id, criterion_id, criterion_md, sort_order)
|
|
24
|
+
WHERE EXISTS (SELECT 1 FROM versions WHERE id = 'BONGOS-V1')
|
|
25
|
+
ON CONFLICT (version_id, criterion_id) DO UPDATE
|
|
26
|
+
SET criterion_md = EXCLUDED.criterion_md,
|
|
27
|
+
sort_order = EXCLUDED.sort_order;
|
|
28
|
+
|
|
29
|
+
COMMIT;
|