docs: row 285 r3 replay and static drift evidence before CLEAR (#1790, sage-4039)
This commit is contained in:
1 parent
644bcaa164
commit
87b7547f8a
6 files changed
+2235
No files matched your search
@@ -5476,3 +5476,5 @@ remain; no live state, schema or bus policy change.
|
||||
|
||||
2026-10-24 | Goldie | Row265 / #1770 verified (mos-1567, sage-3942) | Approved correction adds solely address import pin + Row265 comment to project-runtime.test and one pure-source RUNNER_FILES mount; new block checks parser has no imports. Serialized fresh-short-TMP timeout-k10: unchanged sandbox10/10, parser15/15, rooms18/18, full bus957/957, twelve named refusal mutants killed (each Node1, driver0), restored parser15/15 + rooms18/18. All positives zero fail/skip/cancel; every mutation restored full broker SHA71b32ee4. Old first-red evidence retained, no other old-test change. Slot returned goldie-0034; Boyd packet explicitly includes mount-list review, candidate push next.
|
||||
2026-10-24T07:18:53Z | Sage | Row 327 (#1825, Bradford, Poe and Dewey) LANDED 68c08b4e7. Before: refactor at 94d9e90a6; the push guard was a scratch script with no reviewed-binary check. After: scripts/push-check.sh and scripts/test-push-check.sh on refactor, 3 commits cherry-picked onto 6a5e12511 with blobs equal to the round 3 tip d858c9f8b, plus doc commits 76f84465f and 68c08b4e7. Binaries are found by numstat or a NUL in the first 8000 committed bytes, regardless of attributes; each needs its sha256 and path in an approved latest-round candidate; an unconfirmed queue tail exits 2. Reviews: Poe c31525 rev 3882, Dewey c31526 rev 3883. Gate: 1st run 06:57Z RED, not the candidate: canonical node_modules was empty from 05:45:15Z (sage-4023). Rerun with its own root npm ci GREEN 07:15:49Z: 17 package suites 0 failures (cli 986, plugins 119, webui 418), 11 scripts exit 0, push-check 6 mutants KILLED; skips are the queue canonical-root check and the row 244 live provider cases. The landed push-check.sh passed its own push (NO_BINARY, NO_ATTRIBUTION, PUSH_READY). mos-1575: gates install their own node_modules; canonical restored with npm ci (128 packages).
|
||||
|
||||
2026-10-24T10:02Z | Magica | Row 285 / #1790 r3 before/after (sage-4039, mos-1542) | Before: assigned magica/row285-r3 at b19ffa04f, Scrooge r2 untested at 53db6b7ca. After: seven commits cherry-picked through 644bcaa16; five named overlaps auto-merge preserving newer base changes. Range-diff six '=', one context-only '!'; six patch IDs identical, fixture patch ID differs with upstream import context, exact test added/removed-line comparison identical for all changed tests. business.mjs equals base; Scrooge BUILD equals r2. CREATIVE_KINDS absent in packages/roles/scripts; no 64-hex changed-path pin; 291 conservative reader candidates recorded. No npm or tests before Sage CLEAR; N1 remains follow-up. Own-branch evidence push next, not accepted/green or landed.
|
||||
@@ -0,0 +1,452 @@
|
||||
# Row 285 r3 build evidence — Magica
|
||||
|
||||
Issue #1790, C2-08b; assignment sage-4039, mos-1542, mos-1576.
|
||||
Thread 483bbea5-e548-4c97-9b85-8f29ba81e427. Base b19ffa04f.
|
||||
Binding rulings: agents/scrooge/work/queue-285/BUILD.md, retained byte-identical to 53db6b7ca.
|
||||
N1 (creative-only library.write refusal) stays a follow-up; no scope expansion.
|
||||
|
||||
## State and acceptance
|
||||
|
||||
Seven requested commits replayed onto the assigned base. No test or npm command has run.
|
||||
Sage CLEAR is required before installation, tests or mutants; rows 296 and 217 have priority.
|
||||
Replay commits and this evidence commit are explicitly authorized before tests by sage-4039.
|
||||
Queue next was first attempted here and refused because this is a linked worktree; retried only
|
||||
from canonical, returned row 285 with a view-unknown warning. Authorized canonical queue move
|
||||
then succeeded: magica-285-start rev 3889, briefed→in-progress. No manual queue edit.
|
||||
|
||||
## Overlap resolutions
|
||||
|
||||
Git auto-merged every overlap; there were no conflict markers or manual code resolutions.
|
||||
Each was inspected against the base and source patch:
|
||||
|
||||
- packages/business/README.md: retain Q247 optional-tracker paragraph from base, apply only chief credential examples/prose from Scrooge.
|
||||
- packages/business/src/vocabulary.mjs: retain row 298 grant-scope exports/functions byte-for-byte; remove CREATIVE_KINDS, add creative action/service constants and library.write ACTIONS/ROUTED in original order.
|
||||
- packages/business/tests/business.test.mjs: retain C2-01d supporting-prefix refusal and Q247 tracker omission expectation; replay only authorized fixture data and new row 285 tests.
|
||||
- packages/business/tests/lifecycle-settings.test.mjs: retain row 239 imports, fixture return fields and every appended row 239 test byte-for-byte; add FAR_DATE to existing helper import and gitea to bean fixture (mos-1330).
|
||||
- packages/bus/src/broker.mjs: retain all newer grant-scope/revocation/room work; only original ACTIONS/ROUTED entries and #giteaRole chief refusal change.
|
||||
- packages/business/src/business.mjs: intermediate withdrawn fence replayed and removed; final blob equals b19ffa04f exactly (mos-1333).
|
||||
|
||||
Old assertions are unchanged except the binding mos-1332/mos-1333 changes already
|
||||
annotated next to the changes by Scrooge. Other old-test edits are fixture data under
|
||||
mos-1330; no extra assertion, import pin, expected error or test body changed in r3.
|
||||
|
||||
## Range-diff
|
||||
|
||||
Command: git range-diff --no-color 45dca69f6..53db6b7ca b19ffa04f..644bcaa16
|
||||
|
||||
1: 9a77fff7a = 1: ca90d28bd row 285: C2-08b, creative roles hold library.write and the gitea credential, the chief of staff a read-scoped gitea credential; #giteaRole refuses the chief (#1790, mos-1309 item 5, sage-2915, sage-2921)
|
||||
2: 115889e4a ! 2: 362d1ebe3 row 285: fixtures, example and README give the chief and creative instances their gitea reference (#1790, mos-1330)
|
||||
@@ packages/business/tests/launch-settings.test.mjs: test('B7 kept instance: its ro
|
||||
const models=structuredClone(settings.read('acme').models);
|
||||
|
||||
## packages/business/tests/lifecycle-settings.test.mjs ##
|
||||
-@@ packages/business/tests/lifecycle-settings.test.mjs: import { readFileSync, rmSync } from "node:fs";
|
||||
- import { join } from "node:path";
|
||||
+@@ packages/business/tests/lifecycle-settings.test.mjs: import { join } from "node:path";
|
||||
import { instanceSettings } from "../src/instance-settings.mjs";
|
||||
+ import { OrganizationError, organizationWriter } from "../src/organization.mjs";
|
||||
import { CREATIVE_DEFINITIONS } from "../src/vocabulary.mjs";
|
||||
-import { businessDoc, REPO, rolesCopy, systemConfig, systemFor, tmp, writeJson } from "./helpers.mjs";
|
||||
+import { businessDoc, FAR_DATE, REPO, rolesCopy, systemConfig, systemFor, tmp, writeJson } from "./helpers.mjs";
|
||||
3: aabfdfc60 = 3: 052e094e0 row 285: a chief-of-staff or creative instance that names publish refuses at load, keeping today's N10 refusal; instance-settings :289 follows the companion's gitea (#1790, mos-1332)
|
||||
4: 66e3c3d61 = 4: 68e6d4588 row 285: webby-0178 early read, drop the stale creative publish comment and name the example's test readers (#1790)
|
||||
5: cf8ba6ef4 = 5: 299a8027c row 285: mos-1333, withdraw the publish fence; N10 option (a) with an assistant instance; a chief with its gitea ref, identity and publish loads; restore the creative publish test; BUILD.md gate scope (sage-2946) (#1790)
|
||||
6: 8f8b8cf15 = 6: 2773b0151 row 285: library.write joins ACTIONS and ROUTED in the business vocabulary and the broker under PRD 1.16 REQ-WAIT-3 and REQ-LIB-6, with a hard-waits test; BUILD.md records the r2 rebase, range-diff and drift check (#1790, sage-3578)
|
||||
7: 53db6b7ca = 7: 644bcaa16 row 285: BUILD.md records N1, the creative-only library.write refusal as a follow-up, and the round scope (#1790, sage-3593)
|
||||
|
||||
The sole ! is surrounding context: lifecycle-settings gained the upstream organization import.
|
||||
Stable patch IDs match for six commits. The fixture commit differs because patch-id
|
||||
includes unchanged hunk context: the organization import moved into that hunk.
|
||||
The added/removed-line comparison below independently confirms identical edits.
|
||||
|
||||
## Stable patch IDs
|
||||
|
||||
9a77fff7a7aae0dcf3cde76e0f7b621b765fd739 -> ca90d28bd12ad955e17cddff17d961586a5ef60b
|
||||
old e7475b6b7909102171942e99e13fcaa6b1d83cf7
|
||||
new e7475b6b7909102171942e99e13fcaa6b1d83cf7
|
||||
115889e4a04542215f2e71c2e3e095028255f97b -> 362d1ebe3b05bb40ba7f2c1fa64b107d9261b13b
|
||||
old 633b592302ad0535201ba0bebfc927e8db98cfab
|
||||
new 351b0df9fc1817101dc95fc19011d5b32002dca1
|
||||
aabfdfc60426d0d77d6c644822fadcb4dddcad85 -> 052e094e06045d6cd4299e1d214b25cb13424da4
|
||||
old 1891895336d08bb79c8d062d2ac9958808c2bfc7
|
||||
new 1891895336d08bb79c8d062d2ac9958808c2bfc7
|
||||
66e3c3d616824eb7d77a2cf60a05de20df3605c3 -> 68e6d458821e41e5ee8ec21b00ed172562162f1d
|
||||
old ed181994e6b7325a56288fe6d0a0be9d5e7fdcf9
|
||||
new ed181994e6b7325a56288fe6d0a0be9d5e7fdcf9
|
||||
cf8ba6ef454ba3582ca9c2be2dd12f2ca681d503 -> 299a8027c968d6dab46cc2a103f5a0377745ee5f
|
||||
old c3c60e62be61d3c12127bb0fe1e2ca9300140393
|
||||
new c3c60e62be61d3c12127bb0fe1e2ca9300140393
|
||||
8f8b8cf15352db73a5e926626a221b4a1fd7ac61 -> 2773b01515809e1f6c63f0a5dd7f96b07145b385
|
||||
old 508464365a988647751bf6415ab715fd08c72b13
|
||||
new 508464365a988647751bf6415ab715fd08c72b13
|
||||
53db6b7cac4684a5d412837476caaadfbb1d2173 -> 644bcaa1642210bba0a31462d576e1c838ee2f1a
|
||||
old 0140de36471c1584ff752aa6dee942b8e4560576
|
||||
new 0140de36471c1584ff752aa6dee942b8e4560576
|
||||
|
||||
## Drift scan: every candidate test reader
|
||||
|
||||
Static only. readers.txt lists each test with dependency paths. This list includes
|
||||
relative imports, re-exports, literal new URL paths, helper imports, and conservative
|
||||
rolesDir / REPO_ROLES / rolesCopy / join(..., "roles", ...) consumers. Runtime
|
||||
conditional readers are included even where the branch may not execute them.
|
||||
The broader grep output is in role-readers.txt; direct path and hash checks follow.
|
||||
No inventory is a claim that those tests passed.
|
||||
|
||||
packages/bus/tests/access-revoke.test.mjs
|
||||
packages/bus/tests/agents.test.mjs
|
||||
packages/bus/tests/approval-binding.test.mjs
|
||||
packages/bus/tests/broker.test.mjs
|
||||
packages/bus/tests/business.test.mjs
|
||||
packages/bus/tests/channel-proof.test.mjs
|
||||
packages/bus/tests/chief-of-staff.test.mjs
|
||||
packages/bus/tests/comment-cursors.test.mjs
|
||||
packages/bus/tests/console-decide.test.mjs
|
||||
packages/bus/tests/creative.test.mjs
|
||||
packages/bus/tests/credential-claim.test.mjs
|
||||
packages/bus/tests/credential-status.test.mjs
|
||||
packages/bus/tests/credential-store.test.mjs
|
||||
packages/bus/tests/credential-verbs.test.mjs
|
||||
packages/bus/tests/credentials.test.mjs
|
||||
packages/bus/tests/csuite-messaging.test.mjs
|
||||
packages/bus/tests/daily-quota-runtime.test.mjs
|
||||
packages/bus/tests/decision-close.test.mjs
|
||||
packages/bus/tests/decision-route.test.mjs
|
||||
packages/bus/tests/decisions.test.mjs
|
||||
packages/bus/tests/end-launch.test.mjs
|
||||
packages/bus/tests/fire-revokes-grants.test.mjs
|
||||
packages/bus/tests/gitea-grant-docker.test.mjs
|
||||
packages/bus/tests/gitea-grant.test.mjs
|
||||
packages/bus/tests/grant-enroll.test.mjs
|
||||
packages/bus/tests/grant-executor.test.mjs
|
||||
packages/bus/tests/grant-host.test.mjs
|
||||
packages/bus/tests/grant-migration.test.mjs
|
||||
packages/bus/tests/grant-scope-runtime.test.mjs
|
||||
packages/bus/tests/grant-scope.test.mjs
|
||||
packages/bus/tests/hard-waits.test.mjs
|
||||
packages/bus/tests/host-run.test.mjs
|
||||
packages/bus/tests/human.test.mjs
|
||||
packages/bus/tests/instances-verb.test.mjs
|
||||
packages/bus/tests/land.test.mjs
|
||||
packages/bus/tests/launch-notice.test.mjs
|
||||
packages/bus/tests/launcher-released.test.mjs
|
||||
packages/bus/tests/library-sync.test.mjs
|
||||
packages/bus/tests/library.test.mjs
|
||||
packages/bus/tests/lifecycle-revoke.test.mjs
|
||||
packages/bus/tests/lifecycle-verbs.test.mjs
|
||||
packages/bus/tests/limit-checks.test.mjs
|
||||
packages/bus/tests/limit-stop.test.mjs
|
||||
packages/bus/tests/limits-runtime.test.mjs
|
||||
packages/bus/tests/limits.test.mjs
|
||||
packages/bus/tests/message-citation.test.mjs
|
||||
packages/bus/tests/message-filter.test.mjs
|
||||
packages/bus/tests/messages.test.mjs
|
||||
packages/bus/tests/messaging.test.mjs
|
||||
packages/bus/tests/names.test.mjs
|
||||
packages/bus/tests/peer-transport.test.mjs
|
||||
packages/bus/tests/peercred.test.mjs
|
||||
packages/bus/tests/plugins-verb.test.mjs
|
||||
packages/bus/tests/principal.test.mjs
|
||||
packages/bus/tests/process.test.mjs
|
||||
packages/bus/tests/processing-runtime.test.mjs
|
||||
packages/bus/tests/processing-timeout.test.mjs
|
||||
packages/bus/tests/processing.test.mjs
|
||||
packages/bus/tests/project-await.test.mjs
|
||||
packages/bus/tests/project-files.test.mjs
|
||||
packages/bus/tests/project-runtime.test.mjs
|
||||
packages/bus/tests/publish.test.mjs
|
||||
packages/bus/tests/reload.test.mjs
|
||||
packages/bus/tests/replies.test.mjs
|
||||
packages/bus/tests/requirements.test.mjs
|
||||
packages/bus/tests/review.test.mjs
|
||||
packages/bus/tests/revoke-window.test.mjs
|
||||
packages/bus/tests/rooms.test.mjs
|
||||
packages/bus/tests/routes-verb.test.mjs
|
||||
packages/bus/tests/session-clear.test.mjs
|
||||
packages/bus/tests/session-compactions.test.mjs
|
||||
packages/bus/tests/sessions.test.mjs
|
||||
packages/bus/tests/single-use.test.mjs
|
||||
packages/bus/tests/spec-review.test.mjs
|
||||
packages/bus/tests/spec-socket.test.mjs
|
||||
packages/bus/tests/spec.test.mjs
|
||||
packages/bus/tests/staff-request.test.mjs
|
||||
packages/bus/tests/state.test.mjs
|
||||
packages/bus/tests/task-page.test.mjs
|
||||
packages/bus/tests/task-read.test.mjs
|
||||
packages/bus/tests/tasks.test.mjs
|
||||
packages/bus/tests/tester-threads.test.mjs
|
||||
packages/bus/tests/tester-writes.test.mjs
|
||||
packages/bus/tests/tester.test.mjs
|
||||
packages/bus/tests/thread-claims.test.mjs
|
||||
packages/bus/tests/thread-migration.test.mjs
|
||||
packages/bus/tests/thread-shares.test.mjs
|
||||
packages/bus/tests/threads.test.mjs
|
||||
packages/bus/tests/transport.test.mjs
|
||||
packages/bus/tests/usage-broker.test.mjs
|
||||
packages/bus/tests/usage-runtime.test.mjs
|
||||
packages/bus/tests/user-principal.test.mjs
|
||||
packages/bus/tests/viewer.test.mjs
|
||||
packages/bus/tests/web.test.mjs
|
||||
packages/bus/tests/workflow-roles.test.mjs
|
||||
packages/business/tests/access-levels.test.mjs
|
||||
packages/business/tests/access.test.mjs
|
||||
packages/business/tests/agent-identity.test.mjs
|
||||
packages/business/tests/assistant.test.mjs
|
||||
packages/business/tests/business.test.mjs
|
||||
packages/business/tests/case1-business-file.test.mjs
|
||||
packages/business/tests/case1-project-key.test.mjs
|
||||
packages/business/tests/chief-of-staff.test.mjs
|
||||
packages/business/tests/cli.test.mjs
|
||||
packages/business/tests/credentials.test.mjs
|
||||
packages/business/tests/csuite.test.mjs
|
||||
packages/business/tests/grant-scope.test.mjs
|
||||
packages/business/tests/hard-waits.test.mjs
|
||||
packages/business/tests/hosts.test.mjs
|
||||
packages/business/tests/instance-settings.test.mjs
|
||||
packages/business/tests/launch-settings.test.mjs
|
||||
packages/business/tests/library-projects-protected.test.mjs
|
||||
packages/business/tests/library-seats.test.mjs
|
||||
packages/business/tests/lifecycle-settings.test.mjs
|
||||
packages/business/tests/optional-tracker.test.mjs
|
||||
packages/business/tests/plugin-settings.test.mjs
|
||||
packages/business/tests/project-repo.test.mjs
|
||||
packages/business/tests/project.test.mjs
|
||||
packages/business/tests/record-grants.test.mjs
|
||||
packages/business/tests/resolve.test.mjs
|
||||
packages/business/tests/role.test.mjs
|
||||
packages/business/tests/spec-review-contracts.test.mjs
|
||||
packages/business/tests/token-limit-settings.test.mjs
|
||||
packages/business/tests/vars.test.mjs
|
||||
packages/business/tests/workflow-roles.test.mjs
|
||||
packages/cli/tests/access-boot.test.mjs
|
||||
packages/cli/tests/access.test.mjs
|
||||
packages/cli/tests/app.test.mjs
|
||||
packages/cli/tests/boot-status.test.mjs
|
||||
packages/cli/tests/case1-accept.test.mjs
|
||||
packages/cli/tests/case1-hostcheck.test.mjs
|
||||
packages/cli/tests/case2-install.test.mjs
|
||||
packages/cli/tests/case2-persona-import.test.mjs
|
||||
packages/cli/tests/case2-unit.test.mjs
|
||||
packages/cli/tests/channel-cli.test.mjs
|
||||
packages/cli/tests/channel-recovery.test.mjs
|
||||
packages/cli/tests/cli.test.mjs
|
||||
packages/cli/tests/compactions-launch.test.mjs
|
||||
packages/cli/tests/config.test.mjs
|
||||
packages/cli/tests/credentials.test.mjs
|
||||
packages/cli/tests/follow.test.mjs
|
||||
packages/cli/tests/git-socket.test.mjs
|
||||
packages/cli/tests/grants-scope.test.mjs
|
||||
packages/cli/tests/grants.test.mjs
|
||||
packages/cli/tests/host.test.mjs
|
||||
packages/cli/tests/hosts.test.mjs
|
||||
packages/cli/tests/idle-stop-race.test.mjs
|
||||
packages/cli/tests/instances.test.mjs
|
||||
packages/cli/tests/launch-account.test.mjs
|
||||
packages/cli/tests/launch-limit-checks.test.mjs
|
||||
packages/cli/tests/launch-limits.test.mjs
|
||||
packages/cli/tests/launch-routes.test.mjs
|
||||
packages/cli/tests/launcher.test.mjs
|
||||
packages/cli/tests/lifecycle.test.mjs
|
||||
packages/cli/tests/limits-tokens.test.mjs
|
||||
packages/cli/tests/limits.test.mjs
|
||||
packages/cli/tests/mark-read.test.mjs
|
||||
packages/cli/tests/names.test.mjs
|
||||
packages/cli/tests/notifier.test.mjs
|
||||
packages/cli/tests/optional-tracker.test.mjs
|
||||
packages/cli/tests/other-tree.test.mjs
|
||||
packages/cli/tests/processing-cli.test.mjs
|
||||
packages/cli/tests/project-name-repo.test.mjs
|
||||
packages/cli/tests/project.test.mjs
|
||||
packages/cli/tests/publish-socket.test.mjs
|
||||
packages/cli/tests/revoke-window.test.mjs
|
||||
packages/cli/tests/session-clear.test.mjs
|
||||
packages/cli/tests/session-cli.test.mjs
|
||||
packages/cli/tests/session-launch.test.mjs
|
||||
packages/cli/tests/stack-copy.test.mjs
|
||||
packages/cli/tests/stack-instances.test.mjs
|
||||
packages/cli/tests/stack-release-external.test.mjs
|
||||
packages/cli/tests/stack-release.test.mjs
|
||||
packages/cli/tests/stack-upgrade.test.mjs
|
||||
packages/cli/tests/tester-http.test.mjs
|
||||
packages/cli/tests/tester-reads.test.mjs
|
||||
packages/cli/tests/tester-threads.test.mjs
|
||||
packages/cli/tests/tester.test.mjs
|
||||
packages/cli/tests/thread-cli.test.mjs
|
||||
packages/cli/tests/thread-launch.test.mjs
|
||||
packages/cli/tests/thread-revoke.test.mjs
|
||||
packages/cli/tests/trackers-boot.test.mjs
|
||||
packages/cli/tests/transport.test.mjs
|
||||
packages/cli/tests/usage.test.mjs
|
||||
packages/cli/tests/verbs.test.mjs
|
||||
packages/control-board/tests/creative-hidden.test.mjs
|
||||
packages/control-board/tests/discord.test.mjs
|
||||
packages/control-board/tests/relaunch.test.mjs
|
||||
packages/control-board/tests/serve.test.mjs
|
||||
packages/conversation/tests/flows.test.mjs
|
||||
packages/discord/tests/copy-service.test.mjs
|
||||
packages/discord/tests/library-seat.test.mjs
|
||||
packages/discord/tests/offline-check.test.mjs
|
||||
packages/discord/tests/processing.test.mjs
|
||||
packages/discord/tests/recover.test.mjs
|
||||
packages/harness/tests/bundle.test.mjs
|
||||
packages/harness/tests/claude-gate.test.mjs
|
||||
packages/harness/tests/claude-session.test.mjs
|
||||
packages/harness/tests/creative.test.mjs
|
||||
packages/harness/tests/gate.test.mjs
|
||||
packages/harness/tests/git-tools.test.mjs
|
||||
packages/harness/tests/mcp-server.test.mjs
|
||||
packages/harness/tests/pi-session.test.mjs
|
||||
packages/harness/tests/raise-domain.test.mjs
|
||||
packages/harness/tests/runner.test.mjs
|
||||
packages/harness/tests/skills.test.mjs
|
||||
packages/harness/tests/spec-tools.test.mjs
|
||||
packages/harness/tests/tools.test.mjs
|
||||
packages/library/tests/query.test.mjs
|
||||
packages/plugins/tests/harness-compactions.test.mjs
|
||||
packages/plugins/tests/harness.test.mjs
|
||||
packages/plugins/tests/loader.test.mjs
|
||||
packages/processing-control/tests/mount.test.mjs
|
||||
packages/processing-control/tests/task.test.mjs
|
||||
packages/seat/tests/compactions-budget.test.mjs
|
||||
packages/seat/tests/compactions-ledger.test.mjs
|
||||
packages/seat/tests/compactions.test.mjs
|
||||
packages/seat/tests/sandbox.test.mjs
|
||||
packages/seat/tests/session-workspace.test.mjs
|
||||
packages/seat/tests/session.test.mjs
|
||||
packages/tasks/tests/adapter.test.mjs
|
||||
packages/tasks/tests/comment-restart.test.mjs
|
||||
packages/tasks/tests/fields.test.mjs
|
||||
packages/tasks/tests/processing.test.mjs
|
||||
packages/tasks/tests/shapes.test.mjs
|
||||
packages/tasks/tests/startup.test.mjs
|
||||
packages/tasks/tests/sync.test.mjs
|
||||
packages/tasks/tests/tree.test.mjs
|
||||
packages/tasks/tests/verbs.test.mjs
|
||||
packages/webui/tests/agents-browser.test.mjs
|
||||
packages/webui/tests/agents.test.mjs
|
||||
packages/webui/tests/assistant.test.mjs
|
||||
packages/webui/tests/board-held.test.mjs
|
||||
packages/webui/tests/browser-edge.test.mjs
|
||||
packages/webui/tests/browser.test.mjs
|
||||
packages/webui/tests/bus-browser.test.mjs
|
||||
packages/webui/tests/bus.test.mjs
|
||||
packages/webui/tests/channel-chat.test.mjs
|
||||
packages/webui/tests/chat-browser.test.mjs
|
||||
packages/webui/tests/chat-instances.test.mjs
|
||||
packages/webui/tests/chat-sessions-access.test.mjs
|
||||
packages/webui/tests/chat.test.mjs
|
||||
packages/webui/tests/conversation.test.mjs
|
||||
packages/webui/tests/decide-browser.test.mjs
|
||||
packages/webui/tests/decide-sso.test.mjs
|
||||
packages/webui/tests/decision-http.test.mjs
|
||||
packages/webui/tests/discord.test.mjs
|
||||
packages/webui/tests/docs-browser.test.mjs
|
||||
packages/webui/tests/editor-browser.test.mjs
|
||||
packages/webui/tests/editor.test.mjs
|
||||
packages/webui/tests/granted-user.test.mjs
|
||||
packages/webui/tests/history-return-flow.test.mjs
|
||||
packages/webui/tests/instances-browser.test.mjs
|
||||
packages/webui/tests/instances.test.mjs
|
||||
packages/webui/tests/library-cli.test.mjs
|
||||
packages/webui/tests/library-status.test.mjs
|
||||
packages/webui/tests/limits-browser.test.mjs
|
||||
packages/webui/tests/limits-route.test.mjs
|
||||
packages/webui/tests/messages.test.mjs
|
||||
packages/webui/tests/pinned-copy.test.mjs
|
||||
packages/webui/tests/preview.test.mjs
|
||||
packages/webui/tests/processing-browser.test.mjs
|
||||
packages/webui/tests/processing.test.mjs
|
||||
packages/webui/tests/project-file.test.mjs
|
||||
packages/webui/tests/project-name-repo.test.mjs
|
||||
packages/webui/tests/proof-cli.test.mjs
|
||||
packages/webui/tests/proof.test.mjs
|
||||
packages/webui/tests/reads.test.mjs
|
||||
packages/webui/tests/relaunch.test.mjs
|
||||
packages/webui/tests/return-flow.test.mjs
|
||||
packages/webui/tests/routes-browser.test.mjs
|
||||
packages/webui/tests/routes.test.mjs
|
||||
packages/webui/tests/send-browser.test.mjs
|
||||
packages/webui/tests/send.test.mjs
|
||||
packages/webui/tests/serve.test.mjs
|
||||
packages/webui/tests/settings-form.test.mjs
|
||||
packages/webui/tests/settings-write.test.mjs
|
||||
packages/webui/tests/shell.test.mjs
|
||||
packages/webui/tests/sso-browser.test.mjs
|
||||
packages/webui/tests/sso.test.mjs
|
||||
packages/webui/tests/tester-browser.test.mjs
|
||||
packages/webui/tests/tester-cli.test.mjs
|
||||
packages/webui/tests/tester-listener.test.mjs
|
||||
packages/webui/tests/tester-socket.test.mjs
|
||||
packages/webui/tests/thread-claims-browser.test.mjs
|
||||
packages/webui/tests/thread-claims.test.mjs
|
||||
packages/webui/tests/thread-sharing.test.mjs
|
||||
packages/webui/tests/usage-browser.test.mjs
|
||||
packages/webui/tests/usage.test.mjs
|
||||
packages/webui/tests/user-option-swap.test.mjs
|
||||
packages/webui/tests/views.test.mjs
|
||||
|
||||
Total conservative candidate test/script readers: 291.
|
||||
|
||||
The inventory also includes control-board, discord, library, seat and other readers
|
||||
outside the explicitly assigned six-suite gate. Report this to Sage; his all-script
|
||||
landing gate remains assigned to him. Do not silently widen the test slot.
|
||||
|
||||
## Gate after CLEAR
|
||||
|
||||
Own worktree only; no canonical npm/rm, no linked node_modules (mos-1575).
|
||||
Root and packages/webui: npm ci --ignore-scripts --no-audit --no-fund.
|
||||
Use export TMPDIR=$(mktemp -d /mnt/storage/scratch/tmp/XXXXXX).
|
||||
Each command gets timeout -k 10; run serially and preserve plain-text full output.
|
||||
Whole bus, business, cli, webui, harness and plugins suites, plus scripts/test-config.sh.
|
||||
Package suite command: timeout -k 10 1800 node --test --test-concurrency=1 packages/NAME/tests/*.test.mjs.
|
||||
Config: timeout -k 10 300 bash scripts/test-config.sh.
|
||||
Mutants M1–M6 and M9 from Scrooge BUILD, one at a time, source sha256 restoration checked.
|
||||
First red in any old test: stop and report to Sage before edits or more tests.
|
||||
First red in new test: place and report afterward as directed by sage-4039.
|
||||
Sage runs every scripts/test-*.sh at landing; Poe first review, Webby landing review.
|
||||
No Gitea posting, landing, release, deployment or live business change authorized here.
|
||||
|
||||
## Results
|
||||
|
||||
Not run. Waiting for CLEAR after the explicitly authorized own-branch push.
|
||||
|
||||
## Direct grep and pin evidence
|
||||
|
||||
Removed symbol, full requested trees
|
||||
Command: git grep -n CREATIVE_KINDS -- packages roles scripts
|
||||
Exit: 1
|
||||
(no matches)
|
||||
|
||||
Grant refusal readers
|
||||
Command: git grep -n gitea-not-declared -- packages/*/tests/*
|
||||
Exit: 0
|
||||
packages/bus/tests/gitea-grant.test.mjs:228: [{ agent: 'pm' }, 'gitea-not-declared'],
|
||||
packages/bus/tests/gitea-grant.test.mjs:229: [{ agent: 'nobody' }, 'gitea-not-declared'],
|
||||
packages/bus/tests/gitea-grant.test.mjs:247: await rejects(creative.raise(), 'gitea-not-declared');
|
||||
packages/bus/tests/gitea-grant.test.mjs:249: await rejects(bare.raise(), 'gitea-not-declared');
|
||||
packages/bus/tests/gitea-grant.test.mjs:270: await rejects(f.raise({ agent: 'chief' }), 'gitea-not-declared');
|
||||
|
||||
N10 message readers
|
||||
Command: git grep -n needs identity and a gitea definition -- packages/*/tests/*
|
||||
Exit: 0
|
||||
packages/business/tests/agent-identity.test.mjs:47:test("N10: publish needs identity and a gitea definition, and the error names the grant", () => {
|
||||
packages/business/tests/agent-identity.test.mjs:48: refuses(() => check((d) => { delete d.roles.coder.identity; }), /roles\.coder\.publish needs identity and a gitea definition/);
|
||||
packages/business/tests/agent-identity.test.mjs:52: /roles\.helper\.publish needs identity and a gitea definition/);
|
||||
|
||||
64-hex scan: hex-pins.txt contains all test/helper/fixture literal hits, inspected individually.
|
||||
No hit pins any changed role, broker.mjs, role.mjs, vocabulary.mjs, or helper/example file.
|
||||
Existing literal hashes cover SQL migrations, human/transport channel sources, compaction
|
||||
cursors, charter records, case1 supervisor/profile bytes and markdown rendering, all unchanged.
|
||||
project-runtime.test.mjs pins broker imports and vocabulary import-free by reading source:
|
||||
no import changes; its exact expectation stays byte-identical. role.test/chief-of-staff.test
|
||||
pin role contents structurally, with the existing Mos annotations for approved changes.
|
||||
|
||||
## Replay blob/patch checks
|
||||
|
||||
Retains newer base changes: packages/bus/src/broker.mjs
|
||||
Retains newer base changes: packages/business/README.md
|
||||
Retains newer base changes: packages/business/src/vocabulary.mjs
|
||||
Retains newer base changes: packages/business/tests/business.test.mjs
|
||||
Retains newer base changes: packages/business/tests/lifecycle-settings.test.mjs
|
||||
All remaining changed paths equal 53db6b7ca byte-for-byte.
|
||||
Static assertion passed: every tests/ path has exactly the same added/removed lines
|
||||
as the original 45dca69f6..53db6b7ca patch; no extra old-test change introduced by replay.
|
||||
@@ -0,0 +1,39 @@
|
||||
Command: rg -n [a-fA-F0-9]{64} packages scripts roles -g *test* -g *fixture* -g *helper*
|
||||
scripts/foundation/canonical.test.mjs:29: assert.equal(digestOf(V1), "sha256:0bc44e14fd8354a8a85be879306a54881da7a0cb4d3dcf1f88bc4bc08a40dc9c");
|
||||
scripts/foundation/canonical.test.mjs:35: assert.equal(digestOf(v2), "sha256:63817bffc57803ca6ac5df971aa0a160d4be73646394b3bc536578bd66c82660");
|
||||
scripts/foundation/canonical.test.mjs:43: assert.equal(digestOf(v3), "sha256:d538c865808cfe7665956615fb48f69819baa0833626d1ef6e1cb3614acbc7da");
|
||||
scripts/foundation/resolve.test.mjs:21:const CHARTER_SHA256 = "19b6721128a627a2032ffdb95ece2d50abe69a8f6d521e9eff8bbdaff22798b6";
|
||||
scripts/foundation/resolve.test.mjs:340:const ADDENDUM_SHA256 = "afe2980be2f91e701dae5af3018831ac5c300474f52bcc06e740ce5b5cc68ca5";
|
||||
scripts/foundation/resolve.test.mjs:342:const VERDICT_SHA256 = "03c979b77cc6b03b6685ba51ed1ce24c3f1d7b274ce8f772263a103670050da7";
|
||||
packages/plugins/tests/harness-compactions.test.mjs:21: "plain": {"streams": {"a.jsonl": "{\"type\":\"session\",\"version\":3,\"id\":\"a\",\"timestamp\":\"2026-10-22T11:00:00.000Z\",\"cwd\":\"/w\"}\n{\"type\":\"compaction\",\"id\":\"c1\",\"parentId\":null,\"timestamp\":\"2026-10-22T11:01:00.000Z\",\"summary\":\"s\",\"firstKeptEntryId\":\"k\",\"tokensBefore\":100}\n"}, "cursors": {}, "budget": 67108864, "cap": 1024, "answer": {"found": [{"entry": "c1", "completedAt": "2026-10-22T11:01:00.000Z", "stream": "a.jsonl"}], "cursors": {"a.jsonl": {"bytes": 233, "tail": "39650b0c01a938998403d9dec3f8c224a01509ccde607711e962bf68bcbff54a"}}, "known": true, "reason": null, "version": "0.85.1"}},
|
||||
packages/plugins/tests/harness-compactions.test.mjs:22: "budget": {"streams": {"a.jsonl": "{\"type\":\"session\",\"version\":3,\"id\":\"a\",\"timestamp\":\"2026-10-22T11:00:00.000Z\",\"cwd\":\"/w\"}\n{\"type\":\"compaction\",\"id\":\"c1\",\"parentId\":null,\"timestamp\":\"2026-10-22T11:01:00.000Z\",\"summary\":\"s\",\"firstKeptEntryId\":\"k\",\"tokensBefore\":100}\n"}, "cursors": {}, "budget": 100, "cap": 1024, "answer": {"found": [], "cursors": {"a.jsonl": {"bytes": 90, "tail": "2dff60ffd3bc96efa6dd8d740044255d75a1f71d82e7e99a39158d18cf211fc5"}}, "known": false, "reason": "not-collected", "version": "0.85.1"}},
|
||||
packages/plugins/tests/harness-compactions.test.mjs:23: "cap": {"streams": {"a.jsonl": "{\"type\":\"session\",\"version\":3,\"id\":\"a\",\"timestamp\":\"2026-10-22T11:00:00.000Z\",\"cwd\":\"/w\"}\n{\"type\":\"compaction\",\"id\":\"c1\",\"parentId\":null,\"timestamp\":\"2026-10-22T11:01:00.000Z\",\"summary\":\"s\",\"firstKeptEntryId\":\"k\",\"tokensBefore\":100}\n", "b.jsonl": "{\"type\":\"session\",\"version\":3,\"id\":\"a\",\"timestamp\":\"2026-10-22T11:00:00.000Z\",\"cwd\":\"/w\"}\n"}, "cursors": {}, "budget": 67108864, "cap": 1, "answer": {"found": [{"entry": "c1", "completedAt": "2026-10-22T11:01:00.000Z", "stream": "a.jsonl"}], "cursors": {"a.jsonl": {"bytes": 233, "tail": "39650b0c01a938998403d9dec3f8c224a01509ccde607711e962bf68bcbff54a"}}, "known": false, "reason": "not-collected", "version": "0.85.1"}},
|
||||
packages/plugins/tests/harness-compactions.test.mjs:24: "shrank": {"streams": {"a.jsonl": "{\"type\":\"session\",\"version\":3,\"id\":\"a\",\"timestamp\":\"2026-10-22T11:00:00.000Z\",\"cwd\":\"/w\"}\n"}, "cursors": {"a.jsonl": {"bytes": 233, "tail": "39650b0c01a938998403d9dec3f8c224a01509ccde607711e962bf68bcbff54a"}}, "budget": 67108864, "cap": 1024, "answer": {"found": [], "cursors": {"a.jsonl": {"bytes": 90, "tail": "2dff60ffd3bc96efa6dd8d740044255d75a1f71d82e7e99a39158d18cf211fc5"}}, "known": false, "reason": "store-incomplete", "version": "0.85.1"}},
|
||||
packages/plugins/tests/harness-compactions.test.mjs:25: "header": {"streams": {"a.jsonl": "{\"type\":\"message\",\"id\":\"m1\"}\n"}, "cursors": {}, "budget": 67108864, "cap": 1024, "answer": {"found": [], "cursors": {"a.jsonl": {"bytes": 29, "tail": "91f8cd26da181eddfdbefaef87896493bf488791937a099f5899467b04fc68df"}}, "known": false, "reason": "store-unreadable", "version": "0.85.1"}}
|
||||
packages/bus/tests/gitea-migration.test.mjs:22: assert.equal(createHash('sha256').update(ddl3j).digest('hex'), '0a7b633ce7eec9d0bb37c3255f4244d97bd0c8eac38db91a11b4ef6cc982ec8c');
|
||||
packages/bus/tests/spec-migration.test.mjs:16: assert.equal(createHash('sha256').update(ddl).digest('hex'), '21e6c091f14f818396f4d7836f381cc1389d45b2680ecaa1a00646b652c45050');
|
||||
packages/seat/tests/compactions-ledger.test.mjs:28: "{\"v\":1,\"kind\":\"cursor\",\"stream\":\"a.jsonl\",\"bytes\":233,\"tail\":\"39650b0c01a938998403d9dec3f8c224a01509ccde607711e962bf68bcbff54a\",\"at\":\"2026-10-22T12:00:00.000Z\"}",
|
||||
packages/seat/tests/compactions-ledger.test.mjs:38: "{\"v\":1,\"kind\":\"cursor\",\"stream\":\"a.jsonl\",\"bytes\":99,\"tail\":\"14607eb2c2f70f460e1a420da1b4ead7f00f2a81cc4105e9e55e6c5c828d6626\",\"at\":\"2026-10-22T12:00:00.000Z\"}",
|
||||
packages/seat/tests/compactions-ledger.test.mjs:48: "{\"v\":1,\"kind\":\"cursor\",\"stream\":\"a.jsonl\",\"bytes\":29,\"tail\":\"91f8cd26da181eddfdbefaef87896493bf488791937a099f5899467b04fc68df\",\"at\":\"2026-10-22T12:00:00.000Z\"}",
|
||||
packages/seat/tests/compactions-ledger.test.mjs:58: "{\"v\":1,\"kind\":\"cursor\",\"stream\":\"a.jsonl\",\"bytes\":90,\"tail\":\"2dff60ffd3bc96efa6dd8d740044255d75a1f71d82e7e99a39158d18cf211fc5\",\"at\":\"2026-10-22T12:00:00.000Z\"}",
|
||||
packages/seat/tests/compactions-ledger.test.mjs:88: "{\"v\":1,\"kind\":\"cursor\",\"stream\":\"a.jsonl\",\"bytes\":233,\"tail\":\"39650b0c01a938998403d9dec3f8c224a01509ccde607711e962bf68bcbff54a\",\"at\":\"2026-10-22T12:00:00.000Z\"}",
|
||||
packages/seat/tests/compactions-ledger.test.mjs:181: { store: store(known), cursors: { "a.jsonl": { bytes: 233, tail: "39650b0c01a938998403d9dec3f8c224a01509ccde607711e962bf68bcbff54a" } }, budget: 64 << 20, streams: 1024, first: false },
|
||||
packages/bus/tests/channel-proof.test.mjs:21: "packages/bus/src/human.mjs": "bb13c146717cdc46d75d157177e400edac4d3e10f14fe511027a25fd44cec885",
|
||||
packages/bus/tests/channel-proof.test.mjs:22: "packages/bus/src/human-cli.mjs": "271b9781d73cf31cc562a56180e3ebcd725b5fde148a83347a201fdef2fc28af",
|
||||
packages/bus/tests/channel-proof.test.mjs:24: "packages/cli/src/transport.mjs": "662642a8ce739fcb6c188ad07125a94e008c8a305eced127c8041d472c56e55b",
|
||||
packages/bus/tests/channel-proof.test.mjs:35: "packages/webui/src/bus.mjs": "e3f52172054676b7982eda420ce051854d404c3f0f81834c3f81138bd91c2a89",
|
||||
packages/bus/tests/grant-migration.test.mjs:31: assert.equal(createHash('sha256').update(ddl3i).digest('hex'), '6cde5232c57ac04dc6073112c0830c89cfc5e953d7a5727e7716263747fe8737');
|
||||
packages/bus/tests/thread-migration.test.mjs:46: assert.equal(createHash('sha256').update(ddl3d).digest('hex'), 'e4f1de9e16d2fab5e051fd3810189b28cc76a670cfe573b752d9f53bf9ca39b5');
|
||||
packages/bus/tests/session-clear.test.mjs:496: assert.equal(createHash('sha256').update(ddl3m).digest('hex'), 'd5ca9bb9268994b175ac79d38939be4bb7f2e80bc0d9ea273eedaae50c29b8a9');
|
||||
packages/bus/tests/name-migration.test.mjs:18: assert.equal(createHash('sha256').update(ddl).digest('hex'), '472cbcd0d4548848873f3029e8250dc07bba4fb8db2a93241aae5b8e7e3771e2');
|
||||
packages/bus/tests/thread-shares.test.mjs:370: assert.equal(createHash('sha256').update(ddl3l).digest('hex'), 'cd68512212ce8bf8f5631138b2e63a340fa7b940088430649bb7784af7df162a');
|
||||
packages/discord/tests/setspark.test.mjs:53: if (path === "/v1/records/DEC-10" && req.method === "GET") return json(200, { id: "DEC-10", record_type: "decision", revision: 1, title: "Ask 100000000000000100", required_approvers: ["discord:100000000000000100", "100000000000000101"], proposal_digest: "12345678901234567890abcdef0123456789abcdef0123456789abcdef012345", nested: { text: "approver discord:100000000000000100", "199999999999999999": "keyed" }, owner_id: 100000000000000100, note: `${"x".repeat(485)} 100000000000000101`, body: "Ask <@100000000000000100> and <@!199999999999999999>." });
|
||||
packages/bus/tests/usage-migration.test.mjs:18: assert.equal(createHash('sha256').update(ddl).digest('hex'), 'a79b3dbe6f4dfba10871c01ad8513ea290071eb8d8af2b87be6db52dbcf23428');
|
||||
packages/bus/tests/sessions.test.mjs:326: assert.equal(createHash('sha256').update(ddl3k).digest('hex'), 'aba9240825a35fdcc741439d0708efa33afcf519d11cac9952c7207ad99250f0');
|
||||
packages/bus/tests/comment-migration.test.mjs:17: '179ffe356d4ff19a49b5ebad39b6c6bfd7771deb8e1b7c55b5e746f039d69e65');
|
||||
packages/cli/tests/case1-accept.test.mjs:802: assert.equal(createHash('sha256').update(supervisor).digest('hex'),'34063098d7edb9067c11456165dc7535bc0e779d053c43599884d6b614528639');
|
||||
packages/bus/tests/account-migration.test.mjs:28: assert.equal(createHash('sha256').update(ddl3h).digest('hex'), 'bb2ba58175a111bb99681778911507846bef714a6d573f8a8af67580a3636950');
|
||||
packages/cli/tests/case1-hostcheck.test.mjs:322: "PIN_PROFILES_VERSION=4.0.1really4.0.1-0ubuntu0.24.04.9\nPIN_PROFILE_SHA256=11d39094f044f0cda0febb3ad517b830301da6b2ce929664af09ee9e4dd264f9\nPIN_BUBBLEWRAP_VERSION=0.9.0-1ubuntu0.3");
|
||||
packages/cli/tests/case1-hostcheck.test.mjs:326: assert.deepEqual(fails(r), [`FAIL 1 ${PROFILE} sha256 is ${sha256(PROFILE_TEXT)}, not the pin 11d39094f044f0cda0febb3ad517b830301da6b2ce929664af09ee9e4dd264f9`]);
|
||||
packages/webui/tests/service.test.mjs:23:const UID = '6f1c0e2a9b8d7c4e5f3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e';
|
||||
packages/webui/tests/markdown-preview.test.mjs:251: assert.equal(digest, '5df9165a60cdd36d511fee74b2a25854e58ef4eade30f1acfd55f3c518cee249', 'the rendering matches the round 1 preview');
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,251 @@
|
||||
packages/control-board/tests/creative-hidden.test.mjs:23: doc.roles.bean = { definition: "companion" };
|
||||
packages/control-board/tests/discord.test.mjs:61: writeFileSync(join(root, 'discord', 'demo.json'), JSON.stringify({ name: 'demo', seat: 'researcher', tokenFile: '/never-read-secret', guildId: 'PRIVATE-ID', users: ['PRIVATE-USER'] }), { mode: 0o600 });
|
||||
packages/tasks/tests/fields.test.mjs:173: const file = join(dir, 'researcher.token');
|
||||
packages/tasks/tests/fields.test.mjs:176: b.roles.researcher = {
|
||||
packages/tasks/tests/fields.test.mjs:184: assert.deepEqual(w.businesses.demo.roles.researcher.authority, { withinRole: [], crossRole: [] });
|
||||
packages/webui/tests/thread-sharing-fixture.mjs:28: roles: { chief: { definition: 'chief-of-staff', authority: { withinRole: ['message.send'], crossRole: [] } }, assistant: { definition: 'assistant', authority: { withinRole: ['message.send'], crossRole: [] } } },
|
||||
packages/business/tests/spec-review-contracts.test.mjs:9:import { REPO_ROLES } from "./helpers.mjs";
|
||||
packages/business/tests/spec-review-contracts.test.mjs:11:const contract = (name) => readFileSync(join(REPO_ROLES, `${name}.md`), "utf8");
|
||||
packages/webui/tests/chat-sessions-access.test.mjs:20: roles:{chief:{definition:'chief-of-staff',authority:{withinRole:['message.send'],crossRole:[]}},assistant:{definition:'assistant',authority:{withinRole:['message.send'],crossRole:[]}}},
|
||||
packages/business/tests/resolve.test.mjs:7:import { businessDoc, FAR_DATE, REPO_ROLES, systemFor, tmp } from "./helpers.mjs";
|
||||
packages/business/tests/resolve.test.mjs:22: const business = validateBusinessDocument(doc, join(root, "businesses", "acme.json"), { rolesDir: REPO_ROLES });
|
||||
packages/business/tests/resolve.test.mjs:117: d.roles.chief2 = { definition: "chief-of-staff", credentials: { gitea: { store: true, rotateBy: FAR_DATE } } };
|
||||
packages/business/tests/resolve.test.mjs:169: assert.equal(pm.contract, join(REPO_ROLES, "pm.md"));
|
||||
packages/business/tests/resolve.test.mjs:183: return validateBusinessDocument(doc, file, { rolesDir: REPO_ROLES });
|
||||
packages/webui/tests/views.test.mjs:17:import { writeJson, REPO_ROLES } from '../../business/tests/helpers.mjs';
|
||||
packages/webui/tests/views.test.mjs:207: const web = await startServer({ port: 0, board: 'http://127.0.0.1:9', reads: consoleReads({ root: repo.root, env: repo.env, system: s.system, configDir: s.configDir, rolesDir: REPO_ROLES, business: 'acme' }) });
|
||||
packages/business/tests/library-seats.test.mjs:13:import { businessDoc, writeJson, REPO_ROLES } from "./helpers.mjs";
|
||||
packages/business/tests/library-seats.test.mjs:24:const sets = (dir) => loadSeatSets({ dir, rolesDir: REPO_ROLES });
|
||||
packages/business/tests/library-seats.test.mjs:30: doc.roles.bean = { definition: "companion" };
|
||||
packages/business/tests/library-seats.test.mjs:41: doc.roles.bean = { definition: "companion" };
|
||||
packages/business/tests/library-projects-protected.test.mjs:7:import { businessDoc, rolesCopy, tmp, writeJson } from './helpers.mjs';
|
||||
packages/business/tests/library-projects-protected.test.mjs:18: const writer = organizationWriter({ dir, rolesDir: rolesCopy(root) });
|
||||
packages/webui/tests/reads.test.mjs:13:import { writeJson, REPO_ROLES } from '../../business/tests/helpers.mjs';
|
||||
packages/webui/tests/reads.test.mjs:53: const base = await serve(t, consoleReads({ root: repo.root, env: repo.env, rolesDir: REPO_ROLES }));
|
||||
packages/webui/tests/reads.test.mjs:80: const base = await serve(t, consoleReads({ root: repo.root, env: { ...repo.env, GIT_DIR: join(repo.root, '.git') }, rolesDir: REPO_ROLES }));
|
||||
packages/webui/tests/reads.test.mjs:97: const base = await serve(t, consoleReads({ root: repo.root, env: repo.env, rolesDir: REPO_ROLES }));
|
||||
packages/webui/tests/reads.test.mjs:113: const base = await serve(t, consoleReads({ root: SRC, system: s.system, configDir: s.configDir, rolesDir: REPO_ROLES, business: 'acme' }));
|
||||
packages/webui/tests/reads.test.mjs:145: const reads = consoleReads({ root: SRC, system: s.system, configDir: s.configDir, rolesDir: REPO_ROLES, business: 'acme' });
|
||||
packages/webui/tests/reads.test.mjs:167: let base = await serve(t, consoleReads({ root: SRC, system: s.system, configDir: s.configDir, rolesDir: REPO_ROLES }));
|
||||
packages/webui/tests/reads.test.mjs:171: base = await serve(t, consoleReads({ root: SRC, system: null, configDir: s.configDir, rolesDir: REPO_ROLES }));
|
||||
packages/webui/tests/reads.test.mjs:181: let base = await serve(t, consoleReads({ root: repo.root, env: repo.env, system: s.system, configDir: s.configDir, rolesDir: REPO_ROLES, business: 'acme' }));
|
||||
packages/webui/tests/reads.test.mjs:192: base = await serve(t, consoleReads({ root: repo.root, env: repo.env, system: bare.system, configDir: bare.configDir, rolesDir: REPO_ROLES, business: 'acme' }));
|
||||
packages/webui/tests/reads.test.mjs:204: base = await serve(t, consoleReads({ root: repo.root, env: repo.env, system: null, configDir: s.configDir, rolesDir: REPO_ROLES, business: 'acme' }));
|
||||
packages/webui/tests/reads.test.mjs:251: const reads = consoleReads({ root: dataRoot, system: { dataRoot }, configDir: '/home/u/.config/mosaic-dev', rolesDir: REPO_ROLES, now: () => Date.parse('2026-10-15T13:00:00Z') });
|
||||
packages/cli/tests/lifecycle.test.mjs:851: const roleFile = join(p.f.env.MOSAIC_ROLES_DIR, "chief-of-staff.json");
|
||||
packages/business/tests/record-grants.test.mjs:5:import { REPO_ROLES } from './helpers.mjs';
|
||||
packages/business/tests/record-grants.test.mjs:13: const role = loadRole(REPO_ROLES, name);
|
||||
packages/business/tests/chief-of-staff.test.mjs:13:import { businessDoc, FAR_DATE, launchDoc, REPO_ROLES, systemFor, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/chief-of-staff.test.mjs:48: return { root, business: loadBusiness("acme", { dir: root, rolesDir: REPO_ROLES }) };
|
||||
packages/business/tests/chief-of-staff.test.mjs:57: const role = loadRole(REPO_ROLES, "chief-of-staff");
|
||||
packages/business/tests/chief-of-staff.test.mjs:61: assert.equal(role.contractPath, join(REPO_ROLES, "chief-of-staff.md"));
|
||||
packages/business/tests/chief-of-staff.test.mjs:65: assert.equal(record.contract, join(REPO_ROLES, "chief-of-staff.md"));
|
||||
packages/business/tests/chief-of-staff.test.mjs:71: const raw = JSON.parse(readFileSync(join(REPO_ROLES, "chief-of-staff.json"), "utf8"));
|
||||
packages/business/tests/chief-of-staff.test.mjs:92: gitea: { service: "gitea", file: join(fixture.root, "secrets", "chief-of-staff-gitea.token"), rotateBy: FAR_DATE },
|
||||
packages/business/tests/chief-of-staff.test.mjs:108: const role = loadRole(REPO_ROLES, "pm");
|
||||
packages/business/tests/chief-of-staff.test.mjs:146: const chief = readFileSync(join(REPO_ROLES, "chief-of-staff.md"), "utf8");
|
||||
packages/business/tests/chief-of-staff.test.mjs:152: const pm = readFileSync(join(REPO_ROLES, "pm.md"), "utf8");
|
||||
packages/cli/tests/launcher.test.mjs:745: const chief = join(given.f.roles, "chief-of-staff.json");
|
||||
packages/cli/tests/launcher.test.mjs:769: doc.roles.bean = { definition: "companion", credentials: { gitea: { store: true, rotateBy: FAR_DATE } }, vars: { harness: "pi", model: "claude-sonnet-5-5", thinking: "high", "persona.name": "Bean", "persona.sha256": createHash("sha256").update(text).digest("hex") } };
|
||||
packages/cli/tests/launcher.test.mjs:812: const chief = join(given.f.roles, "chief-of-staff.json");
|
||||
packages/business/tests/business.test.mjs:10:import { launchDoc, businessDoc, REPO, REPO_ROLES, rolesCopy, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/business.test.mjs:18: const loaded = validateBusinessDocument(doc, file, { rolesDir: REPO_ROLES });
|
||||
packages/business/tests/business.test.mjs:24: assert.deepEqual(Object.keys(validateBusinessDocument(only, file, { rolesDir: REPO_ROLES }).projects), ['books']);
|
||||
packages/business/tests/business.test.mjs:28: assert.deepEqual(validateBusinessDocument(doc, file, { rolesDir: REPO_ROLES }).projects.books.universes.harbor.playground, ['Elsewhere/Playground/']);
|
||||
packages/business/tests/business.test.mjs:30: refuses(() => validateBusinessDocument(doc, file, { rolesDir: REPO_ROLES }), /library-playground-other-universe/);
|
||||
packages/business/tests/business.test.mjs:34: refuses(() => validateBusinessDocument(doc, file, { rolesDir: REPO_ROLES }), /library-supporting-other-universe/);
|
||||
packages/business/tests/business.test.mjs:36: refuses(() => validateBusinessDocument(doc, file, { rolesDir: REPO_ROLES }), /library-mapping-invalid/);
|
||||
packages/business/tests/business.test.mjs:47: refuses(() => validateBusinessDocument(doc, join(root, 'businesses/acme.json'), { rolesDir: REPO_ROLES }), /publish.*library/);
|
||||
packages/business/tests/business.test.mjs:60:function check(mutate, { rolesDir = REPO_ROLES } = {}) {
|
||||
packages/business/tests/business.test.mjs:119: refuses(() => check((d) => { d.roles.pm.definition = "researcher"; }), /version 1 and can't back/);
|
||||
packages/business/tests/business.test.mjs:142: const rolesDir = rolesCopy(root);
|
||||
packages/business/tests/business.test.mjs:193: refuses(() => loadBusiness("acme", { dir, rolesDir: REPO_ROLES }), /business file not found/, 4);
|
||||
packages/business/tests/business.test.mjs:196: assert.equal(loadBusiness("acme", { dir, rolesDir: REPO_ROLES }).file, file);
|
||||
packages/business/tests/business.test.mjs:199: refuses(() => loadBusiness("acme", { dir, rolesDir: REPO_ROLES }), /writable by group or other \(mode 620\)/);
|
||||
packages/business/tests/business.test.mjs:201: refuses(() => loadBusiness("acme", { dir, rolesDir: REPO_ROLES }), /writable by group or other/);
|
||||
packages/business/tests/business.test.mjs:203: assert.equal(loadBusiness("acme", { dir, rolesDir: REPO_ROLES }).id, "acme");
|
||||
packages/business/tests/business.test.mjs:207: refuses(() => loadBusiness("linked", { dir, rolesDir: REPO_ROLES }), /non-symbolic-link/, 4);
|
||||
packages/business/tests/business.test.mjs:210: refuses(() => loadBusiness("broken", { dir, rolesDir: REPO_ROLES }), /not valid JSON/);
|
||||
packages/business/tests/business.test.mjs:214: refuses(() => loadBusiness("broken", { dir, rolesDir: REPO_ROLES }), /writable by group or other \(mode 660\)/);
|
||||
packages/business/tests/business.test.mjs:224: refuses(() => loadBusiness("folder", { dir, rolesDir: REPO_ROLES }), /must be a regular, non-symbolic-link file/, 4);
|
||||
packages/business/tests/business.test.mjs:229: try { loadBusiness("pipe", { dir: ${JSON.stringify(dir)}, rolesDir: ${JSON.stringify(REPO_ROLES)} }); }
|
||||
packages/business/tests/business.test.mjs:242: loadBusiness("acme", { dir, rolesDir: REPO_ROLES });
|
||||
packages/business/tests/business.test.mjs:263: refuses(() => validateBusinessDocument(JSON.parse(example), file, { rolesDir: REPO_ROLES }), /botId must be a positive integer/);
|
||||
packages/business/tests/business.test.mjs:269: const business = validateBusinessDocument(filled, file, { rolesDir: REPO_ROLES });
|
||||
packages/business/tests/business.test.mjs:286: const business = check((d) => { d.roles.bean = { definition: "companion", credentials: CREATIVE_GITEA, vars: { ...persona } }; });
|
||||
packages/business/tests/business.test.mjs:288: assert.doesNotThrow(() => check((d) => { d.roles.bean = { definition: "ideas", credentials: CREATIVE_GITEA }; }));
|
||||
packages/business/tests/business.test.mjs:292: refuses(() => check((d) => { d.roles.chief.vars = { ...persona }; }), /chief-of-staff isn't one/);
|
||||
packages/business/tests/business.test.mjs:294: refuses(() => check((d) => { d.roles.bean = { definition: "research", credentials: CREATIVE_GITEA, vars: { [key]: persona[key] } }; }),
|
||||
packages/business/tests/business.test.mjs:299: refuses(() => check((d) => { d.roles.bean = { definition: "companion", credentials: CREATIVE_GITEA, vars: { ...persona, [key]: value } }; }), new RegExp(`variable ${key.replace(".", "\\.")}`), 2);
|
||||
packages/business/tests/business.test.mjs:321: d.roles.bean = { definition: "companion", credentials: CREATIVE_GITEA, identity, publish: ["stack"] };
|
||||
packages/cli/tests/thread-launch.test.mjs:402: doc.roles.bean = { ...doc.roles.assistant, definition: 'companion' };
|
||||
packages/cli/tests/thread-launch.test.mjs:467: doc.roles.bean = { definition: 'companion', vars: { ...vars } };
|
||||
packages/cli/tests/thread-launch.test.mjs:468: doc.roles.chet = { definition: 'continuity', vars: { ...vars } };
|
||||
packages/cli/tests/thread-launch.test.mjs:503: doc.roles.bean = { ...doc.roles.assistant, definition: 'companion' };
|
||||
packages/cli/tests/session-cli.test.mjs:101: const b = new Broker({store,businesses:{demo:{id:'demo',human:'jason',arbiters:{technical:'chief',delivery:'chief'},roles:{chief:{definition:'chief-of-staff',authority:{withinRole:[],crossRole:[]}},assistant:{definition:'assistant',authority:{withinRole:[],crossRole:[]}}},definitions:{assistant:{},'chief-of-staff':{}}}}});
|
||||
packages/cli/tests/optional-tracker.test.mjs:10:import { businessDoc, launchDoc, REPO_ROLES, systemConfig, tmp, writeJson } from "../../business/tests/helpers.mjs";
|
||||
packages/cli/tests/optional-tracker.test.mjs:34: const env = { HOME: root, MOSAIC_CONFIG: config, MOSAIC_ROLES_DIR: REPO_ROLES };
|
||||
packages/cli/tests/optional-tracker.test.mjs:35: return { root, doc, system, env, b: loadBusiness("acme", { dir: join(root, "config"), rolesDir: REPO_ROLES }) };
|
||||
packages/business/tests/plugin-settings.test.mjs:7:import { businessDoc, rolesCopy, tmp as makeRoot, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/plugin-settings.test.mjs:19: const rolesDir = rolesCopy(root);
|
||||
packages/business/tests/case1-project-key.test.mjs:7:import { REPO, REPO_ROLES, systemConfig, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/case1-project-key.test.mjs:32: env: { ...process.env, HOME: root, MOSAIC_CONFIG: config, MOSAIC_ROLES_DIR: REPO_ROLES },
|
||||
packages/webui/tests/tester-fixture.mjs:79: vars: { 'bus.tester': enabled }, roles: { assistant: { definition: 'assistant', ...none }, chief: { definition: 'chief-of-staff', ...none } },
|
||||
packages/cli/tests/case2-install.test.mjs:54: doc.roles.bean = { definition: "companion", vars: { harness: "pi" } };
|
||||
packages/cli/tests/case2-install.test.mjs:55: doc.roles.chet = { definition: "companion", vars: { harness: "pi" } };
|
||||
packages/cli/tests/stack-instances.test.mjs:15:import { businessDoc, rolesCopy, writeJson } from "../../business/tests/helpers.mjs";
|
||||
packages/cli/tests/stack-instances.test.mjs:393: const roles = rolesCopy(files);
|
||||
packages/business/tests/launch-settings.test.mjs:6:import {businessDoc,rolesCopy,tmp as makeRoot,writeJson,tokenFile,FAR_DATE} from './helpers.mjs';
|
||||
packages/business/tests/launch-settings.test.mjs:9:function fixture(){const root=makeRoot();roots.push(root);const rolesDir=rolesCopy(root),doc=businessDoc(root,'acme');for(const r of Object.values(doc.roles))r.vars={...r.vars,model:'sonnet'};doc.roles.pm.vars.model='opus';doc.launch={by:'chief',instances:['coder','reviewer'],models:{opus:{provider:'anthropic',model:'claude-opus-5-5'},sonnet:{provider:'anthropic',model:'claude-sonnet-5-5'}},limits:{models:{anthropic:{'claude-opus-5-5':4,'claude-sonnet-5-5':4}}}};const file=join(root,'businesses/acme.json');writeJson(file,doc);return {root,rolesDir,doc,file};}
|
||||
packages/business/tests/launch-settings.test.mjs:184: const f=fixture();const doc=structuredClone(f.doc);doc.roles.bean={definition:'companion',credentials:{gitea:{store:true,rotateBy:FAR_DATE}},vars:{model:'sonnet'}};writeJson(f.file,doc);
|
||||
packages/business/tests/token-limit-settings.test.mjs:7:import {businessDoc,rolesCopy,tmp as makeRoot,writeJson} from './helpers.mjs';
|
||||
packages/business/tests/token-limit-settings.test.mjs:14: const root=makeRoot();roots.push(root);const rolesDir=rolesCopy(root),doc=businessDoc(root,'acme');
|
||||
packages/business/tests/grant-scope.test.mjs:12:import { businessDoc, rolesCopy, systemFor, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/grant-scope.test.mjs:25: const rolesDir = rolesCopy(root);
|
||||
packages/cli/tests/helpers.mjs:12:import { businessDoc, rolesCopy, systemConfig, writeJson } from "../../business/tests/helpers.mjs";
|
||||
packages/cli/tests/helpers.mjs:40: const roles = rolesCopy(root);
|
||||
packages/business/tests/cli.test.mjs:7:import { businessDoc, REPO, rolesCopy, systemConfig, tmp, tokenFile, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/cli.test.mjs:37: const env = { PATH: process.env.PATH, HOME: join(root, "home"), MOSAIC_CONFIG: config, MOSAIC_ROLES_DIR: rolesCopy(root) };
|
||||
packages/business/tests/instance-settings.test.mjs:12:import { businessDoc, FAR_DATE, REPO, rolesCopy, systemConfig, systemFor, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/instance-settings.test.mjs:36: const rolesDir = rolesCopy(root);
|
||||
packages/business/tests/instance-settings.test.mjs:335: doc.roles.bean = { definition: "companion", credentials: { gitea: { store: true, rotateBy: FAR_DATE } } };
|
||||
packages/business/tests/instance-settings.test.mjs:336: doc.roles.muse = { definition: "ideas", credentials: { gitea: { store: true, rotateBy: FAR_DATE } } };
|
||||
packages/business/tests/instance-settings.test.mjs:381: doc.roles.bean = { definition: "companion", credentials: { gitea: { store: true, rotateBy: FAR_DATE } } };
|
||||
packages/cli/tests/publish-socket.test.mjs:14:import { businessDoc, rolesCopy, systemFor, writeJson } from "../../business/tests/helpers.mjs";
|
||||
packages/cli/tests/publish-socket.test.mjs:81: const rolesDir = rolesCopy(root);
|
||||
packages/business/tests/helpers.mjs:10:export const REPO_ROLES = join(REPO, "roles");
|
||||
packages/business/tests/helpers.mjs:34:export function rolesCopy(root) {
|
||||
packages/business/tests/helpers.mjs:36: cpSync(REPO_ROLES, dir, { recursive: true });
|
||||
packages/webui/tests/chat.test.mjs:198: const roles = { assistant: { definition: 'assistant', authority: { withinRole: ['message.send'], crossRole: [] } }, chief: { definition: 'chief-of-staff', authority: { withinRole: ['message.send'], crossRole: [] } } };
|
||||
packages/business/tests/role.test.mjs:6:import { REPO_ROLES, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/role.test.mjs:37: const role = loadRole(REPO_ROLES, name);
|
||||
packages/business/tests/role.test.mjs:39: assert.equal(role.contractPath, join(REPO_ROLES, `${name}.md`));
|
||||
packages/business/tests/role.test.mjs:49: const scopes = (name, service) => loadRole(REPO_ROLES, name).credentials.find((c) => c.service === service).scopes;
|
||||
packages/business/tests/role.test.mjs:63: const auth = (name) => loadRole(REPO_ROLES, name).authority;
|
||||
packages/business/tests/role.test.mjs:73: const others = readdirSync(REPO_ROLES).filter((f) => f.endsWith(".json") && !["conductor-policy.json", "chief-of-staff.json"].includes(f));
|
||||
packages/business/tests/role.test.mjs:91: const names = readdirSync(REPO_ROLES).filter((f) => f.endsWith(".json") && f !== "conductor-policy.json").map((f) => f.slice(0, -5));
|
||||
packages/business/tests/role.test.mjs:94: const role = loadRole(REPO_ROLES, name);
|
||||
packages/business/tests/role.test.mjs:101: const role = loadRole(REPO_ROLES, "researcher");
|
||||
packages/business/tests/role.test.mjs:114: refuses(() => loadRole(REPO_ROLES, "conductor-policy"), /roleVersion/);
|
||||
packages/business/tests/role.test.mjs:233: const role = loadRole(REPO_ROLES, name);
|
||||
packages/business/tests/role.test.mjs:340: assert.deepEqual(loadRole(REPO_ROLES, "chief-of-staff").hireable, []);
|
||||
packages/business/tests/csuite.test.mjs:10:import { businessDoc, launchDoc, REPO_ROLES, systemFor, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/csuite.test.mjs:32: return { root, business: loadBusiness("acme", { dir: root, rolesDir: REPO_ROLES }) };
|
||||
packages/business/tests/csuite.test.mjs:38: const role = loadRole(REPO_ROLES, name);
|
||||
packages/business/tests/csuite.test.mjs:42: assert.ok(existsSync(join(REPO_ROLES, `${name}.md`)), name);
|
||||
packages/business/tests/csuite.test.mjs:43: const { title, ...rest } = JSON.parse(readFileSync(join(REPO_ROLES, `${name}.json`), "utf8"));
|
||||
packages/business/tests/csuite.test.mjs:46: const text = readFileSync(join(REPO_ROLES, `${name}.md`), "utf8");
|
||||
packages/business/tests/csuite.test.mjs:90: const base = JSON.parse(readFileSync(join(REPO_ROLES, "chief-executive-officer.json"), "utf8"));
|
||||
packages/business/tests/workflow-roles.test.mjs:10:import { businessDoc, REPO_ROLES, systemFor, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/workflow-roles.test.mjs:46: return { root, business: loadBusiness("acme", { dir: root, rolesDir: REPO_ROLES }) };
|
||||
packages/business/tests/workflow-roles.test.mjs:52: const role = loadRole(REPO_ROLES, name);
|
||||
packages/business/tests/workflow-roles.test.mjs:55: assert.ok(existsSync(join(REPO_ROLES, `${name}.md`)), name);
|
||||
packages/business/tests/workflow-roles.test.mjs:56: const { title, ...rest } = JSON.parse(readFileSync(join(REPO_ROLES, `${name}.json`), "utf8"));
|
||||
packages/business/tests/workflow-roles.test.mjs:59: assert.match(readFileSync(join(REPO_ROLES, `${name}.md`), "utf8"), new RegExp(`^# Role contract: ${name}\\n`), name);
|
||||
packages/business/tests/workflow-roles.test.mjs:64: const role = loadRole(REPO_ROLES, "security-reviewer");
|
||||
packages/business/tests/workflow-roles.test.mjs:73: const role = loadRole(REPO_ROLES, "merge-gate");
|
||||
packages/business/tests/workflow-roles.test.mjs:92: const contracts = readdirSync(REPO_ROLES).filter((f) => f.endsWith(".md"));
|
||||
packages/business/tests/workflow-roles.test.mjs:97: const text = readFileSync(join(REPO_ROLES, file), "utf8");
|
||||
packages/business/tests/workflow-roles.test.mjs:107: const text = readFileSync(join(REPO_ROLES, `${name}.md`), "utf8").replace(/\s+/g, " ");
|
||||
packages/business/tests/workflow-roles.test.mjs:126: const read = (name) => readFileSync(join(REPO_ROLES, `${name}.md`), "utf8").replace(/\s+/g, " ");
|
||||
packages/business/tests/agent-identity.test.mjs:8:import { businessDoc, FAR_DATE, REPO_ROLES, tmp } from "./helpers.mjs";
|
||||
packages/business/tests/agent-identity.test.mjs:29: return validateBusinessDocument(doc, join(root, "businesses", "acme.json"), { rolesDir: REPO_ROLES });
|
||||
packages/business/tests/agent-identity.test.mjs:34: const business = validateBusinessDocument(businessDoc(root), join(root, "businesses", "acme.json"), { rolesDir: REPO_ROLES });
|
||||
packages/business/tests/assistant.test.mjs:10:import { businessDoc, REPO_ROLES, systemFor, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/assistant.test.mjs:41: return { root, business: loadBusiness("acme", { dir: root, rolesDir: REPO_ROLES }) };
|
||||
packages/business/tests/assistant.test.mjs:49: const role = loadRole(REPO_ROLES, "assistant");
|
||||
packages/business/tests/assistant.test.mjs:53: assert.equal(role.contractPath, join(REPO_ROLES, "assistant.md"));
|
||||
packages/business/tests/assistant.test.mjs:58: assert.equal(record.contract, join(REPO_ROLES, "assistant.md"));
|
||||
packages/business/tests/assistant.test.mjs:64: const raw = JSON.parse(readFileSync(join(REPO_ROLES, "assistant.json"), "utf8"));
|
||||
packages/business/tests/assistant.test.mjs:71: const role = loadRole(REPO_ROLES, "assistant");
|
||||
packages/business/tests/assistant.test.mjs:84: const role = loadRole(REPO_ROLES, "assistant");
|
||||
packages/business/tests/assistant.test.mjs:89: assert.equal(loadRole(REPO_ROLES, name).messaging, null, name);
|
||||
packages/business/tests/assistant.test.mjs:151: const text = readFileSync(join(REPO_ROLES, "assistant.md"), "utf8");
|
||||
packages/business/tests/assistant.test.mjs:164: const names = readdirSync(REPO_ROLES).filter((f) => f.endsWith(".json") && f !== "conductor-policy.json").map((f) => f.slice(0, -5));
|
||||
packages/business/tests/assistant.test.mjs:165: const granted = names.filter((name) => loadRole(REPO_ROLES, name).tools.includes("web"));
|
||||
packages/business/tests/assistant.test.mjs:168: assert.ok(!loadRole(REPO_ROLES, name).tools.includes("web"), name);
|
||||
packages/business/tests/lifecycle-settings.test.mjs:12:import { businessDoc, FAR_DATE, REPO, rolesCopy, systemConfig, systemFor, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/lifecycle-settings.test.mjs:25: const rolesDir = rolesCopy(root);
|
||||
packages/business/tests/lifecycle-settings.test.mjs:238: doc.roles.bean = { definition: "companion", credentials: { gitea: { store: true, rotateBy: FAR_DATE } } };
|
||||
packages/business/tests/case1-business-file.test.mjs:8:import { REPO, REPO_ROLES, systemConfig, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/case1-business-file.test.mjs:37: MOSAIC_CONFIG: config, MOSAIC_ROLES_DIR: REPO_ROLES, CASE2_STACK_COPY: copy,
|
||||
packages/business/tests/case1-business-file.test.mjs:62: const b = loadBusiness("mosaic-stack", { dir: x.configDir, rolesDir: REPO_ROLES });
|
||||
packages/business/tests/optional-tracker.test.mjs:8:import { businessDoc, REPO, REPO_ROLES, systemConfig, tmp, writeJson } from "./helpers.mjs";
|
||||
packages/business/tests/optional-tracker.test.mjs:19:const check = (x) => validateBusinessDocument(x.doc, x.file, { rolesDir: REPO_ROLES });
|
||||
packages/business/tests/optional-tracker.test.mjs:25: const b = loadBusiness("acme", { dir: join(x.root, "config"), rolesDir: REPO_ROLES });
|
||||
packages/business/tests/optional-tracker.test.mjs:38: env: { ...process.env, HOME: x.root, MOSAIC_CONFIG: x.config, MOSAIC_ROLES_DIR: REPO_ROLES },
|
||||
packages/business/tests/project-repo.test.mjs:4:import { businessDoc, REPO_ROLES, tmp } from './helpers.mjs';
|
||||
packages/business/tests/project-repo.test.mjs:9: const check = () => validateBusinessDocument(doc, file, { rolesDir: REPO_ROLES });
|
||||
packages/business/tests/project-repo.test.mjs:23: const business = validateBusinessDocument(doc, file, { rolesDir: REPO_ROLES });
|
||||
packages/business/tests/project-repo.test.mjs:27: const safe = validateBusinessDocument(doc, file, { rolesDir: REPO_ROLES });
|
||||
packages/business/tests/hosts.test.mjs:9:import { businessDoc, rolesCopy, tmp, tokenFile, FAR_DATE } from "./helpers.mjs";
|
||||
packages/business/tests/hosts.test.mjs:24: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/workflow-roles.test.mjs:14:import { businessDoc, REPO_ROLES, systemFor } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/workflow-roles.test.mjs:30: const business = validateBusinessDocument(doc, join(root, 'businesses', 'demo.json'), { rolesDir: REPO_ROLES });
|
||||
packages/bus/tests/thread-claims.test.mjs:34: roles: { chief: { definition: 'chief-of-staff', ...within(['message.send']) }, assistant: { definition: 'assistant', ...within(['message.send']) } },
|
||||
packages/bus/tests/rooms.test.mjs:18: const roles = { continuity: role('continuity'), chet: role('companion'), bean: role('companion'), chief: role('chief-of-staff') };
|
||||
packages/harness/tests/helpers.mjs:12:import { businessDoc, REPO_ROLES, systemFor } from "../../business/tests/helpers.mjs";
|
||||
packages/harness/tests/helpers.mjs:46: const business = validateBusinessDocument(doc, join(root, "businesses", "acme.json"), { rolesDir: REPO_ROLES });
|
||||
packages/bus/tests/lifecycle-verbs.test.mjs:372: const { businessDoc, rolesCopy, systemFor, writeJson } = await import('../../business/tests/helpers.mjs');
|
||||
packages/bus/tests/lifecycle-verbs.test.mjs:374: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/publish.test.mjs:235: const { businessDoc, rolesCopy, systemFor, writeJson } = await import('../../business/tests/helpers.mjs');
|
||||
packages/bus/tests/publish.test.mjs:239: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/broker.test.mjs:9:import { businessDoc, REPO_ROLES, systemFor } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/broker.test.mjs:397: rolesDir: REPO_ROLES,
|
||||
packages/bus/tests/plugins-verb.test.mjs:35: const { businessDoc, rolesCopy, systemFor, writeJson } = await import('../../business/tests/helpers.mjs');
|
||||
packages/bus/tests/plugins-verb.test.mjs:37: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/plugins-verb.test.mjs:70: const { businessDoc, rolesCopy, systemFor, writeJson } = await import('../../business/tests/helpers.mjs');
|
||||
packages/bus/tests/plugins-verb.test.mjs:72: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/grant-scope-runtime.test.mjs:9:import { businessDoc, rolesCopy, systemFor, writeJson } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/grant-scope-runtime.test.mjs:16: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/limits.test.mjs:20: const {startBroker}=await import('../src/runtime.mjs');const {businessDoc,rolesCopy,systemFor,writeJson}=await import('../../business/tests/helpers.mjs');const {readFileSync}=await import('node:fs');
|
||||
packages/bus/tests/limits.test.mjs:21: const root=mkdtempSync(join(tmpdir(),'mosaic-limits-runtime-')),rolesDir=rolesCopy(root),doc=businessDoc(root,'demo');writeJson(join(root,'businesses/demo.json'),doc);mkdirSync(join(root,'data'),{mode:0o700});
|
||||
packages/bus/tests/limits.test.mjs:27: const {startBroker}=await import('../src/runtime.mjs');const {businessDoc,rolesCopy,systemFor,writeJson}=await import('../../business/tests/helpers.mjs');const {organizationWriter}=await import('../../business/src/organization.mjs');const {readFileSync}=await import('node:fs');
|
||||
packages/bus/tests/limits.test.mjs:28: const root=mkdtempSync(join(tmpdir(),'mosaic-limits-recovery-')),rolesDir=rolesCopy(root),doc=businessDoc(root,'demo'),file=writeJson(join(root,'businesses/demo.json'),doc);mkdirSync(join(root,'data'),{mode:0o700});
|
||||
packages/plugins/tests/loader.test.mjs:10:import { businessDoc, rolesCopy, tmp as businessRoot, writeJson } from "../../business/tests/helpers.mjs";
|
||||
packages/plugins/tests/loader.test.mjs:55: const business = validateBusinessDocument(doc, file, { rolesDir: rolesCopy(root) });
|
||||
packages/bus/tests/gitea-grant.test.mjs:246: const creative = await setup(t, { business: (b) => (b.roles.coder.definition = 'research') });
|
||||
packages/bus/tests/host-run.test.mjs:20:import { businessDoc, rolesCopy, systemFor, writeJson } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/host-run.test.mjs:158: const chiefAuthority = JSON.parse(readFileSync(join(REPO, 'roles', 'chief-of-staff.json'), 'utf8')).authority;
|
||||
packages/bus/tests/host-run.test.mjs:162: roles: { chief: { definition: 'chief-of-staff', authority: chiefAuthority } }, projects: {},
|
||||
packages/bus/tests/host-run.test.mjs:565: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/host-run.test.mjs:638: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/fire-revokes-grants.test.mjs:31:const chiefAuthority = JSON.parse(readFileSync(fileURLToPath(new URL('../../../roles/chief-of-staff.json', import.meta.url)), 'utf8')).authority;
|
||||
packages/bus/tests/message-filter.test.mjs:79: roles: { chief: { definition: 'chief-of-staff', ...within(['message.send']) }, assistant: { definition: 'assistant', ...within(['message.send']) } },
|
||||
packages/bus/tests/credential-verbs.test.mjs:13:import { businessDoc, rolesCopy, systemFor, writeJson } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/credential-verbs.test.mjs:24: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/instances-verb.test.mjs:13:const chiefAuthority = JSON.parse(readFileSync(fileURLToPath(new URL('../../../roles/chief-of-staff.json', import.meta.url)), 'utf8')).authority;
|
||||
packages/bus/tests/instances-verb.test.mjs:18: roles: { chief: { definition: 'chief-of-staff', authority: chiefAuthority }, pm: { definition: 'pm', ...none } },
|
||||
packages/bus/tests/instances-verb.test.mjs:63: const { businessDoc, rolesCopy, systemFor, writeJson } = await import('../../business/tests/helpers.mjs');
|
||||
packages/bus/tests/instances-verb.test.mjs:65: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/tester-writes.test.mjs:12:import { businessDoc, rolesCopy, systemFor, writeJson } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/tester-writes.test.mjs:38: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/lifecycle-revoke.test.mjs:16:import { businessDoc, FAR_DATE, rolesCopy, systemFor, writeJson } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/lifecycle-revoke.test.mjs:26: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/hard-waits.test.mjs:160: const f = await fixture(t, { roles: { ...seats, chief: { definition: 'chief-of-staff', ...grants(['role.end']) } } });
|
||||
packages/bus/tests/daily-quota-runtime.test.mjs:18: const { businessDoc, rolesCopy, systemFor, writeJson } = await import('../../business/tests/helpers.mjs');
|
||||
packages/bus/tests/daily-quota-runtime.test.mjs:19: const root = mkdtempSync(join(tmpdir(), 'mosaic-daily-quota-')), rolesDir = rolesCopy(root), doc = businessDoc(root, 'demo');
|
||||
packages/bus/tests/grant-executor.test.mjs:231: roles: { ...structuredClone(business.roles), ops: { ...structuredClone(business.roles.ops), definition: 'research' } },
|
||||
packages/bus/tests/routes-verb.test.mjs:15:const chiefAuthority = JSON.parse(readFileSync(fileURLToPath(new URL('../../../roles/chief-of-staff.json', import.meta.url)), 'utf8')).authority;
|
||||
packages/bus/tests/routes-verb.test.mjs:20: roles: { chief: { definition: 'chief-of-staff', authority: chiefAuthority }, pm: { definition: 'pm', ...none } },
|
||||
packages/bus/tests/routes-verb.test.mjs:104: const { businessDoc, rolesCopy, systemFor, writeJson } = await import('../../business/tests/helpers.mjs');
|
||||
packages/bus/tests/routes-verb.test.mjs:106: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/reload.test.mjs:15:import { businessDoc, rolesCopy, systemFor, writeJson } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/reload.test.mjs:28: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/reload.test.mjs:152: const roleFile = join(f.rolesDir, 'chief-of-staff.json');
|
||||
packages/bus/tests/creative.test.mjs:10:import { businessDoc, FAR_DATE, rolesCopy, systemFor, writeJson } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/creative.test.mjs:98: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/creative.test.mjs:101: doc.roles.bean = { definition: 'companion', credentials: { gitea: { store: true, rotateBy: FAR_DATE } } };
|
||||
packages/bus/tests/creative.test.mjs:114: roles: { chief: { definition: 'chief-of-staff', authority: shipped('chief-of-staff').authority }, bean: { definition: 'companion', ...within } },
|
||||
packages/bus/tests/names.test.mjs:12:// within-role. The grant is read from the shipped roles/chief-of-staff.json, so removing it there
|
||||
packages/bus/tests/chief-of-staff.test.mjs:13:import { businessDoc, rolesCopy, systemFor, writeJson } from '../../business/tests/helpers.mjs';
|
||||
packages/bus/tests/chief-of-staff.test.mjs:21:// organization). The grant is read from the shipped roles/chief-of-staff.json, so the test pins the
|
||||
packages/bus/tests/chief-of-staff.test.mjs:356: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/chief-of-staff.test.mjs:424: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/chief-of-staff.test.mjs:486: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/chief-of-staff.test.mjs:544: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/chief-of-staff.test.mjs:816: const { call, organization, lastClaim } = hireSetup(t, { ...LISTED, roles: { ...roles, chief: { definition: 'chief-of-staff', authority } } });
|
||||
packages/bus/tests/chief-of-staff.test.mjs:1025: const rolesDir = rolesCopy(root);
|
||||
packages/bus/tests/chief-of-staff.test.mjs:1032: const chiefFile = join(rolesDir, 'chief-of-staff.json');
|
||||
packages/bus/tests/limits-runtime.test.mjs:16: const { businessDoc, rolesCopy, systemFor, writeJson } = await import('../../business/tests/helpers.mjs');
|
||||
packages/bus/tests/limits-runtime.test.mjs:17: const root = mkdtempSync(join(tmpdir(), 'mosaic-limits-tokens-')), rolesDir = rolesCopy(root), doc = businessDoc(root, 'demo');
|
||||
@@ -1626,3 +1626,4 @@ are never rewritten or removed; corrections are new entries.
|
||||
2026-10-24T04:27Z | Goldie (a13dd6d5-5e73-4b7d-8318-02abeff24940) | Row265 / #1770 C2-09b rooms | Goldie owns build, Boyd reviews under sage-3915. New goldie/row265 worktree at ec86f2c84, claim rev3814; room verbs/parser/new tests prepared, no old tests changed. Sage-3932 slot: new parser14/14 and rooms18/18 passed; whole bus in progress before refusal mutants, stop rule active.
|
||||
2026-10-24T04:35Z | Goldie (a13dd6d5-5e73-4b7d-8318-02abeff24940) | Row265 / #1770 verified | First slot stopped at project-runtime import pin. mos-1567 narrowly authorizes pin and pure-source mount correction. sage-3942 rerun: sandbox10/10, parser15/15, rooms18/18, bus957/957, twelve refusal mutants killed/restored SHA71b32ee4, parser15/15 + rooms18/18 again. Slot returned goldie-0034; no further test runs. Boyd reviews RUNNER_FILES alongside rooms; own-branch push/claimant in-review next.
|
||||
2026-10-24T07:18:53Z | Sage (1ef1e4f8) | Row 327 / #1825 push guard landed (mos-1572 option A, mos-1575) | Gate went red 06:57Z on an empty canonical node_modules (Glomgold's webui npm ci through a link to canonical, glomgold-0011); rerun with its own npm ci GREEN 07:15:49Z on 1bd214e38; pushed 68c08b4e7 07:18:03Z; #1825 closed c31530; canonical restored (128 packages); brief template rule 4db23a51f | landed
|
||||
2026-10-24T10:02Z | Magica (483bbea5-e548-4c97-9b85-8f29ba81e427) | Row 285 / #1790 r3 replay, sage-4039 | Seven Scrooge commits replayed onto b19ffa04f; five overlaps auto-merged and inspected; range-diff, stable patch IDs and 291 conservative reader inventory in agents/magica/work/queue-285/BUILD.md. Every test added/removed line matches r2; N1 deferred. Canonical queue move magica-285-start rev3889 succeeded. No npm/tests; own-branch push for CLEAR next.
|
||||
Reference in new issue
Block a user