@bongos/core 1.21.175 → 1.21.177
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 +3371 -1636
- package/.claude/skills/ask-for-help/SKILL.md +4 -4
- package/.claude/skills/backlog-review/SKILL.md +1 -1
- package/.claude/skills/blocker-review/SKILL.md +2 -2
- package/.claude/skills/blocker-solve/SKILL.md +4 -4
- package/.claude/skills/bongos-feedback/SKILL.md +1 -1
- package/.claude/skills/bug-triage/SKILL.md +8 -8
- package/.claude/skills/builder-backup/SKILL.md +3 -3
- package/.claude/skills/builder-claim/SKILL.md +5 -5
- package/.claude/skills/builder-cost/SKILL.md +5 -5
- package/.claude/skills/builder-end/SKILL.md +6 -6
- package/.claude/skills/builder-exit/SKILL.md +2 -2
- package/.claude/skills/builder-key/SKILL.md +6 -6
- package/.claude/skills/builder-reauth/SKILL.md +4 -4
- package/.claude/skills/builder-redteam/SKILL.md +3 -3
- package/.claude/skills/builder-release/SKILL.md +3 -3
- package/.claude/skills/builder-sequence/SKILL.md +8 -8
- package/.claude/skills/builder-setup/SKILL.md +4 -4
- package/.claude/skills/builder-ship/SKILL.md +7 -7
- package/.claude/skills/builder-stage/SKILL.md +8 -8
- package/.claude/skills/builder-start/SKILL.md +4 -4
- package/.claude/skills/collab-review/SKILL.md +5 -5
- package/.claude/skills/design/SKILL.md +6 -4
- package/.claude/skills/design-sync/SKILL.md +3 -3
- package/.claude/skills/figma-design-sync/SKILL.md +4 -4
- package/.claude/skills/fix-task/SKILL.md +8 -8
- package/.claude/skills/goal-close/SKILL.md +9 -9
- package/.claude/skills/goal-create/SKILL.md +18 -18
- package/.claude/skills/grade-recover/SKILL.md +8 -8
- package/.claude/skills/grade-sweep/SKILL.md +15 -15
- package/.claude/skills/idea-triage/SKILL.md +15 -15
- package/.claude/skills/merge-mode/SKILL.md +14 -14
- package/.claude/skills/new-project/SKILL.md +5 -5
- package/.claude/skills/owner-review/SKILL.md +1 -1
- package/.claude/skills/planning-session/SKILL.md +15 -15
- package/.claude/skills/priority-session/SKILL.md +6 -6
- package/.claude/skills/read-session-export/SKILL.md +3 -3
- package/.claude/skills/recall/SKILL.md +7 -7
- package/.claude/skills/scan-before-install/SKILL.md +3 -3
- package/.claude/skills/session-handoff/SKILL.md +1 -1
- package/.claude/skills/ship-check/SKILL.md +3 -3
- package/.claude/skills/status/SKILL.md +3 -3
- package/.claude/skills/strand-fix/SKILL.md +6 -6
- package/.claude/skills/worktree-clean/SKILL.md +4 -4
- package/.gitattributes +12 -32
- package/GOVERNMENT.md +1 -1
- package/README.md +8 -8
- package/bin/bongos.js +23 -23
- package/clients/bongos-client/README.md +2 -2
- package/clients/bongos-client/bongos-client.global.js +22 -4
- package/clients/bongos-client/index.cjs +22 -4
- package/clients/bongos-client/index.d.ts +33 -4
- package/clients/bongos-client/index.mjs +21 -3
- package/config/branding.neutral.json +1 -1
- package/config/design-tokens.schema.json +1 -1
- package/config/modules.neutral.json +1 -3
- package/config/scheduled-routines.json +3 -8
- package/docs/adr/0029-status-page-outage-resilience.md +6 -6
- package/docs/adr/0091-bounding-the-kernel-and-db-carve.md +1 -1
- package/docs/adr/0093-tranche-2-core-carve-sequence.md +1 -1
- package/docs/adr/0227-a-task-network-map-is-refused-the-goal-graph-is-the-map.md +1 -1
- package/docs/adr/0294-cli-sessions-do-not-expire.md +1 -1
- package/docs/adr/0383-sessions-end-after-ten-idle-days.md +35 -0
- package/docs/adr/0384-the-raise-page-is-a-hub-module-builders-edit-in-place.md +31 -0
- package/docs/adr/README.md +2 -0
- package/docs/api/openapi.json +606 -44
- package/docs/api-reference.md +25 -12
- package/docs/architecture.md +8 -7
- package/docs/canonical-permissions.md +4 -4
- package/docs/copy-inventory.md +1370 -1411
- package/docs/copy-registry.json +2136 -2536
- package/docs/design/demonolith-plan.md +6 -6
- package/docs/design/modular-architecture/00-research-report.md +1 -1
- package/docs/design/project-startup-direction.md +2 -2
- package/docs/design/projects-hub-direction-v2.md +1 -1
- package/docs/design/reviews/hall-v2/README.md +2 -2
- package/docs/design/vanilla-hall-ui-redesign-scope.md +1 -1
- package/docs/file-map.md +92 -96
- package/docs/handoff-template.md +5 -5
- package/docs/module-api-changelog.md +7 -3
- package/docs/modules-contract.md +8 -7
- package/docs/onboarding/diagrams/01-task-lifecycle.mmd +1 -1
- package/docs/onboarding/diagrams/02-rank-ladder.mmd +1 -1
- package/docs/onboarding/diagrams/03-drachmae-karma.mmd +1 -1
- package/docs/onboarding/diagrams/04-architecture.mmd +1 -1
- package/docs/onboarding/diagrams/05-versioning.mmd +1 -1
- package/docs/onboarding/diagrams/README.md +5 -9
- package/docs/onboarding/diagrams/assertions.json +3 -3
- package/docs/onboarding/slash-commands.md +2 -2
- package/docs/packs/artist.md +4 -4
- package/docs/packs/engineer.md +11 -10
- package/docs/packs/ideator.md +7 -7
- package/docs/page-inventory.json +20 -1
- package/docs/page-readings.json +4387 -4603
- package/docs/recipes/README.md +1 -1
- package/docs/recipes/audit-replay.md +4 -4
- package/docs/recipes/autobongos-windows-host.md +6 -6
- package/docs/recipes/bongos-cli-release.md +2 -2
- package/docs/recipes/claude-design-loop.md +7 -7
- package/docs/recipes/core-release-pipeline.md +19 -19
- package/docs/recipes/failed-ship-recovery-proof.md +2 -2
- package/docs/recipes/figma-design-loop.md +6 -6
- package/docs/recipes/gds-db-backup.md +9 -9
- package/docs/recipes/instance-deploy.md +3 -3
- package/docs/recipes/instance-first-run.md +1 -1
- package/docs/recipes/multi-builder-merge.md +2 -2
- package/docs/recipes/ops-gotchas.md +13 -10
- package/docs/recipes/packaging-the-core.md +6 -6
- package/docs/recipes/parallel-goal-waves.md +4 -4
- package/docs/recipes/private-npm-distribution.md +9 -9
- package/docs/recipes/redteam-patrol.md +5 -5
- package/docs/recipes/render-pilot.md +2 -2
- package/docs/recipes/reranking-a-goals-board.md +2 -2
- package/docs/recipes/search-index-ingestion.md +5 -5
- package/docs/recipes/self-host.md +1 -1
- package/docs/recipes/ship-and-regrade.md +4 -4
- package/docs/recipes/staging-environment.md +1 -1
- package/docs/recipes/standalone-live-docs.md +1 -1
- package/docs/recipes/ui-look-before-you-ship.md +2 -2
- package/docs/recipes/upgrading-the-core.md +11 -11
- package/docs/recipes/windows-builders.md +18 -18
- package/docs/research/llm-model-agnostic-and-cheaper-grader.md +6 -6
- package/docs/research/task-network-map-readability.md +3 -3
- package/migrations/core_278_builder_tester_tag.sql +18 -0
- package/migrations/core_279_bongos_shipper_new_scripts_path.sql +13 -0
- package/modules/agents/lib/answer-hold.js +1 -1
- package/modules/agents/lib/gate.js +1 -1
- package/modules/agents/lib/validate.js +1 -1
- package/modules/autonomy/db.js +9 -0
- package/modules/autonomy/gauge.js +1 -1
- package/modules/autonomy/governor-docket.js +2 -2
- package/modules/autonomy/module.json +2 -2
- package/modules/autonomy/pollers/daily-checks.js +262 -0
- package/modules/autonomy/pollers/routine-timers.js +9 -7
- package/modules/autonomy/rank-roles.js +64 -0
- package/modules/autonomy/routes/autonomy.js +3 -3
- package/modules/autonomy/server-schedule.js +37 -0
- package/modules/builder-settings/interaction-prefs.js +1 -1
- package/modules/builder-settings/render-prefs.js +1 -1
- package/modules/builder-settings/routes/settings.js +1 -1
- package/modules/builder-settings/skill-prefs.js +2 -2
- package/modules/builder-settings/wandering-prefs.js +2 -2
- package/modules/copy-desk/module.json +2 -2
- package/modules/copy-desk/page-data.js +5 -5
- package/modules/copy-desk/page-decisions.js +13 -1
- package/modules/copy-desk/proposals.js +4 -4
- package/modules/copy-desk/registry.js +2 -2
- package/modules/copy-desk/routes/copy-desk-release.js +119 -0
- package/modules/copy-desk/routes/copy-desk.js +3 -12
- package/modules/copy-desk/skills/tweak/SKILL.md +12 -12
- package/modules/copy-desk/tests/copy_flags.mjs +1 -1
- package/modules/copy-desk/tests/copy_no_cms.mjs +7 -3
- package/modules/copy-desk/tests/copy_proposals.mjs +2 -2
- package/modules/copy-desk/tests/copy_queue.mjs +1 -1
- package/modules/design-styles/skills/README.md +4 -4
- package/modules/design-styles/skills/imagegen-frontend-mobile/SKILL.md +1 -1
- package/modules/design-styles/skills/imagegen-frontend-web/SKILL.md +1 -1
- package/modules/discord/bug-attachments.js +1 -1
- package/modules/discord/ship-broadcast.js +1 -1
- package/modules/economy/achievements.js +49 -7
- package/modules/economy/cost-classify.js +6 -6
- package/modules/economy/cost-report.js +1 -1
- package/modules/economy/cost.js +1 -1
- package/modules/economy/credits.js +2 -1
- package/modules/economy/idea-size.js +2 -2
- package/modules/economy/reward.js +2 -0
- package/modules/economy/routes/cost.js +1 -1
- package/modules/economy/streak.js +43 -4
- package/modules/government/asks.js +1 -1
- package/modules/government/board.js +19 -2
- package/modules/government/catalog.js +3 -0
- package/modules/government/migrations/government_033_idea_vote.sql +46 -0
- package/modules/government/protected-surfaces.json +48 -47
- package/modules/government/recommendations.js +6 -2
- package/modules/government/routes/government.js +1 -1
- package/modules/grading/generated-provenance.js +13 -5
- package/modules/grading/grade-engine.js +1 -1
- package/modules/grading/grader-rubric.json +1 -1
- package/modules/grading/grader-score.js +1 -1
- package/modules/grading/grader-workers/index.js +1 -1
- package/modules/grading/grader.js +1 -1
- package/modules/grading/routes/grade.js +1 -1
- package/modules/hall-ui/public/atlas.html +5 -7
- package/modules/hall-ui/public/atlas.js +1 -1
- package/modules/hall-ui/public/atlas.states.json +1 -1
- package/modules/hall-ui/public/blockers.css +9 -0
- package/modules/hall-ui/public/blockers.html +4 -4
- package/modules/hall-ui/public/blockers.js +29 -30
- package/modules/hall-ui/public/board-room.css +5 -17
- package/modules/hall-ui/public/board-room.html +5 -6
- package/modules/hall-ui/public/board-room.js +41 -23
- package/modules/hall-ui/public/board-room.states.json +1 -1
- package/modules/hall-ui/public/brand-apply.js +1 -1
- package/modules/hall-ui/public/brand-holes.js +1 -1
- package/modules/hall-ui/public/builders.js +40 -86
- package/modules/hall-ui/public/city-decide.js +18 -4
- package/modules/hall-ui/public/city.html +1 -1
- package/modules/hall-ui/public/collab.html +1 -1
- package/modules/hall-ui/public/commands.html +6 -9
- package/modules/hall-ui/public/copy-desk.html +1 -1
- package/modules/hall-ui/public/copy-desk.js +2 -2
- package/modules/hall-ui/public/craft-mode.js +4 -0
- package/modules/hall-ui/public/deploy.html +6 -2
- package/modules/hall-ui/public/deploy.js +21 -13
- package/modules/hall-ui/public/diagrams.css +1 -1
- package/modules/hall-ui/public/diagrams.html +5 -8
- package/modules/hall-ui/public/diagrams.states.json +1 -1
- package/modules/hall-ui/public/drachmae.html +3 -7
- package/modules/hall-ui/public/fleet.html +3 -2
- package/modules/hall-ui/public/fleet.js +0 -4
- package/modules/hall-ui/public/gate.html +7 -7
- package/modules/hall-ui/public/gate.js +58 -77
- package/modules/hall-ui/public/goal-map.html +1 -1
- package/modules/hall-ui/public/goals-page.js +5 -5
- package/modules/hall-ui/public/goals-render.js +10 -11
- package/modules/hall-ui/public/goals.css +10 -0
- package/modules/hall-ui/public/goals.html +14 -7
- package/modules/hall-ui/public/government.html +3 -5
- package/modules/hall-ui/public/government.js +1 -5
- package/modules/hall-ui/public/hall-render.js +117 -57
- package/modules/hall-ui/public/hall-widgets.js +11 -11
- package/modules/hall-ui/public/idea.html +1 -1
- package/modules/hall-ui/public/ideas.html +3 -1
- package/modules/hall-ui/public/ideas.js +1 -0
- package/modules/hall-ui/public/index.html +12 -6
- package/modules/hall-ui/public/index.states.json +1 -1
- package/modules/hall-ui/public/mine-lens.js +1 -1
- package/modules/hall-ui/public/modules.html +7 -10
- package/modules/hall-ui/public/modules.js +0 -2
- package/modules/hall-ui/public/my-agents.html +1 -1
- package/modules/hall-ui/public/palette.js +5 -5
- package/modules/hall-ui/public/primer.html +4 -9
- package/modules/hall-ui/public/profile-connections.js +10 -2
- package/modules/hall-ui/public/profile-roles.js +3 -10
- package/modules/hall-ui/public/profile.html +12 -10
- package/modules/hall-ui/public/profile.js +13 -17
- package/modules/hall-ui/public/project-settings.html +3 -4
- package/modules/hall-ui/public/project-settings.js +0 -3
- package/modules/hall-ui/public/ranks.html +5 -11
- package/modules/hall-ui/public/ranks.js +6 -8
- package/modules/hall-ui/public/roadmap.css +0 -2
- package/modules/hall-ui/public/roadmap.html +1 -1
- package/modules/hall-ui/public/roadmap.js +16 -51
- package/modules/hall-ui/public/roster.html +1 -1
- package/modules/hall-ui/public/sessions.html +6 -8
- package/modules/hall-ui/public/sessions.js +7 -7
- package/modules/hall-ui/public/settings.html +1 -1
- package/modules/hall-ui/public/shell-trail.js +1 -1
- package/modules/hall-ui/public/shell.js +17 -17
- package/modules/hall-ui/public/street-deck.css +2 -1
- package/modules/hall-ui/public/street-deck.js +10 -2
- package/modules/hall-ui/public/street-desk.js +16 -5
- package/modules/hall-ui/public/street.html +1 -1
- package/modules/hall-ui/public/studio-lib.js +4 -0
- package/modules/hall-ui/public/studio.css +2 -0
- package/modules/hall-ui/public/studio.html +1 -1
- package/modules/hall-ui/public/studio.js +27 -1
- package/modules/hall-ui/public/style.css +43 -26
- package/modules/hall-ui/public/task-detail.js +10 -7
- package/modules/hall-ui/public/task.css +2 -0
- package/modules/hall-ui/public/task.html +3 -1
- package/modules/hall-ui/public/task.js +23 -7
- package/modules/hall-ui/public/thinking.html +1 -1
- package/modules/hall-ui/public/tweak-editor.html +1 -1
- package/modules/hall-ui/public/vote-control.js +208 -0
- package/modules/hall-ui/public/watch.html +3 -5
- package/modules/hall-ui/public/watch.js +5 -4
- package/modules/hall-ui/public/welcome-boot.css +130 -0
- package/modules/hall-ui/public/welcome-boot.js +334 -0
- package/modules/hall-ui/public/welcome-day.webp +0 -0
- package/modules/hall-ui/public/welcome-night.webp +0 -0
- package/modules/hall-ui/public/work-summary.js +1 -1
- package/modules/hall-ui/public/work.css +1 -0
- package/modules/hall-ui/public/work.html +3 -1
- package/modules/hall-ui/public/work.js +2 -1
- package/modules/hall-ui/records/accomplishments.md +16 -0
- package/modules/hall-ui/records/hall-ask-card.md +9 -0
- package/modules/hall-ui/records/karma-vote-control.md +13 -0
- package/modules/hall-ui/records/oversight-family.md +1 -1
- package/modules/hall-ui/records/profile-connections.md +2 -0
- package/modules/hall-ui/records/profile-roles.md +1 -1
- package/modules/hall-ui/records/reading-rooms.md +1 -1
- package/modules/hall-ui/records/welcome-tower.md +50 -0
- package/modules/ideas/migrations/ideas_011_idea_votes.sql +31 -0
- package/modules/ideas/projection.js +1 -1
- package/modules/ideas/routes/blockers.js +3 -3
- package/modules/ideas/routes/inbox.js +29 -1
- package/modules/ideas/routes/ratify-goal.js +1 -1
- package/modules/ideas/routing.js +1 -1
- package/modules/ideas/templates.js +1 -1
- package/modules/ideas/trail-descent.js +1 -1
- package/modules/ideas/trail-size.js +1 -1
- package/modules/ideas/votes.js +93 -0
- package/modules/lifecycle/abandon-leftovers.js +1 -1
- package/modules/lifecycle/cascade.js +1 -1
- package/modules/lifecycle/conflict-resolve.js +13 -21
- package/modules/lifecycle/criterion-ref.js +1 -1
- package/modules/lifecycle/db-analytics.js +57 -4
- package/modules/lifecycle/db-deps-criteria.js +1 -1
- package/modules/lifecycle/db-ship.js +2 -2
- package/modules/lifecycle/db-tasks.js +2 -2
- package/modules/lifecycle/db-versions.js +1 -1
- package/modules/lifecycle/db.js +2 -0
- package/modules/lifecycle/dead-deps.js +3 -3
- package/modules/lifecycle/dependency-advisory.js +3 -3
- package/modules/lifecycle/goal-category.js +1 -1
- package/modules/lifecycle/goal-forest.js +1 -1
- package/modules/lifecycle/goal-task-relevance-advisory.js +1 -1
- package/modules/lifecycle/kickoff-checklist.js +1 -1
- package/modules/lifecycle/kickoff-seed.js +1 -1
- package/modules/lifecycle/lifecycle.js +2 -0
- package/modules/lifecycle/merge-reach.js +29 -15
- package/modules/lifecycle/missing-dep-classify.js +3 -3
- package/modules/lifecycle/module.json +2 -1
- package/modules/lifecycle/page-tweak-approve.js +85 -1
- package/modules/lifecycle/page-tweak-hold.js +1 -1
- package/modules/lifecycle/publish-reconciler.js +1 -2
- package/modules/lifecycle/rot.js +1 -1
- package/modules/lifecycle/routes/artist-gate.js +1 -1
- package/modules/lifecycle/routes/gate-approvals.js +22 -1
- package/modules/lifecycle/routes/goals.js +1 -1
- package/modules/lifecycle/routes/task-route-helpers.js +1 -1
- package/modules/lifecycle/routes/task-votes.js +54 -0
- package/modules/lifecycle/routes/task-write-routes.js +1 -1
- package/modules/lifecycle/routes/tasks.js +2 -2
- package/modules/lifecycle/routes/versions.js +2 -2
- package/modules/lifecycle/ship-card.js +4 -4
- package/modules/lifecycle/ship-preflight.js +1 -1
- package/modules/lifecycle/task-classifier.js +1 -1
- package/modules/lifecycle/task-status.js +1 -1
- package/modules/lifecycle/task-visual-db.js +1 -1
- package/modules/memory/learnings.js +1 -1
- package/modules/memory/pollers/search-index.js +2 -2
- package/modules/memory/routes/learnings.js +1 -1
- package/modules/memory/routes/memory.js +1 -1
- package/modules/memory/search.js +2 -2
- package/modules/npm-release/release.js +1 -1
- package/modules/onboarding/howto-moments.js +1 -1
- package/modules/onboarding/newcomer-restock.js +3 -3
- package/modules/onboarding/onboarding.js +1 -1
- package/modules/pixel-art/skills/otb-tile-generate/SKILL.md +1 -1
- package/modules/platform-identity/origin-containment.js +1 -1
- package/modules/platform-identity/publish-gate.js +1 -1
- package/modules/platform-identity/tests/platform-identity.mjs +1 -1
- package/modules/provisioning/capacity.js +1 -1
- package/modules/provisioning/core-upgrade.js +15 -9
- package/modules/provisioning/credential-preflight.js +3 -3
- package/modules/provisioning/disconnect.js +1 -1
- package/modules/provisioning/dns-resolves.js +1 -1
- package/modules/provisioning/module.json +1 -1
- package/modules/provisioning/onboard-plan.js +1 -1
- package/modules/provisioning/paid-shape-gate.js +2 -2
- package/modules/provisioning/planet-physics.js +11 -2
- package/modules/provisioning/pollers/liveness-sweep.js +1 -1
- package/modules/provisioning/pollers/runner-drift-notify.js +5 -5
- package/modules/provisioning/provisioning.js +2 -2
- package/modules/provisioning/render-lookup.js +1 -1
- package/modules/provisioning/render-standup.js +3 -3
- package/modules/provisioning/repo-private.js +1 -1
- package/modules/provisioning/routes/callback-page.js +1 -1
- package/modules/provisioning/routes/core-upgrade.js +23 -3
- package/modules/provisioning/routes/provisioning.js +2 -2
- package/modules/provisioning/routes/render-standup.js +1 -1
- package/modules/provisioning/routes/repo-private.js +1 -1
- package/modules/provisioning/soft-limits.js +1 -1
- package/modules/provisioning/starter-bundles.js +4 -2
- package/modules/provisioning/tests/provisioning.mjs +1 -1
- package/modules/public-landing/public/account.html +4 -6
- package/modules/public-landing/public/assets/cosmos.css +13 -6
- package/modules/public-landing/public/connections.html +4 -6
- package/modules/public-landing/public/contact.html +4 -6
- package/modules/public-landing/public/guild.html +4 -6
- package/modules/public-landing/public/index.html +11 -9
- package/modules/public-landing/public/invitations.html +4 -6
- package/modules/public-landing/public/privacy.html +4 -6
- package/modules/public-landing/public/projects.html +168 -46
- package/modules/public-landing/public/terms.html +4 -6
- package/modules/raise/content/copy.json +40 -0
- package/modules/raise/content/nda.html +39 -0
- package/modules/raise/content/settings.json +49 -0
- package/modules/raise/db.js +95 -0
- package/modules/raise/migrations/raise_001_tables.sql +71 -0
- package/modules/raise/module.json +28 -0
- package/modules/raise/page.js +194 -0
- package/modules/raise/public/edit.js +152 -0
- package/modules/raise/public/favicon.svg +1 -0
- package/modules/raise/public/logo-ink.svg +1 -0
- package/modules/raise/public/logo-night.svg +1 -0
- package/modules/raise/public/mode.js +8 -0
- package/modules/raise/public/raise.css +234 -0
- package/modules/raise/public/raise.js +91 -0
- package/modules/raise/raise.js +174 -0
- package/modules/raise/routes/raise.js +152 -0
- package/modules/raise/views/gate.html +39 -0
- package/modules/raise/views/nda.html +21 -0
- package/modules/raise/views/page.html +133 -0
- package/modules/raise/web.js +72 -0
- package/modules/render-deploy/deploys.js +1 -1
- package/modules/render-deploy/render.js +2 -2
- package/modules/security/secret-scrub.js +3 -3
- package/modules/security/security.js +1 -1
- package/modules/security/tests/artifact_scan.mjs +1 -1
- package/modules/security/tests/mirror.mjs +1 -1
- package/modules/security/tests/scan_store.mjs +1 -1
- package/modules/sessions/db.js +2 -2
- package/modules/sessions/pulse.js +2 -2
- package/modules/sessions/routes/sessions.js +1 -1
- package/modules/specialities/specialities.js +1 -1
- package/modules/status-ui/public/README.md +3 -4
- package/modules/status-ui/public/index.html +5 -31
- package/modules/status-ui/public/status.js +6 -174
- package/modules/status-ui/public/style.css +4 -133
- package/modules/ui-design/docs/design-contract.md +3 -3
- package/modules/ui-design/kit/README.md +1 -1
- package/modules/ui-design/kit/serve.js +13 -4
- package/modules/ui-design/scripts/design-sync.js +1 -1
- package/modules/ui-design/scripts/figma-design-sync.js +1 -1
- package/modules/ui-design/scripts/validate-design.js +1 -1
- package/package-lock.json +27 -11
- package/package.json +2 -3
- package/release-notes.json +186 -0
- package/scripts/bongos/CLAUDE.md +15 -0
- package/scripts/bongos/abandon.js +137 -0
- package/scripts/bongos/accessibility-replay.js +195 -0
- package/scripts/bongos/address-park-sweep.sh +91 -0
- package/scripts/bongos/adopt-detect.js +123 -0
- package/scripts/bongos/adopt-import.js +111 -0
- package/scripts/bongos/adopt-preflight.js +187 -0
- package/scripts/bongos/adr-namespace.js +273 -0
- package/scripts/bongos/agent-invoke.js +689 -0
- package/scripts/bongos/agents-sync.js +502 -0
- package/scripts/bongos/api-alias-caller-scan.js +256 -0
- package/scripts/bongos/api-artifacts.js +91 -0
- package/scripts/bongos/api.js +86 -0
- package/scripts/bongos/api.ps1 +26 -0
- package/scripts/bongos/architect-audit.js +294 -0
- package/scripts/bongos/artifact-audit.js +326 -0
- package/scripts/bongos/artifact-format.js +203 -0
- package/scripts/bongos/ask.js +231 -0
- package/scripts/bongos/audit-authorship.sh +324 -0
- package/scripts/bongos/audit-deps.js +189 -0
- package/scripts/bongos/audit-gate.js +121 -0
- package/scripts/bongos/audit-rank-roles.js +131 -0
- package/scripts/bongos/audit-replay.sh +205 -0
- package/scripts/bongos/autobongos-digest.js +123 -0
- package/scripts/bongos/autobongos-grade-cap.js +187 -0
- package/scripts/bongos/autobongos-loop.js +210 -0
- package/scripts/bongos/autobongos-run.js +1361 -0
- package/scripts/bongos/autobongos-service.cmd +50 -0
- package/scripts/bongos/autobongos-service.ps1 +270 -0
- package/scripts/bongos/autobongos-tweak-lane.js +262 -0
- package/scripts/bongos/autobongos-verify.js +618 -0
- package/scripts/bongos/autonomy-gate.js +135 -0
- package/scripts/bongos/autonomy-gauge-statusline.js +124 -0
- package/scripts/bongos/autonomy-gauge.js +84 -0
- package/scripts/bongos/backfill-cost.js +176 -0
- package/scripts/bongos/backfill-disciplines.js +144 -0
- package/scripts/bongos/backfill-session-earnings.js +123 -0
- package/scripts/bongos/backfill-session-types.js +87 -0
- package/scripts/bongos/backfill-sessions.js +411 -0
- package/scripts/bongos/backfill-subagent-rewards.js +485 -0
- package/scripts/bongos/backfill-task-rewards.js +413 -0
- package/scripts/bongos/backlog-review.js +399 -0
- package/scripts/bongos/backup-dropin-sweep.sh +95 -0
- package/scripts/bongos/backup.js +116 -0
- package/scripts/bongos/baseline-staleness.js +217 -0
- package/scripts/bongos/bfg-principal-token.js +65 -0
- package/scripts/bongos/bug-attachment-audit.js +149 -0
- package/scripts/bongos/bug-attachment-recover.js +198 -0
- package/scripts/bongos/bug-triage.js +292 -0
- package/scripts/bongos/build-bongos.js +94 -0
- package/scripts/bongos/bump-version.js +221 -0
- package/scripts/bongos/capture.js +481 -0
- package/scripts/bongos/category-advisory-guard.js +206 -0
- package/scripts/bongos/ci-grade.js +82 -0
- package/scripts/bongos/claim-recall.js +112 -0
- package/scripts/bongos/claim.js +789 -0
- package/scripts/bongos/claude-materialize.js +1200 -0
- package/scripts/bongos/claude-md-template.js +142 -0
- package/scripts/bongos/cleanup-orphans.js +74 -0
- package/scripts/bongos/cli-lib.js +1226 -0
- package/scripts/bongos/client-baseurl-guard.js +116 -0
- package/scripts/bongos/codemod-rename-scripts-gds.js +380 -0
- package/scripts/bongos/conductor-dispatch.js +535 -0
- package/scripts/bongos/context-pack.js +326 -0
- package/scripts/bongos/control-manifest.js +199 -0
- package/scripts/bongos/copy-apply.js +758 -0
- package/scripts/bongos/copy-inventory.js +571 -0
- package/scripts/bongos/core-origin-follow.js +185 -0
- package/scripts/bongos/core-pin-sync.js +260 -0
- package/scripts/bongos/cost-report.js +63 -0
- package/scripts/bongos/cost.js +47 -0
- package/scripts/bongos/credential-presence.js +296 -0
- package/scripts/bongos/cutover-codemod.js +240 -0
- package/scripts/bongos/db-backup-nightly.sh +232 -0
- package/scripts/bongos/db-backup-offsite.sh +267 -0
- package/scripts/bongos/demote.js +45 -0
- package/scripts/bongos/deploy-divergence.js +454 -0
- package/scripts/bongos/deploy-main-audit-gate.sh +97 -0
- package/scripts/bongos/design-sync.js +12 -0
- package/scripts/bongos/dev-box-guard.js +166 -0
- package/scripts/bongos/dev-lib.js +722 -0
- package/scripts/bongos/dev.js +645 -0
- package/scripts/bongos/device-flow-help.js +72 -0
- package/scripts/bongos/diagnose-achievements.js +118 -0
- package/scripts/bongos/diagram-facts.js +355 -0
- package/scripts/bongos/discord-channels.js +77 -0
- package/scripts/bongos/do-api.js +109 -0
- package/scripts/bongos/doc-cli-guard.js +274 -0
- package/scripts/bongos/doc-comment-coverage.js +139 -0
- package/scripts/bongos/doc-control-claims.js +170 -0
- package/scripts/bongos/docs-entropy.js +453 -0
- package/scripts/bongos/doctor.js +493 -0
- package/scripts/bongos/enroll-control-plane.js +101 -0
- package/scripts/bongos/exec-path-guard.js +564 -0
- package/scripts/bongos/feedback-send.js +249 -0
- package/scripts/bongos/fetch-art-key.js +106 -0
- package/scripts/bongos/fetch-sound-prefs.js +126 -0
- package/scripts/bongos/figma-design-sync.js +11 -0
- package/scripts/bongos/find-untested.js +371 -0
- package/scripts/bongos/fitness-checks-error-envelope.js +134 -0
- package/scripts/bongos/fitness-checks-identity.js +332 -0
- package/scripts/bongos/fitness-checks-packaging.js +132 -0
- package/scripts/bongos/fitness-checks-route-pins.js +76 -0
- package/scripts/bongos/fitness-checks-vocabulary.js +392 -0
- package/scripts/bongos/fitness-checks-write-validation.js +157 -0
- package/scripts/bongos/fitness-lib.js +127 -0
- package/scripts/bongos/fitness-migration-contraction.js +50 -0
- package/scripts/bongos/fitness-ratchets.js +594 -0
- package/scripts/bongos/fitness.js +1498 -0
- package/scripts/bongos/forwarder.js +80 -0
- package/scripts/bongos/gate-review.js +330 -0
- package/scripts/bongos/gating.js +348 -0
- package/scripts/{gds → bongos}/gds-db-backup.service +6 -6
- package/scripts/{gds → bongos}/gds-db-backup.timer +4 -4
- package/scripts/{gds → bongos}/gds-db-offsite.service +4 -4
- package/scripts/{gds → bongos}/gds-db-offsite.timer +4 -4
- package/scripts/bongos/gds-literal-scan.js +196 -0
- package/scripts/bongos/gen-api-client.js +576 -0
- package/scripts/bongos/gen-api-docs.js +1111 -0
- package/scripts/bongos/gen-atlas.js +366 -0
- package/scripts/bongos/gen-diagrams.js +608 -0
- package/scripts/bongos/gen-file-map.js +337 -0
- package/scripts/bongos/gen-freshness.js +32 -0
- package/scripts/bongos/gen-interaction-posture.js +122 -0
- package/scripts/bongos/gen-repo-map.js +540 -0
- package/scripts/bongos/gen-role-responsibilities.js +134 -0
- package/scripts/bongos/gen-session-index.js +243 -0
- package/scripts/bongos/gen-sounds.js +176 -0
- package/scripts/bongos/git-merge-regen.js +254 -0
- package/scripts/bongos/go-live.js +1071 -0
- package/scripts/bongos/goal.js +272 -0
- package/scripts/bongos/government-walk.js +1477 -0
- package/scripts/bongos/grade-correlation-audit.js +310 -0
- package/scripts/bongos/grade-replay.js +237 -0
- package/scripts/bongos/grade-smoke.js +205 -0
- package/scripts/bongos/home-isolation-guard.js +126 -0
- package/scripts/bongos/hooks/pre-push.js +211 -0
- package/scripts/bongos/howto.js +145 -0
- package/scripts/bongos/http-api-client.js +81 -0
- package/scripts/bongos/identity-strip.js +75 -0
- package/scripts/bongos/init.js +1159 -0
- package/scripts/bongos/install-git-hooks.js +200 -0
- package/scripts/bongos/instance-apex.js +38 -0
- package/scripts/bongos/intent-retry.js +52 -0
- package/scripts/bongos/key-card.js +222 -0
- package/scripts/bongos/key-status.js +126 -0
- package/scripts/bongos/land-watch.js +201 -0
- package/scripts/bongos/leak-scan-allowlist.js +293 -0
- package/scripts/bongos/learning-capture.js +145 -0
- package/scripts/bongos/lib.sh +74 -0
- package/scripts/bongos/linkify-refs.js +655 -0
- package/scripts/bongos/lint-infra-exec.js +70 -0
- package/scripts/bongos/lint-migrations.js +102 -0
- package/scripts/bongos/lint-workflow-exec.js +63 -0
- package/scripts/bongos/local-preview-lib.js +128 -0
- package/scripts/bongos/local-preview.js +82 -0
- package/scripts/bongos/login.js +360 -0
- package/scripts/bongos/main-audit.js +625 -0
- package/scripts/bongos/me.js +97 -0
- package/scripts/bongos/memory-map.js +176 -0
- package/scripts/bongos/merge-lock.js +71 -0
- package/scripts/bongos/migration-namespace.js +313 -0
- package/scripts/bongos/mirror-lineage-check.js +343 -0
- package/scripts/bongos/mirror-redact.js +350 -0
- package/scripts/bongos/module-artifact.js +289 -0
- package/scripts/bongos/module-assess-docs.js +238 -0
- package/scripts/bongos/module-assess-installs.js +228 -0
- package/scripts/bongos/module-assess-score.js +111 -0
- package/scripts/bongos/module-assess-security.js +252 -0
- package/scripts/bongos/module-assess-tests.js +278 -0
- package/scripts/bongos/module-assess-version.js +92 -0
- package/scripts/bongos/module-error-report.js +148 -0
- package/scripts/{gds → bongos}/module-test-runner/README.md +3 -3
- package/scripts/{gds → bongos}/module-test-runner/module-tests.yml +2 -2
- package/scripts/bongos/module-test-runner.js +414 -0
- package/scripts/bongos/module.js +1376 -0
- package/scripts/bongos/move-escalation.js +141 -0
- package/scripts/{gds → bongos}/newcomer-floor.config.json +1 -1
- package/scripts/bongos/newcomer-floor.js +421 -0
- package/scripts/{gds → bongos}/newcomer-floor.templates.json +13 -13
- package/scripts/bongos/newcomer-floor.test.js +235 -0
- package/scripts/bongos/next-number.js +163 -0
- package/scripts/bongos/oauth-secret.js +202 -0
- package/scripts/bongos/onboard.js +267 -0
- package/scripts/bongos/onboarding-analyze.js +226 -0
- package/scripts/bongos/onboarding-config.js +179 -0
- package/scripts/bongos/onboarding-ship.js +92 -0
- package/scripts/bongos/pack-env-prefix.js +73 -0
- package/scripts/bongos/package-core.js +1200 -0
- package/scripts/bongos/page-inventory.js +348 -0
- package/scripts/bongos/page-reader.js +722 -0
- package/scripts/bongos/paste-token.js +212 -0
- package/scripts/bongos/plain-cards.js +351 -0
- package/scripts/bongos/portability-smoke-art.sh +85 -0
- package/scripts/bongos/portability-smoke-memory.sh +176 -0
- package/scripts/bongos/preflight.js +214 -0
- package/scripts/bongos/probe-cache.js +246 -0
- package/scripts/bongos/prove-strict-versioning.js +284 -0
- package/scripts/bongos/provision-auto-upgrade.js +162 -0
- package/scripts/bongos/provision-byo-host.js +68 -0
- package/scripts/bongos/provision-capacity.js +79 -0
- package/scripts/bongos/provision-caps.js +63 -0
- package/scripts/bongos/provision-config.js +233 -0
- package/scripts/bongos/provision-core-upgrade.js +1166 -0
- package/scripts/bongos/provision-disconnect.js +88 -0
- package/scripts/bongos/provision-github-setup.js +168 -0
- package/scripts/bongos/provision-net.js +357 -0
- package/scripts/bongos/provision-pin-key.js +176 -0
- package/scripts/bongos/provision-pin-replay.js +126 -0
- package/scripts/bongos/provision-process.js +170 -0
- package/scripts/bongos/provision-render.js +201 -0
- package/scripts/bongos/provision-repo-auth.js +164 -0
- package/scripts/bongos/provision-repo-private.js +98 -0
- package/scripts/bongos/provision-repo.js +1337 -0
- package/scripts/bongos/provision-teardown.js +106 -0
- package/scripts/bongos/provision-units.js +469 -0
- package/scripts/bongos/provision.js +1479 -0
- package/scripts/bongos/publish-credential-check.js +66 -0
- package/scripts/bongos/publish-integration-gate.js +142 -0
- package/scripts/bongos/publish-manifest.js +440 -0
- package/scripts/bongos/publish-watch.js +268 -0
- package/scripts/bongos/pulse.js +338 -0
- package/scripts/bongos/push-main.js +56 -0
- package/scripts/bongos/push-path-brief.js +100 -0
- package/scripts/bongos/read-session-export.js +359 -0
- package/scripts/bongos/reauth.js +155 -0
- package/scripts/bongos/recall.js +183 -0
- package/scripts/bongos/redteam-patrol.js +437 -0
- package/scripts/bongos/regen-instance-docs.js +47 -0
- package/scripts/bongos/release-core.js +80 -0
- package/scripts/bongos/release-notes.js +271 -0
- package/scripts/bongos/release.js +139 -0
- package/scripts/bongos/rename-history-check.js +369 -0
- package/scripts/bongos/rename-ledger-prose.js +482 -0
- package/scripts/bongos/render-api.js +197 -0
- package/scripts/bongos/render-check.js +206 -0
- package/scripts/bongos/render-ideas.js +226 -0
- package/scripts/bongos/render-payload.js +85 -0
- package/scripts/bongos/repo-metrics.js +363 -0
- package/scripts/bongos/review-sheet.js +108 -0
- package/scripts/bongos/role-pack-guard.js +142 -0
- package/scripts/bongos/route-shadow-guard.js +175 -0
- package/scripts/bongos/routine-schedule.js +318 -0
- package/scripts/bongos/run-routine.js +257 -0
- package/scripts/bongos/run-unit-tests.js +654 -0
- package/scripts/bongos/runner-drift.js +151 -0
- package/scripts/bongos/sandbox-stage.js +459 -0
- package/scripts/bongos/scope-map-guard.js +300 -0
- package/scripts/bongos/scope-roster-guard.js +118 -0
- package/scripts/bongos/seam-wiring-guard.js +275 -0
- package/scripts/bongos/search-ingest-db.js +288 -0
- package/scripts/bongos/search-ingest-md.js +269 -0
- package/scripts/bongos/seed-bongos-v1-idea-routing-tasks.js +152 -0
- package/scripts/bongos/seed-bv1-profiles-tasks.js +135 -0
- package/scripts/bongos/seed-bv2-ideator-surface-tasks.js +390 -0
- package/scripts/bongos/seed-staging.sh +117 -0
- package/scripts/bongos/seed-verify-criteria.js +124 -0
- package/scripts/bongos/sequence.js +597 -0
- package/scripts/bongos/session-cost.js +430 -0
- package/scripts/bongos/session-digest-build.js +293 -0
- package/scripts/bongos/session-digest.js +200 -0
- package/scripts/bongos/session-eval.js +631 -0
- package/scripts/bongos/session-transcript-build.js +155 -0
- package/scripts/bongos/session-transcript-upload.js +29 -0
- package/scripts/bongos/session.js +404 -0
- package/scripts/bongos/setup.js +646 -0
- package/scripts/bongos/ship-check.js +89 -0
- package/scripts/bongos/ship-deploy-target.js +393 -0
- package/scripts/bongos/ship-escalation.js +167 -0
- package/scripts/bongos/ship-finish.js +420 -0
- package/scripts/bongos/ship-flow.js +1217 -0
- package/scripts/bongos/ship-git.js +100 -0
- package/scripts/bongos/ship-grade-steps.js +547 -0
- package/scripts/bongos/ship-grade.js +426 -0
- package/scripts/bongos/ship-honesty.js +314 -0
- package/scripts/bongos/ship-io.js +139 -0
- package/scripts/bongos/ship-land.js +1130 -0
- package/scripts/bongos/ship-memory-sync.js +249 -0
- package/scripts/bongos/ship-merge-gate.js +225 -0
- package/scripts/bongos/ship-merge.js +466 -0
- package/scripts/bongos/ship-mode-ask.js +138 -0
- package/scripts/bongos/ship-mode-manual.js +54 -0
- package/scripts/bongos/ship-preflight-steps.js +399 -0
- package/scripts/bongos/ship-regen.js +291 -0
- package/scripts/bongos/ship-resume.js +201 -0
- package/scripts/bongos/ship-session-upload.js +313 -0
- package/scripts/bongos/ship-state.js +110 -0
- package/scripts/bongos/ship-surprise.js +84 -0
- package/scripts/bongos/ship-visual.js +75 -0
- package/scripts/bongos/ship.js +382 -0
- package/scripts/bongos/shipping-mode.js +71 -0
- package/scripts/bongos/skill-lint.js +250 -0
- package/scripts/bongos/skill-preflight.js +361 -0
- package/scripts/bongos/smoke-batch-claim.sh +238 -0
- package/scripts/bongos/smoke-batch-release.sh +316 -0
- package/scripts/bongos/smoke-claim-consistency.sh +222 -0
- package/scripts/bongos/smoke-dependencies.sh +143 -0
- package/scripts/bongos/smoke-gds.js +256 -0
- package/scripts/bongos/smoke-write.sh +275 -0
- package/scripts/bongos/source-text-test-scan.js +106 -0
- package/scripts/bongos/spark.js +294 -0
- package/scripts/bongos/stale-worktrees.js +212 -0
- package/scripts/bongos/start-goals.js +102 -0
- package/scripts/bongos/start.js +1090 -0
- package/scripts/bongos/status.js +545 -0
- package/scripts/bongos/strand-watch.js +315 -0
- package/scripts/bongos/stranded-rows.js +200 -0
- package/scripts/bongos/stray-unit-sweep.sh +71 -0
- package/scripts/bongos/surface.js +101 -0
- package/scripts/bongos/task.js +273 -0
- package/scripts/bongos/test-path-guard.js +99 -0
- package/scripts/bongos/triage.js +742 -0
- package/scripts/bongos/turn-end-sound.js +74 -0
- package/scripts/bongos/tweak-halt.js +70 -0
- package/scripts/bongos/tweak-renders.js +200 -0
- package/scripts/bongos/uat.js +120 -0
- package/scripts/bongos/ui-kit-transform.js +43 -0
- package/scripts/bongos/update-channel.js +512 -0
- package/scripts/bongos/update-sweep.js +829 -0
- package/scripts/bongos/upgrade-artist-gate.js +46 -0
- package/scripts/bongos/upgrade-commit-identity.js +32 -0
- package/scripts/bongos/upgrade-migrate.js +224 -0
- package/scripts/bongos/upgrade-operator.js +73 -0
- package/scripts/bongos/upgrade-outcome.js +174 -0
- package/scripts/bongos/upgrade.js +1499 -0
- package/scripts/bongos/validate-design.js +12 -0
- package/scripts/bongos/version-close.js +621 -0
- package/scripts/bongos/version-literal-guard.js +140 -0
- package/scripts/bongos/version-select.js +79 -0
- package/scripts/bongos/visual-review-nudge.js +39 -0
- package/scripts/bongos/wedge-remedy.js +174 -0
- package/scripts/bongos/worktree-claim-guard.js +130 -0
- package/scripts/bongos/worktree.js +449 -0
- package/scripts/discord/post.js +1 -1
- package/scripts/gds/README.md +9 -0
- package/scripts/gds/abandon.js +6 -136
- package/scripts/gds/accessibility-replay.js +5 -194
- package/scripts/gds/address-park-sweep.sh +7 -90
- package/scripts/gds/adopt-detect.js +5 -121
- package/scripts/gds/adopt-import.js +5 -109
- package/scripts/gds/adopt-preflight.js +5 -185
- package/scripts/gds/adr-namespace.js +5 -271
- package/scripts/gds/agent-invoke.js +5 -687
- package/scripts/gds/agents-sync.js +5 -500
- package/scripts/gds/api-alias-caller-scan.js +5 -255
- package/scripts/gds/api-artifacts.js +6 -0
- package/scripts/gds/api.js +6 -85
- package/scripts/gds/api.ps1 +8 -26
- package/scripts/gds/architect-audit.js +6 -293
- package/scripts/gds/artifact-audit.js +5 -324
- package/scripts/gds/artifact-format.js +6 -203
- package/scripts/gds/ask.js +5 -229
- package/scripts/gds/audit-authorship.sh +7 -328
- package/scripts/gds/audit-deps.js +6 -188
- package/scripts/gds/audit-gate.js +5 -119
- package/scripts/gds/audit-rank-roles.js +6 -171
- package/scripts/gds/audit-replay.sh +7 -204
- package/scripts/gds/autobongos-digest.js +5 -121
- package/scripts/gds/autobongos-grade-cap.js +5 -186
- package/scripts/gds/autobongos-loop.js +5 -208
- package/scripts/gds/autobongos-run.js +5 -1359
- package/scripts/gds/autobongos-service.cmd +8 -49
- package/scripts/gds/autobongos-service.ps1 +8 -270
- package/scripts/gds/autobongos-tweak-lane.js +5 -261
- package/scripts/gds/autobongos-verify.js +5 -616
- package/scripts/gds/autonomy-gate.js +5 -133
- package/scripts/gds/autonomy-gauge-statusline.js +5 -122
- package/scripts/gds/autonomy-gauge.js +5 -82
- package/scripts/gds/backfill-cost.js +6 -175
- package/scripts/gds/backfill-disciplines.js +5 -142
- package/scripts/gds/backfill-session-earnings.js +5 -121
- package/scripts/gds/backfill-session-types.js +5 -85
- package/scripts/gds/backfill-sessions.js +5 -409
- package/scripts/gds/backfill-subagent-rewards.js +5 -483
- package/scripts/gds/backfill-task-rewards.js +5 -411
- package/scripts/gds/backlog-review.js +6 -398
- package/scripts/gds/backup-dropin-sweep.sh +7 -94
- package/scripts/gds/backup.js +6 -115
- package/scripts/gds/baseline-staleness.js +5 -215
- package/scripts/gds/bfg-principal-token.js +6 -64
- package/scripts/gds/bug-attachment-audit.js +5 -147
- package/scripts/gds/bug-attachment-recover.js +5 -196
- package/scripts/gds/bug-triage.js +6 -291
- package/scripts/gds/build-bongos.js +5 -92
- package/scripts/gds/bump-version.js +5 -219
- package/scripts/gds/capture.js +6 -480
- package/scripts/gds/category-advisory-guard.js +5 -205
- package/scripts/gds/ci-grade.js +6 -81
- package/scripts/gds/claim-recall.js +6 -111
- package/scripts/gds/claim.js +6 -788
- package/scripts/gds/claude-materialize.js +5 -1198
- package/scripts/gds/claude-md-template.js +5 -140
- package/scripts/gds/cleanup-orphans.js +6 -73
- package/scripts/gds/cli-lib.js +6 -1204
- package/scripts/gds/client-baseurl-guard.js +5 -114
- package/scripts/gds/conductor-dispatch.js +6 -534
- package/scripts/gds/context-pack.js +6 -325
- package/scripts/gds/control-manifest.js +5 -197
- package/scripts/gds/copy-apply.js +5 -756
- package/scripts/gds/copy-inventory.js +5 -569
- package/scripts/gds/core-origin-follow.js +5 -184
- package/scripts/gds/core-pin-sync.js +5 -258
- package/scripts/gds/cost-report.js +6 -62
- package/scripts/gds/cost.js +6 -46
- package/scripts/gds/credential-presence.js +5 -294
- package/scripts/gds/cutover-codemod.js +5 -239
- package/scripts/gds/db-backup-nightly.sh +7 -231
- package/scripts/gds/db-backup-offsite.sh +7 -266
- package/scripts/gds/demote.js +6 -44
- package/scripts/gds/deploy-divergence.js +6 -445
- package/scripts/gds/deploy-main-audit-gate.sh +7 -96
- package/scripts/gds/design-sync.js +5 -10
- package/scripts/gds/dev-box-guard.js +5 -164
- package/scripts/gds/dev-lib.js +5 -721
- package/scripts/gds/dev.js +5 -643
- package/scripts/gds/device-flow-help.js +5 -70
- package/scripts/gds/diagnose-achievements.js +5 -116
- package/scripts/gds/diagram-facts.js +6 -355
- package/scripts/gds/discord-channels.js +5 -75
- package/scripts/gds/do-api.js +6 -109
- package/scripts/gds/doc-cli-guard.js +5 -266
- package/scripts/gds/doc-comment-coverage.js +5 -137
- package/scripts/gds/doc-control-claims.js +5 -166
- package/scripts/gds/docs-entropy.js +5 -443
- package/scripts/gds/doctor.js +6 -492
- package/scripts/gds/enroll-control-plane.js +5 -99
- package/scripts/gds/exec-path-guard.js +5 -562
- package/scripts/gds/feedback-send.js +5 -247
- package/scripts/gds/fetch-art-key.js +5 -104
- package/scripts/gds/fetch-sound-prefs.js +5 -124
- package/scripts/gds/figma-design-sync.js +5 -9
- package/scripts/gds/find-untested.js +5 -369
- package/scripts/gds/fitness-checks-error-envelope.js +5 -133
- package/scripts/gds/fitness-checks-identity.js +5 -342
- package/scripts/gds/fitness-checks-packaging.js +5 -131
- package/scripts/gds/fitness-checks-route-pins.js +5 -75
- package/scripts/gds/fitness-checks-vocabulary.js +5 -391
- package/scripts/gds/fitness-checks-write-validation.js +5 -156
- package/scripts/gds/fitness-lib.js +5 -126
- package/scripts/gds/fitness-migration-contraction.js +5 -49
- package/scripts/gds/fitness-ratchets.js +5 -563
- package/scripts/gds/fitness.js +5 -1493
- package/scripts/gds/gate-review.js +5 -328
- package/scripts/gds/gating.js +5 -346
- package/scripts/gds/gds-literal-scan.js +5 -194
- package/scripts/gds/gen-api-client.js +5 -555
- package/scripts/gds/gen-api-docs.js +5 -1100
- package/scripts/gds/gen-atlas.js +5 -364
- package/scripts/gds/gen-diagrams.js +6 -607
- package/scripts/gds/gen-file-map.js +5 -335
- package/scripts/gds/gen-freshness.js +5 -31
- package/scripts/gds/gen-interaction-posture.js +5 -120
- package/scripts/gds/gen-repo-map.js +5 -538
- package/scripts/gds/gen-role-responsibilities.js +5 -133
- package/scripts/gds/gen-session-index.js +5 -241
- package/scripts/gds/gen-sounds.js +5 -174
- package/scripts/gds/git-merge-regen.js +6 -291
- package/scripts/gds/go-live.js +5 -1069
- package/scripts/gds/goal.js +6 -271
- package/scripts/gds/government-walk.js +5 -1475
- package/scripts/gds/grade-correlation-audit.js +5 -308
- package/scripts/gds/grade-replay.js +5 -235
- package/scripts/gds/grade-smoke.js +6 -204
- package/scripts/gds/home-isolation-guard.js +5 -125
- package/scripts/gds/hooks/pre-push.js +5 -209
- package/scripts/gds/howto.js +5 -143
- package/scripts/gds/http-api-client.js +6 -81
- package/scripts/gds/identity-strip.js +5 -74
- package/scripts/gds/init.js +5 -1157
- package/scripts/gds/install-git-hooks.js +5 -198
- package/scripts/gds/instance-apex.js +5 -37
- package/scripts/gds/intent-retry.js +5 -51
- package/scripts/gds/key-card.js +6 -221
- package/scripts/gds/key-status.js +5 -124
- package/scripts/gds/land-watch.js +5 -199
- package/scripts/gds/leak-scan-allowlist.js +5 -291
- package/scripts/gds/learning-capture.js +6 -144
- package/scripts/gds/lib.sh +7 -73
- package/scripts/gds/linkify-refs.js +6 -654
- package/scripts/gds/lint-infra-exec.js +5 -68
- package/scripts/gds/lint-migrations.js +5 -100
- package/scripts/gds/lint-workflow-exec.js +5 -61
- package/scripts/gds/local-preview-lib.js +6 -128
- package/scripts/gds/local-preview.js +6 -81
- package/scripts/gds/login.js +5 -358
- package/scripts/gds/main-audit.js +5 -623
- package/scripts/gds/me.js +6 -96
- package/scripts/gds/memory-map.js +5 -174
- package/scripts/gds/merge-lock.js +6 -70
- package/scripts/gds/migration-namespace.js +5 -311
- package/scripts/gds/mirror-lineage-check.js +5 -341
- package/scripts/gds/mirror-redact.js +5 -348
- package/scripts/gds/module-artifact.js +6 -289
- package/scripts/gds/module-assess-docs.js +6 -237
- package/scripts/gds/module-assess-installs.js +6 -227
- package/scripts/gds/module-assess-score.js +6 -110
- package/scripts/gds/module-assess-security.js +6 -251
- package/scripts/gds/module-assess-tests.js +6 -277
- package/scripts/gds/module-assess-version.js +6 -91
- package/scripts/gds/module-error-report.js +5 -146
- package/scripts/gds/module-test-runner.js +6 -413
- package/scripts/gds/module.js +5 -1374
- package/scripts/gds/move-escalation.js +5 -140
- package/scripts/gds/newcomer-floor.js +6 -420
- package/scripts/gds/newcomer-floor.test.js +6 -234
- package/scripts/gds/next-number.js +6 -162
- package/scripts/gds/oauth-secret.js +5 -200
- package/scripts/gds/onboard.js +5 -265
- package/scripts/gds/onboarding-analyze.js +6 -225
- package/scripts/gds/onboarding-config.js +6 -179
- package/scripts/gds/onboarding-ship.js +6 -91
- package/scripts/gds/pack-env-prefix.js +5 -72
- package/scripts/gds/package-core.js +5 -1102
- package/scripts/gds/page-inventory.js +5 -346
- package/scripts/gds/page-reader.js +5 -720
- package/scripts/gds/paste-token.js +6 -211
- package/scripts/gds/plain-cards.js +5 -350
- package/scripts/gds/portability-smoke-art.sh +7 -84
- package/scripts/gds/portability-smoke-memory.sh +7 -175
- package/scripts/gds/preflight.js +5 -212
- package/scripts/gds/probe-cache.js +5 -244
- package/scripts/gds/prove-strict-versioning.js +6 -283
- package/scripts/gds/provision-auto-upgrade.js +5 -161
- package/scripts/gds/provision-byo-host.js +5 -67
- package/scripts/gds/provision-capacity.js +5 -78
- package/scripts/gds/provision-caps.js +5 -62
- package/scripts/gds/provision-config.js +5 -232
- package/scripts/gds/provision-core-upgrade.js +5 -1165
- package/scripts/gds/provision-disconnect.js +5 -87
- package/scripts/gds/provision-github-setup.js +5 -167
- package/scripts/gds/provision-net.js +5 -356
- package/scripts/gds/provision-pin-key.js +5 -175
- package/scripts/gds/provision-pin-replay.js +5 -125
- package/scripts/gds/provision-process.js +5 -169
- package/scripts/gds/provision-render.js +5 -200
- package/scripts/gds/provision-repo-auth.js +5 -163
- package/scripts/gds/provision-repo-private.js +5 -97
- package/scripts/gds/provision-repo.js +5 -1336
- package/scripts/gds/provision-teardown.js +5 -105
- package/scripts/gds/provision-units.js +5 -468
- package/scripts/gds/provision.js +5 -1477
- package/scripts/gds/publish-credential-check.js +6 -65
- package/scripts/gds/publish-integration-gate.js +5 -140
- package/scripts/gds/publish-manifest.js +5 -437
- package/scripts/gds/publish-watch.js +5 -266
- package/scripts/gds/pulse.js +6 -335
- package/scripts/gds/push-main.js +5 -54
- package/scripts/gds/push-path-brief.js +5 -98
- package/scripts/gds/read-session-export.js +5 -357
- package/scripts/gds/reauth.js +6 -154
- package/scripts/gds/recall.js +6 -182
- package/scripts/gds/redteam-patrol.js +5 -435
- package/scripts/gds/regen-instance-docs.js +5 -45
- package/scripts/gds/release-core.js +5 -78
- package/scripts/gds/release-notes.js +5 -270
- package/scripts/gds/release.js +6 -138
- package/scripts/gds/rename-history-check.js +5 -367
- package/scripts/gds/rename-ledger-prose.js +5 -480
- package/scripts/gds/render-api.js +5 -196
- package/scripts/gds/render-check.js +5 -204
- package/scripts/gds/render-ideas.js +6 -225
- package/scripts/gds/render-payload.js +5 -84
- package/scripts/gds/repo-metrics.js +6 -362
- package/scripts/gds/review-sheet.js +5 -106
- package/scripts/gds/role-pack-guard.js +5 -141
- package/scripts/gds/route-shadow-guard.js +5 -173
- package/scripts/gds/routine-schedule.js +5 -281
- package/scripts/gds/run-routine.js +5 -255
- package/scripts/gds/run-unit-tests.js +6 -659
- package/scripts/gds/runner-drift.js +5 -149
- package/scripts/gds/sandbox-stage.js +6 -458
- package/scripts/gds/scope-map-guard.js +5 -299
- package/scripts/gds/scope-roster-guard.js +5 -117
- package/scripts/gds/seam-wiring-guard.js +5 -274
- package/scripts/gds/search-ingest-db.js +6 -287
- package/scripts/gds/search-ingest-md.js +6 -268
- package/scripts/gds/seed-bongos-v1-idea-routing-tasks.js +6 -152
- package/scripts/gds/seed-bv1-profiles-tasks.js +6 -135
- package/scripts/gds/seed-bv2-ideator-surface-tasks.js +6 -390
- package/scripts/gds/seed-staging.sh +7 -116
- package/scripts/gds/seed-verify-criteria.js +6 -124
- package/scripts/gds/sequence.js +6 -596
- package/scripts/gds/session-cost.js +6 -429
- package/scripts/gds/session-digest-build.js +6 -293
- package/scripts/gds/session-digest.js +6 -199
- package/scripts/gds/session-eval.js +6 -630
- package/scripts/gds/session-transcript-build.js +6 -155
- package/scripts/gds/session-transcript-upload.js +6 -29
- package/scripts/gds/session.js +6 -403
- package/scripts/gds/setup.js +6 -645
- package/scripts/gds/ship-check.js +5 -85
- package/scripts/gds/ship-deploy-target.js +5 -392
- package/scripts/gds/ship-escalation.js +5 -166
- package/scripts/gds/ship-finish.js +5 -419
- package/scripts/gds/ship-flow.js +5 -1216
- package/scripts/gds/ship-git.js +5 -99
- package/scripts/gds/ship-grade-steps.js +5 -546
- package/scripts/gds/ship-grade.js +5 -425
- package/scripts/gds/ship-honesty.js +5 -312
- package/scripts/gds/ship-io.js +5 -138
- package/scripts/gds/ship-land.js +5 -1129
- package/scripts/gds/ship-memory-sync.js +5 -248
- package/scripts/gds/ship-merge-gate.js +5 -224
- package/scripts/gds/ship-merge.js +5 -465
- package/scripts/gds/ship-mode-ask.js +5 -137
- package/scripts/gds/ship-mode-manual.js +5 -53
- package/scripts/gds/ship-preflight-steps.js +5 -398
- package/scripts/gds/ship-regen.js +5 -313
- package/scripts/gds/ship-resume.js +5 -200
- package/scripts/gds/ship-session-upload.js +5 -312
- package/scripts/gds/ship-state.js +5 -109
- package/scripts/gds/ship-surprise.js +5 -83
- package/scripts/gds/ship-visual.js +5 -74
- package/scripts/gds/ship.js +5 -380
- package/scripts/gds/shipping-mode.js +5 -69
- package/scripts/gds/skill-lint.js +5 -248
- package/scripts/gds/skill-preflight.js +5 -359
- package/scripts/gds/smoke-batch-claim.sh +7 -237
- package/scripts/gds/smoke-batch-release.sh +7 -315
- package/scripts/gds/smoke-claim-consistency.sh +7 -221
- package/scripts/gds/smoke-dependencies.sh +7 -142
- package/scripts/gds/smoke-gds.js +6 -255
- package/scripts/gds/smoke-write.sh +7 -274
- package/scripts/gds/source-text-test-scan.js +7 -0
- package/scripts/gds/spark.js +6 -293
- package/scripts/gds/stale-worktrees.js +5 -210
- package/scripts/gds/start-goals.js +5 -101
- package/scripts/gds/start.js +6 -1089
- package/scripts/gds/status.js +6 -544
- package/scripts/gds/strand-watch.js +5 -313
- package/scripts/gds/stranded-rows.js +5 -198
- package/scripts/gds/stray-unit-sweep.sh +7 -70
- package/scripts/gds/surface.js +5 -100
- package/scripts/gds/task.js +6 -272
- package/scripts/gds/test-path-guard.js +5 -97
- package/scripts/gds/triage.js +6 -741
- package/scripts/gds/turn-end-sound.js +5 -72
- package/scripts/gds/tweak-halt.js +5 -68
- package/scripts/gds/tweak-renders.js +5 -198
- package/scripts/gds/uat.js +6 -119
- package/scripts/gds/ui-kit-transform.js +5 -41
- package/scripts/gds/update-channel.js +5 -510
- package/scripts/gds/update-sweep.js +5 -827
- package/scripts/gds/upgrade-artist-gate.js +5 -45
- package/scripts/gds/upgrade-commit-identity.js +5 -31
- package/scripts/gds/upgrade-migrate.js +5 -223
- package/scripts/gds/upgrade-operator.js +6 -73
- package/scripts/gds/upgrade-outcome.js +5 -173
- package/scripts/gds/upgrade.js +5 -1497
- package/scripts/gds/validate-design.js +5 -10
- package/scripts/gds/version-close.js +6 -620
- package/scripts/gds/version-literal-guard.js +5 -138
- package/scripts/gds/version-select.js +5 -77
- package/scripts/gds/visual-review-nudge.js +5 -38
- package/scripts/gds/wedge-remedy.js +5 -173
- package/scripts/gds/worktree-claim-guard.js +5 -129
- package/scripts/gds/worktree.js +6 -448
- package/scripts/hall-preview/refresh-fixtures.js +1 -1
- package/scripts/hall-preview/server.js +2 -2
- package/scripts/migrate.sh +3 -3
- package/scripts/public-mirror-export.js +3 -3
- package/scripts/security/dep-audit.js +50 -124
- package/scripts/setup-builder.js +7 -7
- package/src/bongos/api-errors.js +1 -0
- package/src/bongos/api-prefix.js +1 -1
- package/src/bongos/auth-github.js +19 -3
- package/src/bongos/auth-idp.js +7 -0
- package/src/bongos/claim-attribution.js +2 -2
- package/src/bongos/core-moves.js +1 -1
- package/src/bongos/core-update.js +3 -3
- package/src/bongos/craft-mode.js +2 -2
- package/src/bongos/db-kernel.js +15 -3
- package/src/bongos/db.js +30 -4
- package/src/bongos/github-repos.js +1 -1
- package/src/bongos/llm-cache.js +1 -1
- package/src/bongos/llm-pricing.js +1 -1
- package/src/bongos/metrics.js +1 -1
- package/src/bongos/middleware/rate-limit.js +2 -2
- package/src/bongos/module-listing.js +93 -1
- package/src/bongos/module-scope-map.js +90 -85
- package/src/bongos/module-store.js +1 -1
- package/src/bongos/module-submissions.js +1 -1
- package/src/bongos/optimizer.js +1 -1
- package/src/bongos/package-registry.js +1 -1
- package/src/bongos/path-match.js +1 -1
- package/src/bongos/permission-path-check.js +3 -3
- package/src/bongos/platform-visibility-gate.js +3 -5
- package/src/bongos/prelaunch-gate.js +7 -6
- package/src/bongos/route-rank-check.js +2 -2
- package/src/bongos/routes/auth.js +15 -2
- package/src/bongos/routes/backup.js +1 -1
- package/src/bongos/routes/builders.js +29 -1
- package/src/bongos/routes/me.js +49 -18
- package/src/bongos/routes/modules.js +29 -9
- package/src/bongos/routes/public.js +3 -72
- package/src/bongos/schema-lag.js +1 -1
- package/src/bongos/sensitive-surfaces.js +1 -1
- package/src/bongos/serve-internal.js +65 -16
- package/src/bongos/software-update.js +2 -2
- package/src/bongos/upgrade-hold.js +3 -3
- package/src/hall-look.js +6 -5
- package/src/module-api.js +3 -3
- package/src/module-loader/catalog.js +1 -1
- package/src/module-loader/error-tally.js +3 -3
- package/src/module-loader/manifest-schema.js +3 -3
- package/src/platform-server.js +10 -0
- package/src/role-responsibilities.js +1 -1
- package/src/stale-timer.js +2 -2
- package/tests/accessibility_replay.mjs +1 -1
- package/tests/activity_rollup_order_db.mjs +1 -1
- package/tests/activity_snapshots_db.mjs +1 -1
- package/tests/adopt_detect.mjs +1 -1
- package/tests/adopt_import.mjs +1 -1
- package/tests/adopt_preflight.mjs +1 -1
- package/tests/adr_0089_scope.mjs +10 -7
- package/tests/adr_0162_citation.mjs +1 -1
- package/tests/adr_0162_gate_citation.mjs +1 -1
- package/tests/agent_invoke.mjs +1 -1
- package/tests/agent_invoke_live.mjs +3 -3
- package/tests/agents_cron_trigger.mjs +2 -2
- package/tests/agents_roster.mjs +1 -1
- package/tests/agents_sync.mjs +4 -4
- package/tests/allow_rule_guard.mjs +20 -20
- package/tests/api_alias_caller_ratchet.mjs +9 -10
- package/tests/api_alias_exceptions.mjs +7 -6
- package/tests/api_artifacts.mjs +214 -0
- package/tests/api_cli_flags.mjs +3 -3
- package/tests/api_client.mjs +56 -54
- package/tests/api_docs.mjs +30 -9
- package/tests/api_error_envelope_buildcheck.mjs +1 -1
- package/tests/api_msys_path_repair.mjs +2 -2
- package/tests/architect.mjs +1 -1
- package/tests/art_stage.mjs +2 -2
- package/tests/artifact_audit.mjs +2 -2
- package/tests/atlas.mjs +1 -1
- package/tests/audit_deps.mjs +1 -1
- package/tests/audit_gate.mjs +1 -1
- package/tests/auth_flow_slice1.mjs +3 -3
- package/tests/auth_inactive_builder.mjs +43 -5
- package/tests/auth_session_expiry_db.mjs +16 -4
- package/tests/auth_session_ttl.mjs +23 -0
- package/tests/authorship_audit.mjs +2 -2
- package/tests/autobongos_cadence.mjs +1 -1
- package/tests/autobongos_fence.mjs +1 -1
- package/tests/autobongos_grade_cap.mjs +2 -2
- package/tests/autobongos_heartbeat_head.mjs +1 -1
- package/tests/autobongos_host_access.mjs +3 -3
- package/tests/autobongos_loop.mjs +17 -17
- package/tests/autobongos_service_ps1.mjs +3 -3
- package/tests/autobongos_tweak_lane.mjs +2 -2
- package/tests/autobongos_verify.mjs +2 -2
- package/tests/autonomous_fit_protected_paths.mjs +3 -3
- package/tests/autonomy_config_idle.mjs +1 -1
- package/tests/autonomy_daily_checks.mjs +201 -0
- package/tests/autonomy_digest.mjs +1 -1
- package/tests/autonomy_gate.mjs +1 -1
- package/tests/autonomy_gauge.mjs +2 -2
- package/tests/autonomy_runner_identity.mjs +1 -1
- package/tests/backfill_sessions.mjs +8 -8
- package/tests/backfill_subagent_rewards.mjs +1 -1
- package/tests/backfill_task_rewards.mjs +2 -2
- package/tests/backlog_review.mjs +3 -3
- package/tests/baseline_staleness.mjs +2 -2
- package/tests/bfg.mjs +11 -5
- package/tests/bfg_write.mjs +20 -11
- package/tests/blockers_hall.mjs +14 -4
- package/tests/blockers_page_ui.mjs +56 -12
- package/tests/bongos_dispatch.mjs +5 -5
- package/tests/bongos_login.mjs +2 -2
- package/tests/bug_attachment_audit.mjs +1 -1
- package/tests/bug_attachment_recover.mjs +2 -2
- package/tests/bug_triage.mjs +3 -3
- package/tests/build_info.mjs +1 -1
- package/tests/builder_tester_tag.mjs +184 -0
- package/tests/bump_version.mjs +3 -3
- package/tests/canonical_profile_url.mjs +1 -1
- package/tests/capture_error_format.mjs +1 -1
- package/tests/capture_goal_routing.mjs +2 -2
- package/tests/category_advisory_guard.mjs +3 -3
- package/tests/claim_error_surface.mjs +2 -2
- package/tests/claim_from_task_and_home.mjs +1 -1
- package/tests/claim_gate_open_blocker.mjs +7 -4
- package/tests/claim_gate_rebase.mjs +12 -8
- package/tests/claim_recall.mjs +4 -4
- package/tests/claim_resolve_worktree_lock.mjs +1 -1
- package/tests/claude_materialize.mjs +68 -68
- package/tests/clawback_confirmed_backlog.mjs +8 -5
- package/tests/cli_allowlist_permissions.mjs +11 -11
- package/tests/cli_dispatcher.mjs +2 -2
- package/tests/cli_err_code.mjs +6 -6
- package/tests/cli_exit_no_abort.mjs +7 -7
- package/tests/cli_lib_formatters.mjs +2 -2
- package/tests/cli_sessions.mjs +5 -5
- package/tests/cli_surface.mjs +15 -15
- package/tests/cli_token_reissue.mjs +2 -2
- package/tests/client_baseurl_guard.mjs +1 -1
- package/tests/client_bundle_route.mjs +35 -4
- package/tests/cloud_bongos_pack.mjs +1 -1
- package/tests/community_leaderboard_db.mjs +1 -1
- package/tests/conductor.mjs +18 -18
- package/tests/conflict_resolve.mjs +14 -16
- package/tests/consumer_layout_boot.mjs +12 -12
- package/tests/context_pack.mjs +6 -6
- package/tests/control_manifest.mjs +4 -4
- package/tests/copy_desk_page_reads.mjs +1 -1
- package/tests/copy_desk_page_release.mjs +192 -0
- package/tests/copy_inventory.mjs +2 -2
- package/tests/core_auto_upgrade.mjs +1 -1
- package/tests/core_move_notice.mjs +2 -2
- package/tests/core_origin_follow.mjs +7 -7
- package/tests/core_pin_sync.mjs +3 -3
- package/tests/core_upgrade_door.mjs +2 -2
- package/tests/core_upgrade_owner_door.mjs +34 -1
- package/tests/core_upgrade_runner.mjs +19 -19
- package/tests/credential_presence.mjs +2 -2
- package/tests/credit_grant.mjs +3 -3
- package/tests/credit_log_single_writer.mjs +5 -5
- package/tests/criterion_ref_status.mjs +2 -2
- package/tests/cross_discipline_priority_direction.mjs +3 -3
- package/tests/cutover_codemod.mjs +2 -4
- package/tests/db_backup_nightly.mjs +1 -1
- package/tests/db_backup_offsite.mjs +1 -1
- package/tests/db_ownership_handover.mjs +2 -2
- package/tests/dead_deps.mjs +3 -3
- package/tests/dependency_advisory.mjs +1 -1
- package/tests/deploy_audit_gate.mjs +4 -4
- package/tests/deploy_divergence_line.mjs +36 -16
- package/tests/deploy_page_projects.mjs +35 -4
- package/tests/dev_lib.mjs +2 -2
- package/tests/dev_windows.mjs +2 -2
- package/tests/diagram_facts_offset.mjs +1 -1
- package/tests/diagram_repo_slug.mjs +1 -1
- package/tests/diff_derived_signals.mjs +2 -2
- package/tests/dns_preflight.mjs +2 -2
- package/tests/do_api.mjs +3 -3
- package/tests/doc_cli_guard.mjs +28 -28
- package/tests/doc_comment_coverage.mjs +1 -1
- package/tests/doc_control_claims.mjs +11 -11
- package/tests/docs_entropy.mjs +2 -2
- package/tests/docs_openapi_route.mjs +8 -6
- package/tests/doctor_hooks.mjs +1 -1
- package/tests/edit_hints.mjs +3 -2
- package/tests/effective_visibility_predicate.mjs +1 -19
- package/tests/env_knobs_neutral_prefix.mjs +13 -13
- package/tests/exec_path_guard.mjs +4 -4
- package/tests/executed_closure.mjs +18 -12
- package/tests/file_map.mjs +1 -1
- package/tests/find_untested.mjs +13 -13
- package/tests/first_admin_bootstrap.mjs +1 -1
- package/tests/fitness.mjs +16 -16
- package/tests/fitness_gds_ratchet.mjs +2 -2
- package/tests/fitness_installed_core.mjs +3 -3
- package/tests/fitness_no_raw_nul.mjs +1 -1
- package/tests/fitness_ratchets.mjs +3 -3
- package/tests/fitness_scope_roster.mjs +2 -2
- package/tests/fitness_two_root.mjs +8 -8
- package/tests/fixtures/accessibility-replay.json +5 -5
- package/tests/fixtures/grade-replay/recorded-panel-grades.json +1 -1
- package/tests/fixtures/ideator-prefold/README.md +1 -1
- package/tests/fixtures/page-ledger.mjs +22 -0
- package/tests/fixtures/session-506-digest.json +5 -5
- package/tests/gate_approvals.mjs +50 -0
- package/tests/gate_review.mjs +8 -8
- package/tests/gating_review_retired.mjs +2 -2
- package/tests/gen_freshness.mjs +3 -3
- package/tests/git_guard.mjs +3 -3
- package/tests/git_merge_regen.mjs +41 -65
- package/tests/github_one_trip.mjs +4 -4
- package/tests/github_pick_up.mjs +2 -2
- package/tests/github_push_merge_driver.mjs +1 -1
- package/tests/go_live.mjs +3 -2
- package/tests/goal_category.mjs +1 -1
- package/tests/goal_cli.mjs +2 -2
- package/tests/goal_create_spec_entry.mjs +1 -1
- package/tests/goal_invite_consent.mjs +3 -1
- package/tests/goal_move.mjs +1 -1
- package/tests/goal_working_area.mjs +1 -1
- package/tests/government_agent_asks.mjs +7 -7
- package/tests/government_board_room_copy.mjs +6 -1
- package/tests/government_board_view.mjs +39 -0
- package/tests/government_board_vote_ui.mjs +39 -1
- package/tests/government_config.mjs +2 -2
- package/tests/government_live_proof_shape.mjs +1 -1
- package/tests/government_protected_surfaces.mjs +54 -53
- package/tests/government_require_permission.mjs +9 -1
- package/tests/government_vanilla_boot.mjs +1 -1
- package/tests/government_vocabulary.mjs +2 -2
- package/tests/government_walk.mjs +2 -2
- package/tests/grade_body_limit.mjs +6 -4
- package/tests/grade_correlation_audit.mjs +3 -3
- package/tests/grade_diff_hash.mjs +1 -1
- package/tests/grade_engine_replay.mjs +2 -2
- package/tests/grade_server_authoritative.mjs +1 -1
- package/tests/grade_unavailable_display.mjs +1 -1
- package/tests/grader.mjs +8 -24
- package/tests/grader_generated_provenance.mjs +14 -14
- package/tests/grader_no_artifact.mjs +1 -1
- package/tests/grader_prompt_fencing.mjs +1 -1
- package/tests/grader_quality_window_overflow.mjs +1 -1
- package/tests/grader_reader_lens.mjs +3 -3
- package/tests/grader_regrade_delta.mjs +1 -1
- package/tests/grader_unbacked_score.mjs +2 -2
- package/tests/hall_acclaim_vote_control.mjs +113 -0
- package/tests/hall_asset_cache.mjs +127 -0
- package/tests/hall_audit.mjs +63 -0
- package/tests/hall_board_world.mjs +20 -0
- package/tests/hall_city_card_words.mjs +61 -0
- package/tests/hall_client_request_shape.mjs +5 -1
- package/tests/hall_home_ships_bounded.mjs +160 -0
- package/tests/hall_landing_boot.mjs +15 -2
- package/tests/hall_nav.mjs +33 -0
- package/tests/hall_onboarding_bongos_setup.mjs +1 -1
- package/tests/hall_oversight_world.mjs +44 -4
- package/tests/hall_palette.mjs +12 -9
- package/tests/hall_preview_security.mjs +1 -1
- package/tests/hall_profile_world.mjs +17 -0
- package/tests/hall_reading_world.mjs +16 -1
- package/tests/hall_roster_world.mjs +2 -1
- package/tests/hall_studio_world.mjs +4 -1
- package/tests/hall_work_history_id.mjs +39 -0
- package/tests/held_tweak_reporting.mjs +4 -4
- package/tests/helpers.mjs +3 -3
- package/tests/home_bounded_reads.mjs +1 -1
- package/tests/home_isolation_guard.mjs +1 -1
- package/tests/hook_core_resolve.mjs +7 -7
- package/tests/hook_user_agents.mjs +1 -1
- package/tests/hooks_drain.mjs +2 -2
- package/tests/host_topology_skips.mjs +1 -1
- package/tests/howto_guide.mjs +1 -1
- package/tests/howto_moments.mjs +3 -3
- package/tests/hub_account_page.mjs +1 -1
- package/tests/idea_capture_grades.mjs +2 -2
- package/tests/idea_develop_spark.mjs +1 -1
- package/tests/idea_filed_via.mjs +2 -2
- package/tests/idea_ideate_full.mjs +1 -1
- package/tests/idea_spark_mark.mjs +1 -1
- package/tests/idea_spark_queue.mjs +1 -1
- package/tests/idea_triage.mjs +1 -1
- package/tests/idea_triage_grade.mjs +3 -3
- package/tests/idea_vote_permission.mjs +113 -0
- package/tests/idea_votes_fold_db.mjs +123 -0
- package/tests/infra_exec_paths.mjs +12 -12
- package/tests/init.mjs +2 -2
- package/tests/instance_db_migrated_on_code_move.mjs +5 -5
- package/tests/instance_feedback.mjs +9 -9
- package/tests/instance_mismatch_guard.mjs +2 -2
- package/tests/integration_parked_ratchet.mjs +24 -2
- package/tests/intent_retry.mjs +1 -1
- package/tests/interaction_posture.mjs +3 -3
- package/tests/invite_expiry_db.mjs +1 -1
- package/tests/joinability_invite_only.mjs +1 -1
- package/tests/karma_vote_lists.mjs +270 -0
- package/tests/key-card.mjs +2 -2
- package/tests/key-status.mjs +2 -2
- package/tests/knip_ratchet_ambient.mjs +2 -2
- package/tests/known_failing_ratchet.mjs +1 -1
- package/tests/land_watch.mjs +2 -2
- package/tests/landing_legal_pages.mjs +1 -1
- package/tests/landing_page.mjs +2 -2
- package/tests/leaderboard_roles.mjs +4 -1
- package/tests/leak_scan_allowlist.mjs +8 -8
- package/tests/leak_scan_fail_closed.mjs +1 -1
- package/tests/lib_sh_resolution.mjs +9 -9
- package/tests/lifecycle-card.mjs +7 -7
- package/tests/linkify_check.mjs +2 -2
- package/tests/linkify_refs.mjs +1 -1
- package/tests/llm-cache-route.mjs +1 -1
- package/tests/local_preview.mjs +2 -2
- package/tests/main_audit.mjs +3 -3
- package/tests/main_audit_attestation.mjs +1 -1
- package/tests/main_audit_db_roster.mjs +2 -2
- package/tests/main_worktree_busy_reason.mjs +3 -3
- package/tests/markdown_line_endings.mjs +2 -2
- package/tests/me_streak_leaderboard_queries.mjs +193 -0
- package/tests/membership_kind_lockstep.mjs +1 -1
- package/tests/memory_isolation.mjs +16 -8
- package/tests/memory_map.mjs +2 -2
- package/tests/memory_pull.mjs +33 -25
- package/tests/merge_driver_register.mjs +3 -3
- package/tests/migration_allocation.mjs +2 -2
- package/tests/migration_namespace.mjs +1 -1
- package/tests/migrations_forward_safe.mjs +1 -1
- package/tests/mingle.mjs +1 -1
- package/tests/mirror_lineage_fulltree.mjs +3 -3
- package/tests/mirror_lineage_proof.mjs +2 -2
- package/tests/mirror_redact.mjs +4 -4
- package/tests/missing_dep_classify.mjs +3 -3
- package/tests/module-scope-map.mjs +22 -22
- package/tests/module_api_lazy.mjs +1 -1
- package/tests/module_assess_docs.mjs +2 -2
- package/tests/module_assess_installs.mjs +3 -3
- package/tests/module_assess_price_parity.mjs +5 -5
- package/tests/module_assess_score.mjs +5 -5
- package/tests/module_assess_security.mjs +4 -4
- package/tests/module_assess_tests.mjs +3 -3
- package/tests/module_assessments_migration.mjs +1 -1
- package/tests/module_catalog.mjs +2 -2
- package/tests/module_cli.mjs +3 -3
- package/tests/module_entitlements.mjs +1 -1
- package/tests/module_error_counts.mjs +1 -1
- package/tests/module_install.mjs +4 -4
- package/tests/module_loader.mjs +3 -1
- package/tests/module_owned_tests.mjs +1 -1
- package/tests/module_release_channels.mjs +1 -1
- package/tests/module_store_howto.mjs +3 -3
- package/tests/module_store_listing.mjs +139 -2
- package/tests/module_store_publish.mjs +4 -4
- package/tests/module_store_publish_route.mjs +1 -1
- package/tests/module_store_reassess.mjs +1 -1
- package/tests/module_store_registry_migration.mjs +1 -1
- package/tests/module_test_runner.mjs +3 -3
- package/tests/module_update.mjs +4 -4
- package/tests/module_upgrade_updates.mjs +1 -1
- package/tests/move_escalation.mjs +2 -2
- package/tests/nav_permission_atoms.mjs +3 -2
- package/tests/needs_rebase.mjs +7 -3
- package/tests/newcomer_floor.mjs +1 -1
- package/tests/next_number.mjs +1 -1
- package/tests/no_artifact_escalation.mjs +3 -3
- package/tests/npm_release_where.mjs +1 -1
- package/tests/oauth_secret.mjs +2 -2
- package/tests/onboard.mjs +6 -6
- package/tests/onboarding_gate.mjs +2 -2
- package/tests/opt_in_skill_modules.mjs +3 -3
- package/tests/own_scope_guard.mjs +1 -1
- package/tests/own_session_revoke.mjs +4 -1
- package/tests/package_core.mjs +10 -11
- package/tests/page_inventory.mjs +5 -5
- package/tests/page_reader.mjs +7 -7
- package/tests/page_tweak_hold.mjs +6 -6
- package/tests/parallel-load.mjs +1 -1
- package/tests/paste_token_api_base.mjs +1 -1
- package/tests/paste_token_session_store.mjs +2 -2
- package/tests/pending_invite_purge_db.mjs +1 -1
- package/tests/permission_path.mjs +1 -1
- package/tests/pin_replay.mjs +1 -1
- package/tests/pin_write_key.mjs +7 -7
- package/tests/plain_cards.mjs +15 -15
- package/tests/pr_assign.mjs +1 -1
- package/tests/pre_push_hook.mjs +3 -3
- package/tests/preflight_checks.mjs +2 -2
- package/tests/prelaunch_gate.mjs +1 -1
- package/tests/privacy_matrix.mjs +1 -1
- package/tests/probe_cache.mjs +6 -6
- package/tests/profile_connections_ui.mjs +4 -3
- package/tests/profile_fields.mjs +11 -1
- package/tests/profile_privacy_owner_view.mjs +1 -1
- package/tests/profile_role_headline.mjs +10 -9
- package/tests/project_admin_console_model.mjs +1 -1
- package/tests/projects_hub.mjs +1 -1
- package/tests/projects_hub_cloud_hop.mjs +1 -1
- package/tests/promote_goal_id.mjs +6 -6
- package/tests/promotion_sweep.mjs +1 -1
- package/tests/provision.mjs +24 -24
- package/tests/provision_account_identity.mjs +2 -2
- package/tests/provision_byo_host.mjs +1 -1
- package/tests/provision_caddy_wiring.mjs +2 -2
- package/tests/provision_disconnect.mjs +2 -2
- package/tests/provision_dns_first.mjs +1 -1
- package/tests/provision_render.mjs +9 -9
- package/tests/provision_repo_private.mjs +3 -3
- package/tests/provision_resource_caps.mjs +5 -5
- package/tests/provision_restart.mjs +3 -3
- package/tests/provision_settings_apply.mjs +7 -7
- package/tests/provision_teardown_address.mjs +2 -2
- package/tests/provisioning_capacity.mjs +5 -5
- package/tests/provisioning_credential_preflight.mjs +1 -1
- package/tests/provisioning_disconnect.mjs +1 -1
- package/tests/provisioning_error_note_scope.mjs +4 -4
- package/tests/provisioning_paid_shape_gate.mjs +2 -2
- package/tests/provisioning_planet_physics.mjs +16 -0
- package/tests/provisioning_runner_drift_notice.mjs +2 -2
- package/tests/provisioning_settings_env.mjs +1 -1
- package/tests/pruned_lockfile_integrity.mjs +1 -1
- package/tests/public_mirror_export.mjs +1 -1
- package/tests/publish_integration_gate.mjs +2 -2
- package/tests/publish_manifest.mjs +6 -6
- package/tests/publish_watch.mjs +1 -1
- package/tests/push_path_brief.mjs +2 -2
- package/tests/raise.mjs +248 -0
- package/tests/rank_roles_audit.mjs +1 -1
- package/tests/rank_tier_single_source.mjs +2 -2
- package/tests/rate_limit_public.mjs +1 -1
- package/tests/read_default_meter.mjs +2 -2
- package/tests/read_session_export.mjs +1 -1
- package/tests/rebase_gate_set_aside.mjs +1 -1
- package/tests/recall_cli.mjs +1 -1
- package/tests/recall_corpus_health.mjs +3 -2
- package/tests/recall_hints.mjs +1 -1
- package/tests/recruiter_sliver_boundary.mjs +1 -1
- package/tests/redteam_patrol.mjs +2 -2
- package/tests/regrade_actual_minutes.mjs +2 -2
- package/tests/regrade_eligibility.mjs +2 -2
- package/tests/release_core.mjs +2 -2
- package/tests/release_notes.mjs +4 -4
- package/tests/rename_history_restraint.mjs +3 -3
- package/tests/rename_ledger_prose.mjs +6 -6
- package/tests/render_api.mjs +1 -1
- package/tests/render_check.mjs +4 -4
- package/tests/render_deploy.mjs +1 -1
- package/tests/repo_info_binding.mjs +1 -1
- package/tests/repo_map.mjs +5 -5
- package/tests/reward_mode_cost_plus_only.mjs +7 -3
- package/tests/reward_mode_surfacing.mjs +1 -1
- package/tests/role_responsibilities.mjs +1 -1
- package/tests/route_permission_check.mjs +1 -1
- package/tests/route_shadow_guard.mjs +1 -1
- package/tests/route_validation.mjs +1 -1
- package/tests/routine_capture_kind.mjs +24 -13
- package/tests/routine_schedule.mjs +51 -9
- package/tests/run_routine.mjs +5 -5
- package/tests/run_routine_two_root.mjs +5 -5
- package/tests/runner_drift.mjs +17 -17
- package/tests/sandbox_stage.mjs +5 -5
- package/tests/scope_map_guard.mjs +7 -7
- package/tests/scouting_owner_access_and_reach.mjs +1 -1
- package/tests/scripts_gds_forwarders.mjs +224 -0
- package/tests/scrubber_corpus.mjs +2 -2
- package/tests/seam_wiring_guard.mjs +1 -1
- package/tests/search_ingest.mjs +2 -2
- package/tests/search_ingest_db.mjs +1 -1
- package/tests/search_ingest_nul.mjs +6 -6
- package/tests/seed_verify_criteria.mjs +3 -3
- package/tests/sequence.mjs +3 -3
- package/tests/served_paths_shipped.mjs +3 -3
- package/tests/session_506_regression.mjs +1 -1
- package/tests/session_accessibility.mjs +1 -1
- package/tests/session_caps.mjs +1 -1
- package/tests/session_cost.mjs +1 -1
- package/tests/session_digest.mjs +2 -2
- package/tests/session_eval.mjs +6 -6
- package/tests/session_index.mjs +1 -1
- package/tests/session_records.mjs +4 -4
- package/tests/session_rename_fallback.mjs +2 -2
- package/tests/session_reward_on_land.mjs +7 -149
- package/tests/session_reward_on_land_db.mjs +191 -0
- package/tests/session_reward_reconcile.mjs +6 -88
- package/tests/session_reward_reconcile_db.mjs +132 -0
- package/tests/session_transcript.mjs +1 -1
- package/tests/sessions_kit_pager.mjs +2 -1
- package/tests/setup_device_flow_fallback.mjs +2 -2
- package/tests/setup_smoke.mjs +12 -5
- package/tests/setup_status_facts.mjs +54 -12
- package/tests/ship_autolinkify.mjs +2 -2
- package/tests/ship_automerge_injection.mjs +1 -1
- package/tests/ship_base_flag.mjs +1 -1
- package/tests/ship_broadcast_routing.mjs +1 -1
- package/tests/ship_broadcast_server.mjs +2 -2
- package/tests/ship_builder_model.mjs +1 -1
- package/tests/ship_cannot_lie.mjs +9 -9
- package/tests/ship_card.mjs +2 -2
- package/tests/ship_ci_deploy.mjs +7 -7
- package/tests/ship_error_shape.mjs +1 -1
- package/tests/ship_land_ci_not_started.mjs +3 -3
- package/tests/ship_land_conflict.mjs +3 -3
- package/tests/ship_land_proof.mjs +3 -3
- package/tests/ship_land_red_pr.mjs +5 -5
- package/tests/ship_merge_gate.mjs +14 -14
- package/tests/ship_mode.mjs +1 -1
- package/tests/ship_mode_first_ship.mjs +4 -4
- package/tests/ship_mode_hands_off.mjs +8 -8
- package/tests/ship_post_land_verify.mjs +1 -1
- package/tests/ship_preflight.mjs +19 -19
- package/tests/ship_premerge.mjs +1 -1
- package/tests/ship_publish_error.mjs +2 -2
- package/tests/ship_push_diagnosis.mjs +1 -1
- package/tests/ship_regen_copy_inventory.mjs +3 -3
- package/tests/ship_resume.mjs +4 -4
- package/tests/ship_smoke_gate.mjs +1 -1
- package/tests/ship_upload_skip.mjs +1 -1
- package/tests/ship_upstream_deletion.mjs +1 -1
- package/tests/ship_vendored_instance.mjs +8 -8
- package/tests/ship_visual_regrade.mjs +3 -3
- package/tests/ship_zero_commit.mjs +1 -1
- package/tests/skill_docs_unavailable_regrade.mjs +3 -3
- package/tests/skill_friction_kind.mjs +1 -1
- package/tests/skill_grade_recover.mjs +1 -1
- package/tests/skill_grader_health.mjs +1 -1
- package/tests/skill_lint.mjs +1 -1
- package/tests/skill_menu_ruling.mjs +1 -1
- package/tests/skill_preflight.mjs +7 -7
- package/tests/skip_is_not_pass.mjs +22 -1
- package/tests/smoke_dependencies_witness.mjs +2 -2
- package/tests/smoke_preflight.mjs +1 -1
- package/tests/smoke_target.mjs +2 -2
- package/tests/smoke_write_contract.mjs +2 -2
- package/tests/sound_player.mjs +8 -8
- package/tests/source_text_test_ratchet.mjs +97 -0
- package/tests/speciality_corpus_scope.mjs +1 -1
- package/tests/speciality_session_skills.mjs +1 -1
- package/tests/sso_checkin_legacy_field_gone.mjs +4 -2
- package/tests/stale_timer.mjs +3 -3
- package/tests/stale_worktrees.mjs +1 -1
- package/tests/start_env_guard.mjs +1 -1
- package/tests/start_goal_first.mjs +3 -3
- package/tests/start_inbox_count.mjs +1 -1
- package/tests/start_rebase_warning.mjs +1 -1
- package/tests/status_default_version.mjs +3 -3
- package/tests/status_mirror_sync.mjs +1 -1
- package/tests/status_page_no_dead_uptime.mjs +80 -0
- package/tests/stop_refcheck.mjs +1 -1
- package/tests/strand_watch.mjs +1 -1
- package/tests/stranded_rows.mjs +1 -1
- package/tests/stuck_detector.mjs +14 -14
- package/tests/sweep_app_account.mjs +3 -3
- package/tests/task_cli.mjs +2 -2
- package/tests/task_detail_ui.mjs +11 -1
- package/tests/task_discipline_required.mjs +2 -2
- package/tests/task_list_paging.mjs +1 -1
- package/tests/task_visual_slots.mjs +2 -2
- package/tests/terms_acceptance.mjs +1 -1
- package/tests/terms_grandfather_db.mjs +1 -1
- package/tests/test_path_guard.mjs +1 -1
- package/tests/triage_development.mjs +1 -1
- package/tests/tweak_batch_apply.mjs +2 -2
- package/tests/tweak_land_heal.mjs +3 -3
- package/tests/tweak_unattended.mjs +3 -3
- package/tests/ui_design_skills.mjs +2 -2
- package/tests/unit_report_status.mjs +2 -2
- package/tests/unit_runner_serial.mjs +2 -2
- package/tests/unit_runner_teardown_abort.mjs +1 -1
- package/tests/update_channel.mjs +2 -2
- package/tests/update_channel_db.mjs +4 -4
- package/tests/update_subscription_engine.mjs +26 -26
- package/tests/update_sweep_home.mjs +14 -14
- package/tests/upgrade.mjs +11 -11
- package/tests/upgrade_artist_gate.mjs +4 -4
- package/tests/upgrade_commit_identity.mjs +2 -2
- package/tests/upgrade_migrate.mjs +7 -7
- package/tests/upgrade_operator.mjs +2 -2
- package/tests/upgrade_outcome.mjs +2 -2
- package/tests/upgrade_persist_pin.mjs +5 -5
- package/tests/upkeep_home.mjs +1 -1
- package/tests/version_close.mjs +2 -2
- package/tests/version_close_cli.mjs +2 -2
- package/tests/version_close_route.mjs +1 -1
- package/tests/version_literals.mjs +23 -23
- package/tests/visual_review.mjs +5 -5
- package/tests/wedge_remedy.mjs +5 -5
- package/tests/welcome_boot.mjs +116 -0
- package/tests/welcome_boot_browser.mjs +271 -0
- package/tests/wizard_born_first_board.mjs +3 -3
- package/tests/wizard_demo.mjs +1 -1
- package/tests/wizard_one_page.mjs +4 -3
- package/tests/wizard_physics.mjs +3 -1
- package/tests/wizard_physics_more.mjs +42 -3
- package/tests/work_title_wrap.mjs +1 -1
- package/tests/workflow_exec_paths.mjs +6 -6
- package/tests/worktree_claim_guard.mjs +1 -1
- package/tests/worktree_helper.mjs +2 -2
- package/tests/write_validation_gaps.mjs +3 -3
- package/scripts/gds/api.sh +0 -6
- package/scripts/gds/artifact-staleness.js +0 -267
- package/scripts/gds/audit-exports.js +0 -128
- package/scripts/gds/classify-discipline.js +0 -153
- package/scripts/gds/codemod-rename-src-gds.js +0 -145
- package/scripts/gds/coreB-carve-proof.sh +0 -725
- package/scripts/gds/goal-names.js +0 -102
- package/scripts/gds/rename-goals.js +0 -109
- package/scripts/gds/resolve-skill-model.js +0 -57
- package/scripts/gds/security-baseline-check.sh +0 -180
- package/scripts/gds/seed-adopt-tasks.js +0 -75
- package/scripts/gds/seed-api-contract-goal-tasks.js +0 -141
- package/scripts/gds/seed-board-room-tasks.js +0 -196
- package/scripts/gds/seed-bongos-app-tasks.js +0 -294
- package/scripts/gds/seed-bongos-coreB-tranche1-tasks.js +0 -81
- package/scripts/gds/seed-bongos-coreB-tranche2-tasks.js +0 -100
- package/scripts/gds/seed-bongos-goal-hierarchy-tasks.js +0 -307
- package/scripts/gds/seed-bongos-module-system-tasks.js +0 -346
- package/scripts/gds/seed-bongos-tasks.js +0 -214
- package/scripts/gds/seed-bongos-v1-seo-tasks.js +0 -104
- package/scripts/gds/seed-bv1-community-tasks.js +0 -131
- package/scripts/gds/seed-bv1-privacy-invites-tasks.js +0 -133
- package/scripts/gds/seed-bv1-profile-page-tasks.js +0 -161
- package/scripts/gds/seed-bv1-r01-delta-tasks.js +0 -154
- package/scripts/gds/seed-bv2-tweak-mode-tasks.js +0 -277
- package/scripts/gds/seed-gds-v4-tasks.js +0 -624
- package/scripts/gds/seed-governance-tasks.js +0 -340
- package/scripts/gds/seed-medusa-tasks.js +0 -440
- package/scripts/gds/seed-module-upstreaming.js +0 -219
- package/scripts/gds/seed-productization-tasks.js +0 -235
- package/scripts/gds/seed-project-admin-console-tasks.js +0 -88
- package/scripts/gds/seed-provisioning-tasks.js +0 -83
- package/scripts/gds/seed-strict-versioning-tasks.js +0 -275
- package/scripts/gds/seed-v2-world-tasks.js +0 -283
- package/scripts/gds/spike-task-map.js +0 -899
- package/scripts/migrate_cost_ledger.sh +0 -178
- package/scripts/status-probe.mjs +0 -213
- package/src/bongos/uptime-poller.js +0 -93
- package/tests/artifact_staleness.mjs +0 -207
- package/tests/goal_names.mjs +0 -120
- package/tests/government_fold_bench.mjs +0 -50
- package/tests/spike_task_map.mjs +0 -422
- package/tests/status-probe.mjs +0 -89
- /package/{scripts/gds → modules/raise}/CLAUDE.md +0 -0
- /package/scripts/{gds → bongos}/cloudbongos-token-isolation.conf +0 -0
- /package/scripts/{gds → bongos}/discipline-modes.json +0 -0
- /package/scripts/{gds → bongos}/retired-core-skills.json +0 -0
|
@@ -31,11 +31,11 @@ import { createRequire } from 'node:module';
|
|
|
31
31
|
import { readFileSync } from 'node:fs';
|
|
32
32
|
|
|
33
33
|
const require = createRequire(import.meta.url);
|
|
34
|
-
const { argText } = require('../scripts/
|
|
34
|
+
const { argText } = require('../scripts/bongos/cli-lib.js');
|
|
35
35
|
const {
|
|
36
36
|
fatalRecoveryLines, markShipProgress, _peekForTest,
|
|
37
37
|
proseFlagPresent, regradeNotesRefusal, staleSummaryNotice, dbOnlyIgnoredNotice,
|
|
38
|
-
} = require('../scripts/
|
|
38
|
+
} = require('../scripts/bongos/ship-honesty.js');
|
|
39
39
|
|
|
40
40
|
// Injected IO so no case touches the filesystem.
|
|
41
41
|
const io = {
|
|
@@ -111,7 +111,7 @@ test('every stage names the task, its real status, and a recovery command', () =
|
|
|
111
111
|
for (const l of lines) assert.equal(typeof l, 'string', `${stage} lines are printable as-is`);
|
|
112
112
|
assert.ok(lines.some((l) => l.includes('4242')), `${stage} must name the task`);
|
|
113
113
|
assert.ok(
|
|
114
|
-
lines.some((l) => l.includes('node scripts/
|
|
114
|
+
lines.some((l) => l.includes('node scripts/bongos/ship.js 4242')),
|
|
115
115
|
`${stage} must name the command that recovers it`,
|
|
116
116
|
);
|
|
117
117
|
}
|
|
@@ -177,7 +177,7 @@ test('markShipProgress is the single writer, and ship.js re-exports the reader',
|
|
|
177
177
|
markShipProgress('graded', 99);
|
|
178
178
|
assert.deepEqual(_peekForTest(), { stage: 'graded', taskId: 99 });
|
|
179
179
|
assert.match(fatalRecoveryLines().join('\n'), /#99/, 'the default arg reads live progress');
|
|
180
|
-
const shipCli = require('../scripts/
|
|
180
|
+
const shipCli = require('../scripts/bongos/ship.js');
|
|
181
181
|
assert.equal(typeof shipCli.fatalRecoveryLines, 'function', 'ship.js still exposes it');
|
|
182
182
|
assert.equal(shipCli.fatalRecoveryLines, fatalRecoveryLines, 'same function, not a copy');
|
|
183
183
|
});
|
|
@@ -238,7 +238,7 @@ test('the refusal is wired into the regrade path, before any grade spend', () =>
|
|
|
238
238
|
// Wiring proof (the (1) lesson: a helper nothing calls is not a fix). Also
|
|
239
239
|
// pins the ORDER — a refusal that costs a 4-worker panel run first is barely
|
|
240
240
|
// better than the silence, so the guard must precede the preflight.
|
|
241
|
-
const src = readFileSync(new URL('../scripts/
|
|
241
|
+
const src = readFileSync(new URL('../scripts/bongos/ship-flow.js', import.meta.url), 'utf8');
|
|
242
242
|
const regrade = src.slice(src.indexOf('async function regradeMain'));
|
|
243
243
|
const guard = regrade.indexOf("proseFlagPresent(args, 'notes')");
|
|
244
244
|
assert.ok(guard !== -1, 'regradeMain consults the guard');
|
|
@@ -258,7 +258,7 @@ test('ACCEPTANCE 3: --summary reaches the grader AND the task row on a re-grade'
|
|
|
258
258
|
// writer; it now pins its PRESENCE, for the reason this whole file exists: the
|
|
259
259
|
// panel reads the DIFF, so an answer that lives only in ship notes is an answer
|
|
260
260
|
// nobody can check — which is the very bug task 1003702 was.
|
|
261
|
-
const src = readFileSync(new URL('../scripts/
|
|
261
|
+
const src = readFileSync(new URL('../scripts/bongos/ship-flow.js', import.meta.url), 'utf8');
|
|
262
262
|
const regrade = src.slice(src.indexOf('async function persistRegradeSummary'));
|
|
263
263
|
const code = regrade.replace(/\/\/[^\n]*/g, ''); // comments describe, they do not write
|
|
264
264
|
|
|
@@ -286,7 +286,7 @@ test('a re-grade that omits --summary leaves the stored value_summary alone', ()
|
|
|
286
286
|
// flag — not on the resolved `summary`, and returns before the PATCH when it
|
|
287
287
|
// is absent. Pinned as source structure because the alternative (a live
|
|
288
288
|
// re-grade) costs a 4-worker panel run.
|
|
289
|
-
const src = readFileSync(new URL('../scripts/
|
|
289
|
+
const src = readFileSync(new URL('../scripts/bongos/ship-flow.js', import.meta.url), 'utf8');
|
|
290
290
|
const start = src.indexOf('async function persistRegradeSummary');
|
|
291
291
|
const fn = src.slice(start, src.indexOf('async function regradeMain', start));
|
|
292
292
|
const code = fn.replace(/\/\/[^\n]*/g, '');
|
|
@@ -361,7 +361,7 @@ test('the notice is wired into the regrade path, before any grade spend', () =>
|
|
|
361
361
|
// The (1) lesson again: a helper nothing calls is not a fix. And the ORDER is
|
|
362
362
|
// load-bearing for the same reason the --notes refusal's is — a warning the
|
|
363
363
|
// builder reads only after a 4-worker panel has run cannot change that run.
|
|
364
|
-
const src = readFileSync(new URL('../scripts/
|
|
364
|
+
const src = readFileSync(new URL('../scripts/bongos/ship-flow.js', import.meta.url), 'utf8');
|
|
365
365
|
const regrade = src.slice(src.indexOf('async function regradeMain'));
|
|
366
366
|
const code = regrade.replace(/\/\/[^\n]*/g, ''); // comments describe, they do not print
|
|
367
367
|
|
|
@@ -444,7 +444,7 @@ test('the notice is wired into the merge leg, before the push', () => {
|
|
|
444
444
|
// The (1) lesson again: a helper nothing calls is not a fix. And the ORDER is
|
|
445
445
|
// load-bearing for the same reason the --notes refusal's is — a warning read
|
|
446
446
|
// after the branch has already been pushed and merged cannot stop that run.
|
|
447
|
-
const src = readFileSync(new URL('../scripts/
|
|
447
|
+
const src = readFileSync(new URL('../scripts/bongos/ship-merge.js', import.meta.url), 'utf8');
|
|
448
448
|
assert.match(src, /require\('\.\/ship-honesty\.js'\)/, 'ship-merge imports the notice');
|
|
449
449
|
const merge = src.slice(src.indexOf('async function mergeLocally'));
|
|
450
450
|
const code = merge.replace(/\/\/[^\n]*/g, ''); // comments describe, they do not print
|
package/tests/ship_card.mjs
CHANGED
|
@@ -155,9 +155,9 @@ test('confirmed + bailed land: the bail reaches the printed monospace card', ()
|
|
|
155
155
|
test('confirmed + bailed land: the action is the bail-specific recovery command', () => {
|
|
156
156
|
const m = card.buildCardModel({
|
|
157
157
|
...bailed,
|
|
158
|
-
land: { ok: false, pending: false, reason: 'no commits ahead of main', nextStep: 'node scripts/
|
|
158
|
+
land: { ok: false, pending: false, reason: 'no commits ahead of main', nextStep: 'node scripts/bongos/ship.js 7 --db-only' },
|
|
159
159
|
});
|
|
160
|
-
assert.equal(m.action.cmd, 'node scripts/
|
|
160
|
+
assert.equal(m.action.cmd, 'node scripts/bongos/ship.js 7 --db-only'); // beats the generic /merge-mode
|
|
161
161
|
});
|
|
162
162
|
|
|
163
163
|
test('confirmed + PENDING land still reads "landing automatically"', () => {
|
package/tests/ship_ci_deploy.mjs
CHANGED
|
@@ -27,7 +27,7 @@ import path from 'node:path';
|
|
|
27
27
|
import { fileURLToPath } from 'node:url';
|
|
28
28
|
|
|
29
29
|
const require = createRequire(import.meta.url);
|
|
30
|
-
const ship = require('../scripts/
|
|
30
|
+
const ship = require('../scripts/bongos/ship.js');
|
|
31
31
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
32
32
|
|
|
33
33
|
let passed = 0;
|
|
@@ -300,7 +300,7 @@ test('pending is NOT a bail: no reason, so the card keeps "landing automatically
|
|
|
300
300
|
|
|
301
301
|
test('strandCommand: a server-publish checkout gets the resume, a laptop gets /merge-mode', () => {
|
|
302
302
|
// /merge-mode needs gh + a main checkout a credential-less checkout doesn't have (task 1052).
|
|
303
|
-
assert.equal(strandCommand(77, 'server'), 'node scripts/
|
|
303
|
+
assert.equal(strandCommand(77, 'server'), 'node scripts/bongos/ship.js 77');
|
|
304
304
|
assert.equal(strandCommand(77, 'local'), '/merge-mode');
|
|
305
305
|
});
|
|
306
306
|
|
|
@@ -588,7 +588,7 @@ test('effectiveDeployMode: both fallbacks compose — credential rule fires even
|
|
|
588
588
|
test('1002606 landPendingLines: keeps the "NOT a failure" reassurance + the resume command', () => {
|
|
589
589
|
const lines = landPendingLines(940).join('\n');
|
|
590
590
|
assert.match(lines, /NOT a failure/);
|
|
591
|
-
assert.match(lines, /node scripts\/gds\/ship\.js 940/, 'the resume command names THIS task');
|
|
591
|
+
assert.match(lines, /node scripts\/(?:gds|bongos)\/ship\.js 940/, 'the resume command names THIS task');
|
|
592
592
|
});
|
|
593
593
|
|
|
594
594
|
test('1002606 landPendingLines: tells the builder how a strand WILL reach them (needs_rebase + /builder-start)', () => {
|
|
@@ -618,7 +618,7 @@ test('1002645 reconcileBlockedLines: names the refusal reason + the re-drive com
|
|
|
618
618
|
const lines = ship.reconcileBlockedLines(2645, 'published tip abcd1234 not in main (branch-reuse/stale PR)').join('\n');
|
|
619
619
|
assert.match(lines, /did NOT flip|could not prove/i, 'says the flip was refused');
|
|
620
620
|
assert.match(lines, /published tip abcd1234 not in main/, 'carries the server\'s exact reason');
|
|
621
|
-
assert.match(lines, /node scripts\/gds\/ship\.js 2645/, 'the re-drive command names THIS task');
|
|
621
|
+
assert.match(lines, /node scripts\/(?:gds|bongos)\/ship\.js 2645/, 'the re-drive command names THIS task');
|
|
622
622
|
assert.match(lines, /needs_rebase/, 'names the flag that gates a stuck strand');
|
|
623
623
|
});
|
|
624
624
|
|
|
@@ -664,7 +664,7 @@ test('1002572 landBailRecoverableByPr: an untagged bail is terminal (no blanket
|
|
|
664
664
|
test('1002572 onMainNextStep: names the task branch to re-ship from when it exists', () => {
|
|
665
665
|
const step = onMainNextStep(1002572, true);
|
|
666
666
|
assert.match(step, /task-1002572/, 'names the branch to go back to');
|
|
667
|
-
assert.match(step, /node scripts\/gds\/ship\.js 1002572/, 'and the re-ship command for THIS task');
|
|
667
|
+
assert.match(step, /node scripts\/(?:gds|bongos)\/ship\.js 1002572/, 'and the re-ship command for THIS task');
|
|
668
668
|
// The old advice pointed back at the same dead end; that is the regression.
|
|
669
669
|
assert.notEqual(step, '/merge-mode');
|
|
670
670
|
});
|
|
@@ -676,7 +676,7 @@ test('1002572 onMainNextStep: falls back to /merge-mode rather than inventing a
|
|
|
676
676
|
// The ROUTING — the actual deliverable. Driven through autoMerge with the merge
|
|
677
677
|
// chain and the PR land stubbed (a real mergeLocally needs a second checkout and
|
|
678
678
|
// an authed gh), so this proves behaviour rather than matching the source.
|
|
679
|
-
const shipMerge = require('../scripts/
|
|
679
|
+
const shipMerge = require('../scripts/bongos/ship-merge.js');
|
|
680
680
|
|
|
681
681
|
function driveAutoMerge(mergeOutcome) {
|
|
682
682
|
const calls = [];
|
|
@@ -724,7 +724,7 @@ await (async () => {
|
|
|
724
724
|
// Only the two documented catch-22 bails may carry an id. Behaviour can't see
|
|
725
725
|
// this — a third tagged bail would silently gain a fallback it was never granted.
|
|
726
726
|
test('1002572 wiring: exactly the two catch-22 bails are tagged', () => {
|
|
727
|
-
const src = fs.readFileSync(path.join(__dirname, '..', 'scripts', '
|
|
727
|
+
const src = fs.readFileSync(path.join(__dirname, '..', 'scripts', 'bongos', 'ship-merge.js'), 'utf8');
|
|
728
728
|
// Each id appears exactly twice: the require destructure, and its ONE bail site.
|
|
729
729
|
for (const id of [LAND_BAIL_MAIN_CHECKOUT_ON_BRANCH, LAND_BAIL_NO_TASK_BRANCH]) {
|
|
730
730
|
const name = `LAND_BAIL_${id.toUpperCase().replace(/-/g, '_')}`;
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
import { createRequire } from 'node:module';
|
|
30
30
|
|
|
31
31
|
const require = createRequire(import.meta.url);
|
|
32
|
-
const ship = require('../scripts/
|
|
32
|
+
const ship = require('../scripts/bongos/ship.js');
|
|
33
33
|
const { normalizeApiError, apiErrorLine } = ship;
|
|
34
34
|
|
|
35
35
|
let passed = 0;
|
|
@@ -16,10 +16,10 @@ import { strict as assert } from 'node:assert';
|
|
|
16
16
|
import { createRequire } from 'node:module';
|
|
17
17
|
import {
|
|
18
18
|
jobNeverStarted, landPendingLines, localMergeDriver, notStartedLines, pollCiDeploy, redBlocksMerge, redPrLine, redPrLines,
|
|
19
|
-
} from '../scripts/
|
|
19
|
+
} from '../scripts/bongos/ship-land.js';
|
|
20
20
|
|
|
21
21
|
const require = createRequire(import.meta.url);
|
|
22
|
-
const { CARDS, cardFor } = require('../scripts/
|
|
22
|
+
const { CARDS, cardFor } = require('../scripts/bongos/plain-cards.js');
|
|
23
23
|
|
|
24
24
|
let passed = 0;
|
|
25
25
|
let failed = 0;
|
|
@@ -127,7 +127,7 @@ await test('the closing banner for a never-started CI is neither "NOT a failure"
|
|
|
127
127
|
const out = landPendingLines(42, { notStarted: true }).join('\n');
|
|
128
128
|
assert.match(out, /CI never started/);
|
|
129
129
|
assert.match(out, /Nothing in the work needs to change/);
|
|
130
|
-
assert.match(out, /node scripts\/gds\/ship\.js 42/);
|
|
130
|
+
assert.match(out, /node scripts\/(?:gds|bongos)\/ship\.js 42/);
|
|
131
131
|
assert.doesNotMatch(out, /NOT a failure/);
|
|
132
132
|
assert.doesNotMatch(out, /Do what the lines above say/);
|
|
133
133
|
});
|
|
@@ -18,8 +18,8 @@ import { createRequire } from 'node:module';
|
|
|
18
18
|
process.env.BONGOS_SURFACE = 'agent'; // the plain cards print on the agent surface only
|
|
19
19
|
|
|
20
20
|
const require = createRequire(import.meta.url);
|
|
21
|
-
const land = require('../scripts/
|
|
22
|
-
const { CARDS } = require('../scripts/
|
|
21
|
+
const land = require('../scripts/bongos/ship-land.js');
|
|
22
|
+
const { CARDS } = require('../scripts/bongos/plain-cards.js');
|
|
23
23
|
|
|
24
24
|
let passed = 0;
|
|
25
25
|
let failed = 0;
|
|
@@ -75,7 +75,7 @@ await test('the conflict lines name the fix — merge main in, then re-run this
|
|
|
75
75
|
assert.ok(text.includes(CONFLICT_LINE), text);
|
|
76
76
|
assert.ok(text.includes('git merge origin/main'), 'merge, never rebase: the branch is already published (strand-fix case C)');
|
|
77
77
|
assert.ok(!/rebase/.test(text), 'a rebase makes every later push non-fast-forward');
|
|
78
|
-
assert.ok(text.includes('node scripts/
|
|
78
|
+
assert.ok(text.includes('node scripts/bongos/ship.js 4242'), 'the resume names THIS task');
|
|
79
79
|
assert.ok(text.includes(CARDS.merge_conflict.happened), 'the plain-words card for merge_conflict follows');
|
|
80
80
|
});
|
|
81
81
|
|
|
@@ -36,7 +36,7 @@ const require = createRequire(import.meta.url);
|
|
|
36
36
|
// The stub MUST be in place before ship-land.js is first required — it destructures
|
|
37
37
|
// cliClient at module load.
|
|
38
38
|
let nextAttest = null;
|
|
39
|
-
const cliLibPath = require.resolve('../scripts/
|
|
39
|
+
const cliLibPath = require.resolve('../scripts/bongos/cli-lib');
|
|
40
40
|
require.cache[cliLibPath] = {
|
|
41
41
|
id: cliLibPath,
|
|
42
42
|
filename: cliLibPath,
|
|
@@ -54,7 +54,7 @@ require.cache[cliLibPath] = {
|
|
|
54
54
|
},
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
-
const { attestGateTrust, landProofRecorded, landProofWarningLines } = require('../scripts/
|
|
57
|
+
const { attestGateTrust, landProofRecorded, landProofWarningLines } = require('../scripts/bongos/ship-land.js');
|
|
58
58
|
|
|
59
59
|
let passed = 0;
|
|
60
60
|
let failed = 0;
|
|
@@ -195,7 +195,7 @@ await t('the reason is surfaced, and a missing sha degrades to a placeholder', (
|
|
|
195
195
|
// is the other half of the bug (deleting the branch first destroys the only evidence
|
|
196
196
|
// a later sweep could have used).
|
|
197
197
|
|
|
198
|
-
const mergeSrc = fs.readFileSync(fileURLToPath(new URL('../scripts/
|
|
198
|
+
const mergeSrc = fs.readFileSync(fileURLToPath(new URL('../scripts/bongos/ship-merge.js', import.meta.url)), 'utf8');
|
|
199
199
|
|
|
200
200
|
await t('ship-merge.js records the merge commit as this task\'s land proof', () => {
|
|
201
201
|
assert.match(mergeSrc, /attestGateTrust\(taskId, mergeSha\)/,
|
|
@@ -17,11 +17,11 @@ import { createRequire } from 'node:module';
|
|
|
17
17
|
import {
|
|
18
18
|
FRESHNESS_TESTS, failingTestNames, landPendingLines, localMergeDriver, mergeTrapLines,
|
|
19
19
|
pollCiDeploy, pollServerPublish, redBlocksMerge, redPrLines, unitReportFor,
|
|
20
|
-
} from '../scripts/
|
|
20
|
+
} from '../scripts/bongos/ship-land.js';
|
|
21
21
|
|
|
22
22
|
const require = createRequire(import.meta.url);
|
|
23
23
|
const githubPush = require('../modules/lifecycle/github-push.js');
|
|
24
|
-
const { CARDS } = require('../scripts/
|
|
24
|
+
const { CARDS } = require('../scripts/bongos/plain-cards.js');
|
|
25
25
|
|
|
26
26
|
let passed = 0;
|
|
27
27
|
let failed = 0;
|
|
@@ -139,7 +139,7 @@ await test('a failing freshness gate gets its healing command, per push path', a
|
|
|
139
139
|
const local = mergeTrapLines(md, { taskId: 42, via: 'local' }).join('\n');
|
|
140
140
|
assert.match(local, /`fitness` is a freshness gate/);
|
|
141
141
|
assert.match(local, /stale in the MERGED tree/);
|
|
142
|
-
assert.match(local, /node scripts\/gds\/ship\.js 42/, 'names the re-ship for THIS task');
|
|
142
|
+
assert.match(local, /node scripts\/(?:gds|bongos)\/ship\.js 42/, 'names the re-ship for THIS task');
|
|
143
143
|
assert.match(local, /ship-check\.js/);
|
|
144
144
|
const server = mergeTrapLines(md, { taskId: 42, via: 'server' }).join('\n');
|
|
145
145
|
assert.match(server, /The server regenerates stale generated files/);
|
|
@@ -168,7 +168,7 @@ await test('landPendingLines: a RED PR never gets "NOT a failure"; a green-but-s
|
|
|
168
168
|
const red = landPendingLines(42, { red: true }).join('\n');
|
|
169
169
|
assert.ok(!/NOT a failure/.test(red), 'a failing required check does not pass by waiting');
|
|
170
170
|
assert.match(red, /RED/);
|
|
171
|
-
assert.match(red, /node scripts\/gds\/ship\.js 42/);
|
|
171
|
+
assert.match(red, /node scripts\/(?:gds|bongos)\/ship\.js 42/);
|
|
172
172
|
assert.match(landPendingLines(42).join('\n'), /This is NOT a failure/);
|
|
173
173
|
});
|
|
174
174
|
|
|
@@ -188,7 +188,7 @@ await test('pollCiDeploy (laptop): a red PR is named once, the trap and heal are
|
|
|
188
188
|
assert.equal(out.split('the PR is RED — 1 failed: fitness').length - 1, 1, 'named once, not thirty times');
|
|
189
189
|
assert.match(out, /MERGED with the current main/);
|
|
190
190
|
assert.match(out, /`fitness` is a freshness gate/);
|
|
191
|
-
assert.match(out, /node scripts\/gds\/ship\.js 42/);
|
|
191
|
+
assert.match(out, /node scripts\/(?:gds|bongos)\/ship\.js 42/);
|
|
192
192
|
assert.ok(!/This is NOT a failure/.test(out), 'the closing banner must not contradict the red line');
|
|
193
193
|
assert.ok(!out.includes(CARDS.land_pending.happened), 'nor the "nothing to do" card');
|
|
194
194
|
});
|
|
@@ -25,7 +25,7 @@ import { fileURLToPath } from 'node:url';
|
|
|
25
25
|
|
|
26
26
|
const require = createRequire(import.meta.url);
|
|
27
27
|
const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
28
|
-
const gate = require(path.join(ROOT, 'scripts', '
|
|
28
|
+
const gate = require(path.join(ROOT, 'scripts', 'bongos', 'ship-merge-gate.js'));
|
|
29
29
|
|
|
30
30
|
test('a clean merge result is waved through, and the base is never consulted', () => {
|
|
31
31
|
assert.deepEqual(gate.mergeGateVerdict({ mergeClean: true, baseClean: null }), { block: false, reason: 'clean' });
|
|
@@ -75,7 +75,7 @@ test('probeBaseClean cannot answer without a base commit', () => {
|
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
test('WIRING: ship-merge.js runs the gate BEFORE the push that makes it main', () => {
|
|
78
|
-
const src = fs.readFileSync(path.join(ROOT, 'scripts', '
|
|
78
|
+
const src = fs.readFileSync(path.join(ROOT, 'scripts', 'bongos', 'ship-merge.js'), 'utf8');
|
|
79
79
|
const gateAt = src.indexOf('gateMergeResult({');
|
|
80
80
|
const pushAt = src.indexOf('push-main.js');
|
|
81
81
|
assert.notEqual(gateAt, -1, 'ship-merge.js must call the gate');
|
|
@@ -88,7 +88,7 @@ test('WIRING: ship-merge.js runs the gate BEFORE the push that makes it main', (
|
|
|
88
88
|
});
|
|
89
89
|
|
|
90
90
|
test('the gate measures the PRE-MERGE base, captured before the branch lands', () => {
|
|
91
|
-
const src = fs.readFileSync(path.join(ROOT, 'scripts', '
|
|
91
|
+
const src = fs.readFileSync(path.join(ROOT, 'scripts', 'bongos', 'ship-merge.js'), 'utf8');
|
|
92
92
|
const baseAt = src.indexOf('const baseSha =');
|
|
93
93
|
const mergeAt = src.indexOf('buildMergeArgv(branch, valueSummary)');
|
|
94
94
|
assert.notEqual(baseAt, -1, 'the base sha must be captured');
|
|
@@ -104,9 +104,9 @@ test('the gate measures the PRE-MERGE base, captured before the branch lands', (
|
|
|
104
104
|
// true and this reds.
|
|
105
105
|
function fakeTree(exitCode) {
|
|
106
106
|
const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'merge-gate-fixture-'));
|
|
107
|
-
fs.mkdirSync(path.join(dir, 'scripts', '
|
|
107
|
+
fs.mkdirSync(path.join(dir, 'scripts', 'bongos'), { recursive: true });
|
|
108
108
|
const body = exitCode === 0 ? 'process.exit(0);\n' : `process.exit(${exitCode});\n`;
|
|
109
|
-
fs.writeFileSync(path.join(dir, 'scripts', '
|
|
109
|
+
fs.writeFileSync(path.join(dir, 'scripts', 'bongos', 'fitness.js'), body);
|
|
110
110
|
return dir;
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -138,7 +138,7 @@ test('a tree with no fitness.js cannot be certified', () => {
|
|
|
138
138
|
// flakiness is not a control.
|
|
139
139
|
test('a crashed run is UNMEASURABLE, not a finding', () => {
|
|
140
140
|
const crashed = fs.mkdtempSync(path.join(os.tmpdir(), 'merge-gate-crash-'));
|
|
141
|
-
fs.mkdirSync(path.join(crashed, 'scripts', '
|
|
141
|
+
fs.mkdirSync(path.join(crashed, 'scripts', 'bongos'), { recursive: true });
|
|
142
142
|
// A tree whose gate cannot even be parsed: node exits non-zero, so this one
|
|
143
143
|
// still reads as a finding — that is deliberate, it IS a broken committed
|
|
144
144
|
// gate. The infra case is the one below it: no gate in the tree at all.
|
|
@@ -154,8 +154,8 @@ test('the tri-state keeps clean and failing apart', () => {
|
|
|
154
154
|
const green = fs.mkdtempSync(path.join(os.tmpdir(), 'merge-gate-green-'));
|
|
155
155
|
const red = fs.mkdtempSync(path.join(os.tmpdir(), 'merge-gate-red-'));
|
|
156
156
|
for (const [dir, code] of [[green, 0], [red, 1]]) {
|
|
157
|
-
fs.mkdirSync(path.join(dir, 'scripts', '
|
|
158
|
-
fs.writeFileSync(path.join(dir, 'scripts', '
|
|
157
|
+
fs.mkdirSync(path.join(dir, 'scripts', 'bongos'), { recursive: true });
|
|
158
|
+
fs.writeFileSync(path.join(dir, 'scripts', 'bongos', 'fitness.js'), `process.exit(${code});\n`);
|
|
159
159
|
}
|
|
160
160
|
try {
|
|
161
161
|
assert.equal(gate.fitnessOutcome(green), 'clean');
|
|
@@ -174,7 +174,7 @@ test('an unmeasurable base blocks rather than waving the ship through', () => {
|
|
|
174
174
|
|
|
175
175
|
// ---- gateApplies (task 1004584) ----
|
|
176
176
|
// A VENDORED instance (core under node_modules/@bongos/core) carries no
|
|
177
|
-
// scripts/
|
|
177
|
+
// scripts/bongos/fitness.js of its own, so both sides read 'unmeasurable' and every
|
|
178
178
|
// vendored land was blocked. The gate stands down ONLY when the base lacked the
|
|
179
179
|
// file too — a branch that deletes fitness.js from the core is still measured.
|
|
180
180
|
function gitRepo(withFitness) {
|
|
@@ -185,8 +185,8 @@ function gitRepo(withFitness) {
|
|
|
185
185
|
run('git config user.name t');
|
|
186
186
|
fs.writeFileSync(path.join(dir, 'README.md'), 'x\n');
|
|
187
187
|
if (withFitness) {
|
|
188
|
-
fs.mkdirSync(path.join(dir, 'scripts', '
|
|
189
|
-
fs.writeFileSync(path.join(dir, 'scripts', '
|
|
188
|
+
fs.mkdirSync(path.join(dir, 'scripts', 'bongos'), { recursive: true });
|
|
189
|
+
fs.writeFileSync(path.join(dir, 'scripts', 'bongos', 'fitness.js'), 'process.exit(0);\n');
|
|
190
190
|
}
|
|
191
191
|
run('git add -A');
|
|
192
192
|
run('git commit -q -m base');
|
|
@@ -222,8 +222,8 @@ test('gateApplies: a vendored instance (no fitness.js on either side) stands the
|
|
|
222
222
|
test('gateApplies: an UNTRACKED fitness.js on disk (the vendored scripts link) does not gate the repo', () => {
|
|
223
223
|
const { dir, baseSha } = gitRepo(false);
|
|
224
224
|
try {
|
|
225
|
-
fs.mkdirSync(path.join(dir, 'scripts', '
|
|
226
|
-
fs.writeFileSync(path.join(dir, 'scripts', '
|
|
225
|
+
fs.mkdirSync(path.join(dir, 'scripts', 'bongos'), { recursive: true });
|
|
226
|
+
fs.writeFileSync(path.join(dir, 'scripts', 'bongos', 'fitness.js'), 'process.exit(1);\n');
|
|
227
227
|
fs.appendFileSync(path.join(dir, '.git', 'info', 'exclude'), '/scripts\n');
|
|
228
228
|
assert.equal(gate.gateApplies(dir, baseSha), false);
|
|
229
229
|
const verdict = gate.gateMergeResult({ repoRoot: dir, baseSha, log: () => {} });
|
|
@@ -236,7 +236,7 @@ test('gateApplies: an UNTRACKED fitness.js on disk (the vendored scripts link) d
|
|
|
236
236
|
test('gateApplies: a merge that DELETES fitness.js from a gated base is still measured (and blocked)', () => {
|
|
237
237
|
const { dir, baseSha } = gitRepo(true);
|
|
238
238
|
try {
|
|
239
|
-
fs.rmSync(path.join(dir, 'scripts', '
|
|
239
|
+
fs.rmSync(path.join(dir, 'scripts', 'bongos', 'fitness.js'));
|
|
240
240
|
execSync('git commit -q -am "drop the gate"', { cwd: dir, stdio: 'ignore' });
|
|
241
241
|
assert.equal(gate.gateApplies(dir, baseSha), true, 'the base had the gate, so its removal must not wave the merge through');
|
|
242
242
|
} finally {
|
package/tests/ship_mode.mjs
CHANGED
|
@@ -164,7 +164,7 @@ test('bongos ship-mode is a registered verb wired to shipping-mode.js', () => {
|
|
|
164
164
|
});
|
|
165
165
|
|
|
166
166
|
test('the CLI text names the mode and how to switch it', () => {
|
|
167
|
-
const { describe } = require(path.join(ROOT, 'scripts', '
|
|
167
|
+
const { describe } = require(path.join(ROOT, 'scripts', 'bongos', 'shipping-mode.js'));
|
|
168
168
|
const auto = describe({ mode: 'auto', chosen: false, sentence: 'Auto: …' });
|
|
169
169
|
assert.match(auto, /Ship mode: auto \(default — not chosen yet\)/);
|
|
170
170
|
assert.match(auto, /shipping-mode\.js manual/);
|
|
@@ -26,7 +26,7 @@ const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
|
26
26
|
|
|
27
27
|
const {
|
|
28
28
|
ASK_EXIT, ASK_MARKER, unattended, shipModeFlag, shipModeAskVerdict, askLines, runFirstShipAsk,
|
|
29
|
-
} = require('../scripts/
|
|
29
|
+
} = require('../scripts/bongos/ship-mode-ask.js');
|
|
30
30
|
|
|
31
31
|
const unchosen = { mode: 'auto', chosen: false, source: 'default', can_change: true };
|
|
32
32
|
const chosen = { mode: 'manual', chosen: true, source: 'project_settings', can_change: true };
|
|
@@ -103,7 +103,7 @@ test('an unchosen project stops the ship with exit 5 and asks Auto first', async
|
|
|
103
103
|
const text = r.lines.join('\n');
|
|
104
104
|
assert.ok(r.lines[0].startsWith(ASK_MARKER));
|
|
105
105
|
assert.match(text, /Auto \(recommended\)[\s\S]*Manual/, 'Auto is offered first and named as recommended');
|
|
106
|
-
assert.match(text, /node scripts\/gds\/ship\.js 1004630 --notes-file notes\.md --summary "two words" --ship-mode auto\|manual/);
|
|
106
|
+
assert.match(text, /node scripts\/(?:gds|bongos)\/ship\.js 1004630 --notes-file notes\.md --summary "two words" --ship-mode auto\|manual/);
|
|
107
107
|
assert.match(text, /claim is still active/);
|
|
108
108
|
assert.deepEqual(h.saves, [], 'asking saves nothing');
|
|
109
109
|
});
|
|
@@ -160,7 +160,7 @@ test('the ask falls back to its own wording when the server sends no choices', (
|
|
|
160
160
|
// ---- 4. the wiring ---------------------------------------------------------
|
|
161
161
|
|
|
162
162
|
test('shipMain asks after finding the claim and before the budget cap and grader', () => {
|
|
163
|
-
const src = fs.readFileSync(path.join(ROOT, 'scripts', '
|
|
163
|
+
const src = fs.readFileSync(path.join(ROOT, 'scripts', 'bongos', 'ship-flow.js'), 'utf8');
|
|
164
164
|
const main = src.slice(src.indexOf('async function shipMain'));
|
|
165
165
|
const claimFound = main.indexOf("const ac = claims.find(");
|
|
166
166
|
const ask = main.indexOf('runFirstShipAsk(');
|
|
@@ -171,7 +171,7 @@ test('shipMain asks after finding the claim and before the budget cap and grader
|
|
|
171
171
|
});
|
|
172
172
|
|
|
173
173
|
test('the --ship-mode flag is documented in the ship usage banner', () => {
|
|
174
|
-
const src = fs.readFileSync(path.join(ROOT, 'scripts', '
|
|
174
|
+
const src = fs.readFileSync(path.join(ROOT, 'scripts', 'bongos', 'ship.js'), 'utf8');
|
|
175
175
|
assert.match(src, /--ship-mode auto\|manual/);
|
|
176
176
|
});
|
|
177
177
|
|
|
@@ -23,11 +23,11 @@ import { fileURLToPath } from 'node:url';
|
|
|
23
23
|
const require = createRequire(import.meta.url);
|
|
24
24
|
const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
|
25
25
|
|
|
26
|
-
const { npmSpawnOpts, listAvailableVersions } = require('../scripts/
|
|
27
|
-
const { STARTER_ALLOW } = require('../scripts/
|
|
26
|
+
const { npmSpawnOpts, listAvailableVersions } = require('../scripts/bongos/update-channel.js');
|
|
27
|
+
const { STARTER_ALLOW } = require('../scripts/bongos/claude-materialize.js');
|
|
28
28
|
const {
|
|
29
29
|
MANUAL_ASK_EXIT, MANUAL_ASK_MARKER, APPROVED_FLAG, manualShipVerdict, manualAskLines,
|
|
30
|
-
} = require('../scripts/
|
|
30
|
+
} = require('../scripts/bongos/ship-mode-manual.js');
|
|
31
31
|
|
|
32
32
|
// ---- 1. npm on Windows -----------------------------------------------------
|
|
33
33
|
|
|
@@ -45,7 +45,7 @@ test('the registry read passes the platform spawn options to npm', () => {
|
|
|
45
45
|
});
|
|
46
46
|
|
|
47
47
|
test('the upgrade\'s npm install uses the same spawn options', () => {
|
|
48
|
-
const src = fs.readFileSync(path.join(ROOT, 'scripts', '
|
|
48
|
+
const src = fs.readFileSync(path.join(ROOT, 'scripts', 'bongos', 'upgrade.js'), 'utf8');
|
|
49
49
|
const fn = src.slice(src.indexOf('function npmInstall'), src.indexOf('async function runMigrate'));
|
|
50
50
|
assert.match(fn, /npmSpawnOpts\(\)/);
|
|
51
51
|
});
|
|
@@ -67,7 +67,7 @@ test('the starter never pre-allows WRITING the ship mode', () => {
|
|
|
67
67
|
// ---- 3. the instance CLAUDE.md ---------------------------------------------
|
|
68
68
|
|
|
69
69
|
test('a new project\'s CLAUDE.md tells the AI to follow the ship mode and never hand over commands', () => {
|
|
70
|
-
const tpl = require('../scripts/
|
|
70
|
+
const tpl = require('../scripts/bongos/claude-md-template.js');
|
|
71
71
|
const render = Object.values(tpl).find((v) => typeof v === 'function');
|
|
72
72
|
const text = render({});
|
|
73
73
|
assert.match(text, /npx bongos ship-mode/);
|
|
@@ -100,14 +100,14 @@ test('the ask names the task, both answers, the exact re-run, and forbids a yes
|
|
|
100
100
|
const text = lines.join('\n');
|
|
101
101
|
assert.ok(lines[0].startsWith(MANUAL_ASK_MARKER));
|
|
102
102
|
assert.match(text, /ship task 7 now[\s\S]*Ship it, or Not yet/);
|
|
103
|
-
assert.match(text, /node scripts\/gds\/ship\.js 7 --summary "two words" --person-approved/);
|
|
103
|
+
assert.match(text, /node scripts\/(?:gds|bongos)\/ship\.js 7 --summary "two words" --person-approved/);
|
|
104
104
|
assert.match(text, /Never add the flag without their yes/);
|
|
105
105
|
assert.equal(MANUAL_ASK_EXIT, 5);
|
|
106
106
|
});
|
|
107
107
|
|
|
108
108
|
// ---- 5. the wiring ---------------------------------------------------------
|
|
109
109
|
|
|
110
|
-
const flowSrc = () => fs.readFileSync(path.join(ROOT, 'scripts', '
|
|
110
|
+
const flowSrc = () => fs.readFileSync(path.join(ROOT, 'scripts', 'bongos', 'ship-flow.js'), 'utf8');
|
|
111
111
|
|
|
112
112
|
test('the Manual check stops with cliExit and returns, never a hard exit after a request', () => {
|
|
113
113
|
const src = flowSrc();
|
|
@@ -142,5 +142,5 @@ test('a re-grade asks before it can pass into finishShip (direct --regrade and t
|
|
|
142
142
|
});
|
|
143
143
|
|
|
144
144
|
test('--person-approved is documented in the ship usage banner', () => {
|
|
145
|
-
assert.match(fs.readFileSync(path.join(ROOT, 'scripts', '
|
|
145
|
+
assert.match(fs.readFileSync(path.join(ROOT, 'scripts', 'bongos', 'ship.js'), 'utf8'), /--person-approved/);
|
|
146
146
|
});
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
import { createRequire } from 'node:module';
|
|
28
28
|
|
|
29
29
|
const require = createRequire(import.meta.url);
|
|
30
|
-
const ship = require('../scripts/
|
|
30
|
+
const ship = require('../scripts/bongos/ship.js');
|
|
31
31
|
const { normalizeApiError, postLandShipOutcome } = ship;
|
|
32
32
|
|
|
33
33
|
let passed = 0;
|
package/tests/ship_preflight.mjs
CHANGED
|
@@ -17,7 +17,7 @@ const {
|
|
|
17
17
|
untrackedPaths, untrackedLeftBehind, untrackedWarningLines,
|
|
18
18
|
} = require('../modules/lifecycle/ship-preflight.js');
|
|
19
19
|
// task 1001436: the preflight step itself + the ship-input resolver it is handed.
|
|
20
|
-
const { preflight, shipInputPaths, staleToolingFiles, TOOLING_PATHSPECS } = require('../scripts/
|
|
20
|
+
const { preflight, shipInputPaths, staleToolingFiles, TOOLING_PATHSPECS } = require('../scripts/bongos/ship-preflight-steps.js');
|
|
21
21
|
|
|
22
22
|
const tests = [];
|
|
23
23
|
const test = (name, fn) => tests.push({ name, fn });
|
|
@@ -69,11 +69,11 @@ test('trackedDirty: modified tracked file blocks', () => {
|
|
|
69
69
|
});
|
|
70
70
|
|
|
71
71
|
test('trackedDirty: staged + index-and-worktree changes block', () => {
|
|
72
|
-
const out = 'M scripts/
|
|
72
|
+
const out = 'M scripts/bongos/ship.js\nMM src/bongos/routes/tasks.js\nA migrations/099_x.sql\nD old/gone.js\n';
|
|
73
73
|
assert.deepEqual(trackedDirty(out).sort(), [
|
|
74
74
|
'migrations/099_x.sql',
|
|
75
75
|
'old/gone.js',
|
|
76
|
-
'scripts/
|
|
76
|
+
'scripts/bongos/ship.js',
|
|
77
77
|
'src/bongos/routes/tasks.js',
|
|
78
78
|
]);
|
|
79
79
|
});
|
|
@@ -129,7 +129,7 @@ test('classifyEmptyShip: --allow-empty does NOT override a dirty/untracked tree'
|
|
|
129
129
|
});
|
|
130
130
|
|
|
131
131
|
test('classifyEmptyShip: tracked-dirty + empty diff → REFUSE (uncommitted-work)', () => {
|
|
132
|
-
const v = classifyEmptyShip(' M scripts/
|
|
132
|
+
const v = classifyEmptyShip(' M scripts/bongos/ship.js\n', { allowEmpty: false });
|
|
133
133
|
assert.equal(v.refuse, true);
|
|
134
134
|
assert.equal(v.reason, 'uncommitted-work');
|
|
135
135
|
});
|
|
@@ -389,10 +389,10 @@ test('closeoutPlan: untracked-only scratch counts as leftover (preflight lets it
|
|
|
389
389
|
});
|
|
390
390
|
|
|
391
391
|
test('closeoutPlan: tracked + untracked mix → all paths, clean:false', () => {
|
|
392
|
-
const out = ' M scripts/
|
|
392
|
+
const out = ' M scripts/bongos/ship.js\n?? scratch.txt\nR a.js -> b.js\n';
|
|
393
393
|
const plan = closeoutPlan(out);
|
|
394
394
|
assert.equal(plan.clean, false);
|
|
395
|
-
assert.deepEqual(plan.leftover, ['scripts/
|
|
395
|
+
assert.deepEqual(plan.leftover, ['scripts/bongos/ship.js', 'scratch.txt', 'b.js']);
|
|
396
396
|
});
|
|
397
397
|
|
|
398
398
|
// task 1004254: the close-out REPORTS leftovers and leaves them in place. The
|
|
@@ -400,7 +400,7 @@ test('closeoutPlan: tracked + untracked mix → all paths, clean:false', () => {
|
|
|
400
400
|
// builder's scratch (and an owner's review renders) where another agent's pop
|
|
401
401
|
// could apply it to the wrong branch. Run the real close-out in a throwaway repo.
|
|
402
402
|
test('postShipCloseout: lists leftovers, leaves them in place, never touches the stash', () => {
|
|
403
|
-
const { postShipCloseout } = require('../scripts/
|
|
403
|
+
const { postShipCloseout } = require('../scripts/bongos/ship-finish.js');
|
|
404
404
|
const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'closeout-'));
|
|
405
405
|
const prevCwd = process.cwd();
|
|
406
406
|
const origLog = console.log;
|
|
@@ -435,7 +435,7 @@ test('postShipCloseout: lists leftovers, leaves them in place, never touches the
|
|
|
435
435
|
});
|
|
436
436
|
|
|
437
437
|
test('postShipCloseout: a clean tree reports archive-ready', () => {
|
|
438
|
-
const { postShipCloseout } = require('../scripts/
|
|
438
|
+
const { postShipCloseout } = require('../scripts/bongos/ship-finish.js');
|
|
439
439
|
const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'closeout-'));
|
|
440
440
|
const prevCwd = process.cwd();
|
|
441
441
|
const origLog = console.log;
|
|
@@ -617,10 +617,10 @@ test('stale-tooling guard: every tracked ship*.js and grader file is covered by
|
|
|
617
617
|
const ls = (...spec) => execSync(`git ls-files -z -- ${spec.map((s) => `'${s}'`).join(' ')}`, { cwd: root, encoding: 'utf8' })
|
|
618
618
|
.split('\0').filter(Boolean);
|
|
619
619
|
// Chosen by an independent rule (the filename), then asked of git's own pathspec matcher.
|
|
620
|
-
const shipTooling = ls('scripts/
|
|
621
|
-
/^scripts\/gds\/ship[^/]*\.js$/.test(f) || /^modules\/grading\/(?:grader|grade-engine)/.test(f));
|
|
620
|
+
const shipTooling = ls('scripts/bongos', 'modules/grading').filter((f) =>
|
|
621
|
+
/^scripts\/(?:gds|bongos)\/ship[^/]*\.js$/.test(f) || /^modules\/grading\/(?:grader|grade-engine)/.test(f));
|
|
622
622
|
assert.ok(shipTooling.length >= 25, `only ${shipTooling.length} ship/grader file(s) found — the scan is reading the wrong tree`);
|
|
623
|
-
assert.ok(shipTooling.includes('scripts/
|
|
623
|
+
assert.ok(shipTooling.includes('scripts/bongos/ship-land.js') && shipTooling.includes('modules/grading/grader-score.js'));
|
|
624
624
|
const covered = new Set(ls(...TOOLING_PATHSPECS));
|
|
625
625
|
const missed = shipTooling.filter((f) => !covered.has(f));
|
|
626
626
|
assert.deepEqual(missed, [], `ship/grade tooling the stale-tooling guard would not refuse: ${missed.join(', ')}`);
|
|
@@ -631,9 +631,9 @@ const publishMain = (run) => run(['git', 'push', '-q', 'origin', 'main'].join('
|
|
|
631
631
|
|
|
632
632
|
test('preflight (real git): main moved a carved ship-*.js and added a new grader file → refused stale-tooling', () => {
|
|
633
633
|
withPreflightRepo(({ work, run }) => {
|
|
634
|
-
fs.mkdirSync(path.join(work, 'scripts', '
|
|
634
|
+
fs.mkdirSync(path.join(work, 'scripts', 'bongos'), { recursive: true });
|
|
635
635
|
fs.mkdirSync(path.join(work, 'modules', 'grading'), { recursive: true });
|
|
636
|
-
fs.writeFileSync(path.join(work, 'scripts', '
|
|
636
|
+
fs.writeFileSync(path.join(work, 'scripts', 'bongos', 'ship-land.js'), '// v1\n');
|
|
637
637
|
fs.writeFileSync(path.join(work, 'modules', 'grading', 'grader-score.js'), '// v1\n');
|
|
638
638
|
run('git add -A && git commit -q -m tooling');
|
|
639
639
|
publishMain(run);
|
|
@@ -642,7 +642,7 @@ test('preflight (real git): main moved a carved ship-*.js and added a new grader
|
|
|
642
642
|
run('git add -A && git commit -q -m work');
|
|
643
643
|
// main moves: one carved file changes, one file appears that this checkout never had.
|
|
644
644
|
run('git checkout -q main');
|
|
645
|
-
fs.writeFileSync(path.join(work, 'scripts', '
|
|
645
|
+
fs.writeFileSync(path.join(work, 'scripts', 'bongos', 'ship-land.js'), '// v2\n');
|
|
646
646
|
fs.writeFileSync(path.join(work, 'modules', 'grading', 'grader-new.js'), '// new carve\n');
|
|
647
647
|
run('git add -A && git commit -q -m "main moves the tooling"');
|
|
648
648
|
publishMain(run);
|
|
@@ -652,20 +652,20 @@ test('preflight (real git): main moved a carved ship-*.js and added a new grader
|
|
|
652
652
|
const { result, out } = capturePreflight({ task_id: 4244, head_sha: null }, {});
|
|
653
653
|
assert.equal(result.ok, false);
|
|
654
654
|
assert.equal(result.reason, 'stale-tooling');
|
|
655
|
-
assert.match(out, /- scripts\/gds\/ship-land\.js/, 'a carved ship-*.js is tooling');
|
|
655
|
+
assert.match(out, /- scripts\/(?:gds|bongos)\/ship-land\.js/, 'a carved ship-*.js is tooling');
|
|
656
656
|
assert.match(out, /- modules\/grading\/grader-new\.js/, 'a file only main has is still matched');
|
|
657
|
-
assert.deepEqual(staleToolingFiles({ cwd: work }).sort(), ['modules/grading/grader-new.js', 'scripts/
|
|
657
|
+
assert.deepEqual(staleToolingFiles({ cwd: work }).sort(), ['modules/grading/grader-new.js', 'scripts/bongos/ship-land.js']);
|
|
658
658
|
});
|
|
659
659
|
});
|
|
660
660
|
|
|
661
661
|
test('preflight (real git): the branch\'s OWN edit to a ship-*.js is not stale tooling', () => {
|
|
662
662
|
withPreflightRepo(({ work, run }) => {
|
|
663
|
-
fs.mkdirSync(path.join(work, 'scripts', '
|
|
664
|
-
fs.writeFileSync(path.join(work, 'scripts', '
|
|
663
|
+
fs.mkdirSync(path.join(work, 'scripts', 'bongos'), { recursive: true });
|
|
664
|
+
fs.writeFileSync(path.join(work, 'scripts', 'bongos', 'ship-land.js'), '// v1\n');
|
|
665
665
|
run('git add -A && git commit -q -m tooling');
|
|
666
666
|
publishMain(run);
|
|
667
667
|
run('git checkout -q -b feature');
|
|
668
|
-
fs.writeFileSync(path.join(work, 'scripts', '
|
|
668
|
+
fs.writeFileSync(path.join(work, 'scripts', 'bongos', 'ship-land.js'), '// the fix this task ships\n');
|
|
669
669
|
run('git add -A && git commit -q -m "fix the land"');
|
|
670
670
|
const { result } = capturePreflight({ task_id: 4245, head_sha: null }, {});
|
|
671
671
|
assert.equal(result.ok, true);
|
package/tests/ship_premerge.mjs
CHANGED
|
@@ -12,7 +12,7 @@ import { strict as assert } from 'node:assert';
|
|
|
12
12
|
import { createRequire } from 'node:module';
|
|
13
13
|
|
|
14
14
|
const require = createRequire(import.meta.url);
|
|
15
|
-
const ship = require('../scripts/
|
|
15
|
+
const ship = require('../scripts/bongos/ship.js');
|
|
16
16
|
|
|
17
17
|
let passed = 0, failed = 0;
|
|
18
18
|
function t(name, fn) {
|