sage: Darkwing's Window A and B scratch --plan and load checks, cited in both plans (#1558)
Darkwing's queue-162 packet for sage-1004/1006/1008: the two scratch --plan runs on blob4b16e848and the load checks of the usage-source file under5fa9cc8f2and8e7ea89a1(mos-0845 D3, mos-0847). Secrets scan clean. Both plans cite the files. W3 notes that the scratch store line reads the pointer, since the scratch root has no store.
This commit is contained in:
1 parent
855c9eb019
commit
6e7c23d7d9
11 files changed
+549
-3
No files matched your search
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"businessVersion": 1,
|
||||
"id": "mosaic-stack",
|
||||
"human": "jason",
|
||||
"arbiters": {
|
||||
"delivery": "pm",
|
||||
"technical": "cto"
|
||||
},
|
||||
"projects": {
|
||||
"stack": {
|
||||
"root": "/mnt/storage/src/mosaic-stack"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"tracker.baseUrl": "http://127.0.0.1:9",
|
||||
"gitea.baseUrl": "http://127.0.0.1:9"
|
||||
},
|
||||
"tracker": {
|
||||
"sync": {
|
||||
"bot": "bot-mosaic-stack-sync",
|
||||
"botId": 1,
|
||||
"credentials": {
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/sync-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
}
|
||||
},
|
||||
"labels": {}
|
||||
},
|
||||
"roles": {
|
||||
"pm": {
|
||||
"definition": "pm",
|
||||
"holder": "sage",
|
||||
"tracker": {
|
||||
"bot": "bot-mosaic-stack-pm",
|
||||
"botId": 2
|
||||
},
|
||||
"credentials": {
|
||||
"gitea": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/pm-gitea.token",
|
||||
"rotateBy": "2027-01-01"
|
||||
},
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/pm-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
},
|
||||
"cto": {
|
||||
"definition": "cto",
|
||||
"holder": "darkwing",
|
||||
"tracker": {
|
||||
"bot": "bot-mosaic-stack-cto",
|
||||
"botId": 3
|
||||
},
|
||||
"credentials": {
|
||||
"gitea": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/cto-gitea.token",
|
||||
"rotateBy": "2027-01-01"
|
||||
},
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/cto-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
},
|
||||
"coder": {
|
||||
"definition": "coder",
|
||||
"tracker": {
|
||||
"bot": "bot-mosaic-stack-coder",
|
||||
"botId": 4
|
||||
},
|
||||
"credentials": {
|
||||
"gitea": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/coder-gitea.token",
|
||||
"rotateBy": "2027-01-01"
|
||||
},
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/coder-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"model": "sonnet"
|
||||
}
|
||||
},
|
||||
"reviewer": {
|
||||
"definition": "reviewer",
|
||||
"tracker": {
|
||||
"bot": "bot-mosaic-stack-reviewer",
|
||||
"botId": 5
|
||||
},
|
||||
"credentials": {
|
||||
"gitea": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/reviewer-gitea.token",
|
||||
"rotateBy": "2027-01-01"
|
||||
},
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/reviewer-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
},
|
||||
"chief": {
|
||||
"definition": "chief-of-staff",
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
},
|
||||
"assistant": {
|
||||
"definition": "assistant",
|
||||
"holder": "mos",
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"launch": {
|
||||
"by": "chief",
|
||||
"instances": [
|
||||
"coder",
|
||||
"reviewer"
|
||||
],
|
||||
"models": {
|
||||
"opus": {
|
||||
"provider": "your-provider",
|
||||
"model": "claude-opus-5-5"
|
||||
},
|
||||
"sonnet": {
|
||||
"provider": "your-provider",
|
||||
"model": "claude-sonnet-5-5"
|
||||
}
|
||||
},
|
||||
"limits": {
|
||||
"models": {
|
||||
"your-provider": {
|
||||
"claude-opus-5-5": 4,
|
||||
"claude-sonnet-5-5": 4
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"usage-source": [
|
||||
"transcript"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
{
|
||||
"businessVersion": 1,
|
||||
"id": "mosaic-stack",
|
||||
"human": "jason",
|
||||
"arbiters": {
|
||||
"delivery": "pm",
|
||||
"technical": "cto"
|
||||
},
|
||||
"projects": {
|
||||
"stack": {
|
||||
"root": "/mnt/storage/src/mosaic-stack"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"tracker.baseUrl": "http://127.0.0.1:9",
|
||||
"gitea.baseUrl": "http://127.0.0.1:9"
|
||||
},
|
||||
"tracker": {
|
||||
"sync": {
|
||||
"bot": "bot-mosaic-stack-sync",
|
||||
"botId": 1,
|
||||
"credentials": {
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/sync-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
}
|
||||
},
|
||||
"labels": {}
|
||||
},
|
||||
"roles": {
|
||||
"pm": {
|
||||
"definition": "pm",
|
||||
"holder": "sage",
|
||||
"tracker": {
|
||||
"bot": "bot-mosaic-stack-pm",
|
||||
"botId": 2
|
||||
},
|
||||
"credentials": {
|
||||
"gitea": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/pm-gitea.token",
|
||||
"rotateBy": "2027-01-01"
|
||||
},
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/pm-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
},
|
||||
"cto": {
|
||||
"definition": "cto",
|
||||
"holder": "darkwing",
|
||||
"tracker": {
|
||||
"bot": "bot-mosaic-stack-cto",
|
||||
"botId": 3
|
||||
},
|
||||
"credentials": {
|
||||
"gitea": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/cto-gitea.token",
|
||||
"rotateBy": "2027-01-01"
|
||||
},
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/cto-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
},
|
||||
"coder": {
|
||||
"definition": "coder",
|
||||
"tracker": {
|
||||
"bot": "bot-mosaic-stack-coder",
|
||||
"botId": 4
|
||||
},
|
||||
"credentials": {
|
||||
"gitea": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/coder-gitea.token",
|
||||
"rotateBy": "2027-01-01"
|
||||
},
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/coder-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"model": "sonnet"
|
||||
}
|
||||
},
|
||||
"reviewer": {
|
||||
"definition": "reviewer",
|
||||
"tracker": {
|
||||
"bot": "bot-mosaic-stack-reviewer",
|
||||
"botId": 5
|
||||
},
|
||||
"credentials": {
|
||||
"gitea": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/reviewer-gitea.token",
|
||||
"rotateBy": "2027-01-01"
|
||||
},
|
||||
"vikunja": {
|
||||
"file": "/home/jwoltje/darkwing-scratch/r1004/bfiles/nosecret/reviewer-vikunja.token",
|
||||
"expires": "2027-01-01"
|
||||
}
|
||||
},
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
},
|
||||
"chief": {
|
||||
"definition": "chief-of-staff",
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
},
|
||||
"assistant": {
|
||||
"definition": "assistant",
|
||||
"holder": "mos",
|
||||
"vars": {
|
||||
"model": "opus"
|
||||
}
|
||||
}
|
||||
},
|
||||
"launch": {
|
||||
"by": "chief",
|
||||
"instances": [
|
||||
"coder",
|
||||
"reviewer"
|
||||
],
|
||||
"models": {
|
||||
"opus": {
|
||||
"provider": "your-provider",
|
||||
"model": "claude-opus-5-5"
|
||||
},
|
||||
"sonnet": {
|
||||
"provider": "your-provider",
|
||||
"model": "claude-sonnet-5-5"
|
||||
}
|
||||
},
|
||||
"limits": {
|
||||
"models": {
|
||||
"your-provider": {
|
||||
"claude-opus-5-5": 4,
|
||||
"claude-sonnet-5-5": 4
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"usage-source": [
|
||||
"transcript"
|
||||
],
|
||||
"channel": [
|
||||
"cli",
|
||||
"webui"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// business-check-style load (repin-de352dfaf/business-check.mjs) of a scratch business file under COPY's own
|
||||
// loader and roles. usage: node load-check.mjs COPY_DIR CONFIG_DIR. Prints counts, plug-in kinds, HOLDS lines, LOAD_OK or REFUSED.
|
||||
const [copy, dir] = process.argv.slice(2);
|
||||
const { loadBusiness } = await import(`${copy}/packages/business/src/business.mjs`);
|
||||
const { resolveInstance } = await import(`${copy}/packages/business/src/resolve.mjs`);
|
||||
try {
|
||||
const b = loadBusiness('mosaic-stack', { dir, rolesDir: `${copy}/roles` });
|
||||
const count = (o) => Object.keys(o ?? {}).length;
|
||||
console.log(`copy ${copy.split('/').pop().slice(0, 9)}: roles ${count(b.roles)}, projects ${count(b.projects)}, arbiters ${count(b.arbiters)}, plugins ${JSON.stringify(b.plugins)}`);
|
||||
for (const instance of ['chief', 'pm']) {
|
||||
const { limits: { authority: a } } = resolveInstance({ system: {}, business: b, instance });
|
||||
console.log(`HOLDS ${instance} instance.name ${[...a.withinRole, ...a.crossRole].includes('instance.name') ? 'yes' : 'no'}`);
|
||||
}
|
||||
console.log('LOAD_OK');
|
||||
} catch (e) {
|
||||
console.log(`REFUSED ${e.message}`);
|
||||
process.exit(1);
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
# SCRATCH, NOT LIVE. Business-check-style loads run by darkwing at 2026-10-19T17:54:24Z for sage-1004/1006/1008 (mos-0845 D3).
|
||||
# Each copy loads the file with its own packages/business/src/business.mjs and roles/.
|
||||
# File A: /home/jwoltje/darkwing-scratch/r1004/bfiles/A/businesses/mosaic-stack.json, sha256 d4c109fa4a169c18f7a29c7e9caaee392169a9ed9e185e14c8c70678f320a933
|
||||
# the committed packages/business/examples/mosaic-stack.example.json (blob 3a81ca0faea6 at all three commits) through mkbiz.mjs,
|
||||
# plugins {"usage-source":["transcript"]}. File B: same plus "channel":["cli","webui"], sha256 a3104f0ecda189a6704dbd301ddb36c4ed9ee3ff86973ad90d5a5490d9b62dec
|
||||
# mkbiz.mjs: bot ids 1..n, date placeholders 2027-01-01, credential files point at a path that does not exist,
|
||||
# tracker.baseUrl and gitea.baseUrl 127.0.0.1:9. The live business file was not read (mos-0847).
|
||||
|
||||
## Part 1. Window A file under 5fa9cc8f2 (the target)
|
||||
# command: node /home/jwoltje/darkwing-scratch/r1004/load-check.mjs /home/jwoltje/darkwing-scratch/r1004/copies/5fa9cc8f2c66b52408b652b59c3070f7210b44d0 /home/jwoltje/darkwing-scratch/r1004/bfiles/A
|
||||
copy 5fa9cc8f2: roles 6, projects 1, arbiters 2, plugins {"usage-source":["transcript"]}
|
||||
HOLDS chief instance.name yes
|
||||
HOLDS pm instance.name no
|
||||
LOAD_OK
|
||||
# exit 0
|
||||
|
||||
## Part 2. Window A file under 8e7ea89a1 (the rollback load)
|
||||
# command: node /home/jwoltje/darkwing-scratch/r1004/load-check.mjs /home/jwoltje/darkwing-scratch/r1004/copies/8e7ea89a1e86447d26ec335e4b138acfd5130cbc /home/jwoltje/darkwing-scratch/r1004/bfiles/A
|
||||
copy 8e7ea89a1: roles 6, projects 1, arbiters 2, plugins {"usage-source":["transcript"]}
|
||||
HOLDS chief instance.name yes
|
||||
HOLDS pm instance.name no
|
||||
LOAD_OK
|
||||
# exit 0
|
||||
|
||||
## Part 3. Window B seed file under 5fa9cc8f2
|
||||
# command: node /home/jwoltje/darkwing-scratch/r1004/load-check.mjs /home/jwoltje/darkwing-scratch/r1004/copies/5fa9cc8f2c66b52408b652b59c3070f7210b44d0 /home/jwoltje/darkwing-scratch/r1004/bfiles/B
|
||||
copy 5fa9cc8f2: roles 6, projects 1, arbiters 2, plugins {"usage-source":["transcript"],"channel":["cli","webui"]}
|
||||
HOLDS chief instance.name yes
|
||||
HOLDS pm instance.name no
|
||||
LOAD_OK
|
||||
# exit 0
|
||||
|
||||
## Part 4. Window B seed file under ca15d73e9
|
||||
# command: node /home/jwoltje/darkwing-scratch/r1004/load-check.mjs /home/jwoltje/darkwing-scratch/r1004/copies/ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 /home/jwoltje/darkwing-scratch/r1004/bfiles/B
|
||||
copy ca15d73e9: roles 6, projects 1, arbiters 2, plugins {"usage-source":["transcript"],"channel":["cli","webui"]}
|
||||
HOLDS chief instance.name yes
|
||||
HOLDS pm instance.name no
|
||||
LOAD_OK
|
||||
# exit 0
|
||||
|
||||
## Part 5. Control: Window B file under 8e7ea89a1, expected REFUSED (no channel kind there)
|
||||
# command: node /home/jwoltje/darkwing-scratch/r1004/load-check.mjs /home/jwoltje/darkwing-scratch/r1004/copies/8e7ea89a1e86447d26ec335e4b138acfd5130cbc /home/jwoltje/darkwing-scratch/r1004/bfiles/B
|
||||
REFUSED /home/jwoltje/darkwing-scratch/r1004/bfiles/B/businesses/mosaic-stack.json plugins names unknown kind "channel"; adding a kind is a core change
|
||||
# exit 1
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
// Scratch business file for sage-1004/1006: the committed example, made loadable, with the given plug-ins.
|
||||
// Bot ids become distinct positive integers, date placeholders become 2027-01-01, every credential file
|
||||
// points at a path under NOSECRET that does not exist, and both base URLs go to 127.0.0.1:9 (discard),
|
||||
// so a scratch bus never reaches the live tracker or Gitea. usage: node mkbiz.mjs EXAMPLE NOSECRET PLUGINS_JSON
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { basename } from 'node:path';
|
||||
const [example, nosecret, plugins] = process.argv.slice(2);
|
||||
const b = JSON.parse(readFileSync(example, 'utf8'));
|
||||
let id = 0;
|
||||
const walk = (o) => {
|
||||
for (const [k, v] of Object.entries(o)) {
|
||||
if (k === 'botId') o[k] = ++id;
|
||||
else if (v === 'YYYY-MM-DD') o[k] = '2027-01-01';
|
||||
else if (k === 'file' && typeof v === 'string') o[k] = `${nosecret}/${basename(v)}`;
|
||||
else if (v && typeof v === 'object') walk(v);
|
||||
}
|
||||
};
|
||||
walk(b);
|
||||
b.vars['tracker.baseUrl'] = 'http://127.0.0.1:9';
|
||||
b.vars['gitea.baseUrl'] = 'http://127.0.0.1:9';
|
||||
b.plugins = JSON.parse(plugins);
|
||||
process.stdout.write(JSON.stringify(b, null, 2) + '\n');
|
||||
@@ -0,0 +1,7 @@
|
||||
2026-10-19T17:47:04Z tool: /home/jwoltje/darkwing-scratch/r1004/wt at 6dbc673022e4ec3c22ada4a86bf4095e62269d8b, scripts/stack-release.sh blob 4b16e848a6b9905b6a568668367bad6df5f65c7b
|
||||
2026-10-19T17:47:05Z pointer: hand-written, copy 8e7ea89a1e86447d26ec335e4b138acfd5130cbc, schema 3h, pm true
|
||||
2026-10-19T17:47:05Z copy: (cd /home/jwoltje/darkwing-scratch/r1004/wt && scripts/stack-copy.sh copy 5fa9cc8f2c66b52408b652b59c3070f7210b44d0 --copies /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/copies --allow-worktree)
|
||||
2026-10-19T17:47:06Z copy: copied: /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/copies/5fa9cc8f2c66b52408b652b59c3070f7210b44d0
|
||||
2026-10-19T17:47:06Z plan: written to /home/jwoltje/darkwing-scratch/r1004/out/scratch-plan-5fa9cc8f2.txt
|
||||
2026-10-19T17:47:06Z files under the data root after the plan: . ./bus ./state ./state/stack-active.json
|
||||
2026-10-19T17:47:06Z removed: chmod -R u+w /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/copies/5fa9cc8f2c66b52408b652b59c3070f7210b44d0 && rm -rf /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/copies/5fa9cc8f2c66b52408b652b59c3070f7210b44d0; left: 0 entries
|
||||
@@ -0,0 +1,97 @@
|
||||
# SCRATCH ROOT, NOT LIVE. activate --plan run by darkwing at 2026-10-19T17:47:06Z for sage-1004 (mos-0838 D2).
|
||||
# Tool: scripts/stack-release.sh blob 4b16e848a6b9905b6a568668367bad6df5f65c7b, worktree at 6dbc673022e4ec3c22ada4a86bf4095e62269d8b.
|
||||
# Data root: /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/data (config /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/cfg/config.json). There is no store file, so the store schema
|
||||
# comes from the pointer. The pointer is HAND-WRITTEN: copy 8e7ea89a1e86447d26ec335e4b138acfd5130cbc, pm true;
|
||||
# schema 3h is that copy's SCHEMA_VERSION read with git show. claude and console are
|
||||
# placeholders, so the bus and Console lines below are not the live flags.
|
||||
# Copies: /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/copies (a scratch copy of 5fa9cc8f2c66b52408b652b59c3070f7210b44d0).
|
||||
# Command: MOSAIC_CONFIG=/home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/cfg/config.json scripts/stack-release.sh activate 5fa9cc8f2c66b52408b652b59c3070f7210b44d0 mosaic-stack --plan --copies /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/copies --bin /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/bin
|
||||
plan: activate for mosaic-stack
|
||||
from: 8e7ea89a1e86447d26ec335e4b138acfd5130cbc
|
||||
to: 5fa9cc8f2c66b52408b652b59c3070f7210b44d0
|
||||
store schema: 3h (from the pointer; there is no store file)
|
||||
target schema: 3h
|
||||
migration: none; the store is at the target's version
|
||||
commits: the run adds 78 (newest first, at most 200):
|
||||
5fa9cc8f2 webui: one settings snapshot and a names read that rethrows a refusal (row 167, #1664)
|
||||
ee3f1fb3f sessions: Filbert row 167 r1 review, approve
|
||||
0434ecfef sessions: Darkwing lines from 2026-10-16 to 2026-10-19 (rows 137, 141, 150, 87, 155, 162, 165, 166)
|
||||
81f26551b queue: row 165 r3 in-review, approvals and done, row 166 r2 in-review and Filbert approve (sage)
|
||||
cff5f31ed sessions: Sage row 165 landing
|
||||
9466f3e5e business: the human adds and changes role instances from the CLI and the Console (row 165, Q171, #1662)
|
||||
50a57e454 sessions: Filbert row 166 r2 review, approve
|
||||
7f9b976c9 sessions: Filbert row 165 r3 review, approve
|
||||
e8b09735a sessions: Sage row 156 landing
|
||||
d6a008ad2 agents/dewey: row 156 packet, round 2 (#1651)
|
||||
1cf77e466 queue: row 156 done, row 165 r2 in-review and approvals, row 166 r1 in-review and Filbert approve (sage)
|
||||
4f45cadc0 bus, cli, harness: the host starts the landing run once a merge decision is approved (row 156, #1651)
|
||||
4d92151bc sessions: Filbert row 166 r1 review, approve
|
||||
c9c8c14d4 sessions: Filbert row 165 r2 review, approve
|
||||
a618528b2 sessions: Filbert row 156 r2 review, approve
|
||||
37dbf0862 sessions: Dewey rows 156 r2 accepted, 165 r1 review, 126 packet and Mos go request
|
||||
c3cd27345 queue: row 165 r1 in-review and Filbert approve, row 156 round 2 in-review (sage)
|
||||
de34256c6 sessions: Filbert row 165 r1 review, approve
|
||||
9d6aca571 sessions: Sage queue commit 756bc1af1 rev range correction and PM standup
|
||||
756bc1af1 queue: revs 1882-1885, row 156 round 1 in-review and Filbert changes (sage)
|
||||
139e28673 sessions: Filbert row 156 r1 review, changes
|
||||
70c9131f0 queue: revs 1879-1881, row 154 round 5 approvals and done (sage)
|
||||
76e2b6e6f sessions: Sage row 154 landing
|
||||
9353675d1 webui: a WYSIWYG Markdown editor in the Console docs view, built from reviewable source (row 154, Q168, #1648)
|
||||
72c3fa598 sessions: Filbert row 154 r5 review, approve
|
||||
df078c9c4 queue: revs 1877-1878, row 154 round 5 review request posted as comment 29024 (sage)
|
||||
31788ef85 sessions: Researcher row 154 rounds 3 to 5 and Sage row 154 round 5 request, row 165 credentials ruling
|
||||
81b0041e3 agents/researcher: row 154 (#1648) packet through the d88613bac rebase round (manifest 3a4bc21c), without the five superseded 2 MB candidate.patch files (root, r2, r3, rebase-7bd2a348c, rebase-850484a7d), which stay untracked on disk
|
||||
5e2a1bc11 queue: revs 1869-1874, row 165 briefed, claimed and brief re-pinned on b3cf580a (Sage 1869-1870, 1872-1873; Darkwing 1871); 154 back to in-progress for the d88613bac round (Sage 1874)
|
||||
b8036b608 plans: row 165 brief correction, the second reviewer waits on P19 367 (mos-0823)
|
||||
d88613bac queue: revs 1866-1868, row 155 done, 167 add and briefed (sage)
|
||||
ab7889899 sessions: Sage row 155 landing
|
||||
68fc31a94 plans: brief for the Settings reads and snapshot follow-up to row 155 (Darkwing's draft, Mos's mos-0816 notes, Dewey's F1)
|
||||
53f3f29a3 sage: window plan repin-8e7ea89a1 records P2, CONSOLE_PASS on a scratch copy (mos-0819, mos-0820)
|
||||
66f9e9d0c darkwing: row 155 packet, rounds 1-3 and the follow-up brief draft (#1649)
|
||||
b2f57ca70 bus, business, harness, webui: the human and the chief of staff configure the assistant (row 155, Q169, #1649)
|
||||
197722caa queue: revs 1861-1865, row 155 r3 in review (darkwing) and confirm-only approvals (filbert, dewey)
|
||||
f74217551 sessions: Filbert row 155 r3 review, approve
|
||||
0473574b0 queue: revs 1846-1860, rows 155 r1-r2 reviews (darkwing, dewey, filbert), 162 done, 166 add and briefed (sage), 154 r4 in review (researcher)
|
||||
359adff56 sessions: Filbert row 155 r2 review, approve
|
||||
449cadd1f sessions: Filbert row 155 r1 review, approve
|
||||
7bd2a348c sessions: Sage row 162 landing
|
||||
c70f360ae plans: D1 brief item 8 re-pinned to the held or stopped store read; stack-release hardening brief (row 162 follow-up)
|
||||
f5b5aa509 sage: window plan repin-8e7ea89a1 on row 162's verbs, de352dfaf superseded (mos-0814, mos-0815)
|
||||
d132b369e darkwing: row 162 packet, rounds 1-2, scratch plans and follow-up draft (#1659)
|
||||
7e7f8e208 scripts: health-gated stack activate and rollback, stack-release.sh (row 162, D1, #1659)
|
||||
23622980f queue: revs 1838-1845, row 125 done (Sage 1838); 156 in progress (Dewey 1839); 162 r2 in review (Darkwing 1840-1842); 126 brief re-pin on 7ce156259 and briefed (Sage 1843-1844); 162 r2 Filbert approve on c213a801 (1845, comment 29004)
|
||||
6b21085c4 sessions: Filbert row 162 r2 review, approve
|
||||
7ce156259 plans: row 126 brief rewritten on Dewey's tokens.daily design after row 125 landed (#1620)
|
||||
de74dd473 sessions: Sage row 125 landing
|
||||
df4d5702f dewey: row 125 packet, rounds 1-3 (#1619)
|
||||
aa625565f bus, cli, webui: token limits per instance, model, provider and key (row 125, #1619)
|
||||
b6827d19e queue: revs 1836-1837, row 125 r3 Filbert approve on 8b71c405 (1836, comment 28996); row 162 r1 Filbert approve on 091693c5 (1837, comment 28997)
|
||||
e972b5969 sessions: Filbert row 162 r1 review, approve
|
||||
5f8e5f041 sessions: Dewey rows 125 r3, 154 r3 and 164 r2
|
||||
4c2ff00cd sessions: Filbert row 125 r3 review
|
||||
99d2b49c9 queue: revs 1828-1835, row 154 r3 Filbert approve (1828); 164 done (Sage 1829); 165 brief re-pin after Jason's Q4 (Sage 1830); 125 r3 in review (Dewey 1831-1833); 162 r1 in review (Darkwing 1834-1835)
|
||||
8e47e5e3b sessions: Sage row 164 landing, row 165 brief
|
||||
606fafd43 plans: row 165 brief, Jason's Q4 confirmation relayed (mos-0805), hold lifted
|
||||
cfde62f9f agents: Rocko row 164 r2 packet (#1661)
|
||||
008746b6e plugins: channel kind for the CLI and Console chat paths (row 164, #1661)
|
||||
e5b10d275 sessions: Filbert row 154 r3 review, approve
|
||||
27f01be2e queue: revs 1805-1827, row 164 r1 in review (Rocko 1806-1807, request by Sage 1808-1809), r1 changes (Dewey 1814), r2 in review (Rocko 1816, 1820-1821, request by Sage 1824-1825) and approve (Dewey 1826); 125 r2 in review (Dewey 1805, 1811-1812) and approve (Filbert 1815); 154 r2 changes (Filbert 1810, Dewey 1813), r3 in review (Researcher 1817-1819, request by Sage 1822-1823) and Dewey approve (1827)
|
||||
1dbf45610 sessions: Filbert row 125 r2 review, approve
|
||||
6f963fd65 sessions: Filbert row 154 r2 review, changes
|
||||
ed92e2e1e logs: correct Rocko row 164 resume stamp from recorded clock
|
||||
3d527871c docs: Rocko row 164 candidate packet and own verification logs
|
||||
370c4d897 sessions: Researcher row 154 phase 1, phase 2 and round 2 lines, row 128 mutants line (their own lines)
|
||||
5ec790f14 queue: revs 1798-1804, row 165 added queued (Sage 1798, P19 332), 154 r2 in review (Researcher 1799-1801, request posted by Sage 1803-1804), 125 r1 changes (Filbert 1802)
|
||||
7a7d7442d sessions: Filbert row 125 r1 review, changes
|
||||
ab9f23d9e docs: row brief for adding and changing role instances (P19 332, #1662); I6 brief records Jason's P19 333 ruling
|
||||
d62c61fbd logs: Rocko row 164 focused pass and full-gate fixture boundary (own lines)
|
||||
fe7eef8fb queue: revs 1791-1797, row 129 r2 approve (Filbert 1791) and done (1792), 164 claimed (Rocko 1793), 154 r1 changes (Filbert 1794, Dewey 1797), 125 r2 in review (Dewey 1795-1796)
|
||||
20b5030b5 sessions: Dewey row 125 in-review and row 154 r1 security review
|
||||
fdb1d4b34 logs: Rocko row 164 test preparation and landed reference check (own lines)
|
||||
e79ba6c94 sessions: Sage row 129 landing (850484a7d, #1623 closed)
|
||||
3cbfbaac4 sessions: Filbert row 154 r1 review (changes, comment 28954)
|
||||
850484a7d webui: Console chat area over the bus's project and thread verbs (row 129, #1623)
|
||||
bus: scripts/bus-service.sh install --copy 5fa9cc8f2c66b52408b652b59c3070f7210b44d0 --copies /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/copies --pm --claude /hand-written/no-claude-pin-read
|
||||
Console: scripts/webui-service.sh install --copy 5fa9cc8f2c66b52408b652b59c3070f7210b44d0 --copies /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/copies
|
||||
CLI: scripts/stack-copy.sh wrapper 5fa9cc8f2c66b52408b652b59c3070f7210b44d0 --copies /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/copies --bin /home/jwoltje/darkwing-scratch/r1004/plan-5fa9cc8f2/bin
|
||||
# exit 0
|
||||
@@ -0,0 +1,7 @@
|
||||
2026-10-19T17:47:16Z tool: /home/jwoltje/darkwing-scratch/r1004/wt at 6dbc673022e4ec3c22ada4a86bf4095e62269d8b, scripts/stack-release.sh blob 4b16e848a6b9905b6a568668367bad6df5f65c7b
|
||||
2026-10-19T17:47:17Z pointer: hand-written, copy 5fa9cc8f2c66b52408b652b59c3070f7210b44d0, schema 3h, pm true
|
||||
2026-10-19T17:47:17Z copy: (cd /home/jwoltje/darkwing-scratch/r1004/wt && scripts/stack-copy.sh copy ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 --copies /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/copies --allow-worktree)
|
||||
2026-10-19T17:47:18Z copy: copied: /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/copies/ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00
|
||||
2026-10-19T17:47:18Z plan: written to /home/jwoltje/darkwing-scratch/r1004/out/scratch-plan-ca15d73e9.txt
|
||||
2026-10-19T17:47:18Z files under the data root after the plan: . ./bus ./state ./state/stack-active.json
|
||||
2026-10-19T17:47:18Z removed: chmod -R u+w /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/copies/ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 && rm -rf /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/copies/ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00; left: 0 entries
|
||||
@@ -0,0 +1,30 @@
|
||||
# SCRATCH ROOT, NOT LIVE. activate --plan run by darkwing at 2026-10-19T17:47:18Z for sage-1004 (mos-0838 D2).
|
||||
# Tool: scripts/stack-release.sh blob 4b16e848a6b9905b6a568668367bad6df5f65c7b, worktree at 6dbc673022e4ec3c22ada4a86bf4095e62269d8b.
|
||||
# Data root: /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/data (config /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/cfg/config.json). There is no store file, so the store schema
|
||||
# comes from the pointer. The pointer is HAND-WRITTEN: copy 5fa9cc8f2c66b52408b652b59c3070f7210b44d0, pm true;
|
||||
# schema 3h is that copy's SCHEMA_VERSION read with git show. claude and console are
|
||||
# placeholders, so the bus and Console lines below are not the live flags.
|
||||
# Copies: /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/copies (a scratch copy of ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00).
|
||||
# Command: MOSAIC_CONFIG=/home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/cfg/config.json scripts/stack-release.sh activate ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 mosaic-stack --plan --copies /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/copies --bin /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/bin
|
||||
plan: activate for mosaic-stack
|
||||
from: 5fa9cc8f2c66b52408b652b59c3070f7210b44d0
|
||||
to: ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00
|
||||
store schema: 3h (from the pointer; there is no store file)
|
||||
target schema: 3i
|
||||
migration: 3h to 3i, after a backup of the stopped store
|
||||
migration steps: 3h to 3i
|
||||
needs: --migrate (not given; the run would roll back with migration-needs-flag)
|
||||
needs: Jason present for this run (decision 96 condition 2)
|
||||
commits: the run adds 8 (newest first, at most 200):
|
||||
ca15d73e9 limits: a daily token quota for the account the stack uses, and bus schema 3h to 3i (row 126, #1620)
|
||||
54319f552 sessions: Filbert row 126 r2 review, approve
|
||||
4c385db45 sessions: Dewey row 126 round 4 build and review rounds 1-2
|
||||
2124cfa76 queue: row 126 Filbert r1 approve, brief re-pin for 3h to 3i, row 7 week note, round 2 in-review (sage)
|
||||
e264db51b plans: row 126 brief names the 3h to 3i step and the account guard (#1620)
|
||||
1df04f52f sessions: Filbert row 126 r1 review, approve
|
||||
9e2b26866 queue: row 167 Filbert approve and done, row 126 round 1 in-review (sage)
|
||||
640a1ee97 sessions: Sage row 167 landing and row 126 3i ruling
|
||||
bus: scripts/bus-service.sh install --copy ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 --copies /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/copies --pm --claude /hand-written/no-claude-pin-read
|
||||
Console: scripts/webui-service.sh install --copy ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 --copies /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/copies
|
||||
CLI: scripts/stack-copy.sh wrapper ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 --copies /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/copies --bin /home/jwoltje/darkwing-scratch/r1004/plan-ca15d73e9/bin
|
||||
# exit 0
|
||||
@@ -84,7 +84,7 @@ takes the `revision` from a read made just before it.
|
||||
| P0 | Mos | `cd $P && grep -E ' (business-check.mjs\|console-check.sh)$' $REPO/agents/sage/work/window-plan/repin-de352dfaf/SCRIPTS.sha256 \| sha256sum -c`: two OK lines. |
|
||||
| P1 | Mos | `node $P/business-check.mjs 8e7ea89a1e86447d26ec335e4b138acfd5130cbc`: LOAD_OK. After W0, the same for NEW: LOAD_OK, `HOLDS chief instance.name yes`, `HOLDS pm instance.name no`. REFUSED stops the window. |
|
||||
| P2 | Sage | `console-check.sh $NEW` against a stub Console of NEW on a scratch port, as in the 8e7ea89a1 window. CONSOLE_PASS before the window goes to Jason. |
|
||||
| P3 | Darkwing | The scratch `--plan` for 5fa9cc8f2 with blob 4b16e848 (sage-1004), on a scratch business file that already has `"plugins": {"usage-source": ["transcript"]}`. It proves three things: the scratch `--plan` output, that the file loads under 5fa9cc8f2, and that it loads under 8e7ea89a1 as a rollback would load it (mos-0845 D3). Output in `agents/darkwing/work/queue-162/`; W3 cites the file. |
|
||||
| P3 | Darkwing | The scratch `--plan` for 5fa9cc8f2 with blob 4b16e848 (sage-1004), on a scratch business file that already has `"plugins": {"usage-source": ["transcript"]}`. It proves three things: the scratch `--plan` output, that the file loads under 5fa9cc8f2, and that it loads under 8e7ea89a1 as a rollback would load it (mos-0845 D3). Done 2026-10-19 (sage-1008 reply): `agents/darkwing/work/queue-162/scratch-plan-5fa9cc8f2.txt` (sha256 af67b254…, exit 0), `scratch-load-check.txt` (4f72f5d6…, parts 1 and 2 LOAD_OK under 5fa9cc8f2 and 8e7ea89a1) on `scratch-business-A.json` (d4c109fa…), made from the committed example file (mos-0847). |
|
||||
|
||||
## The window, Jason present
|
||||
|
||||
@@ -94,7 +94,7 @@ takes the `revision` from a read made just before it.
|
||||
| W1 | Jason, then Mos | PM-idle check. Jason: `mosaic agents --business mosaic-stack`; chief not `working`, pm not running. Mos: `mosaic launches list`. Nobody talks to the chief until W6 passes. Record `date -u +%FT%TZ` as the start stamp. Baseline reads, kept for W6: `$C_OLD names --business mosaic-stack --json` and `$C_OLD threads --business mosaic-stack --json` (both `[]` on 10-19), and `mosaic usage --business mosaic-stack --json` saved whole, for its `total` and `byRun` (U1, mos-0846). |
|
||||
| W2 | Jason | Usage source, OLD's setter. `$C_OLD plugins --business mosaic-stack --json`; note `revision`. Write PATCH as `{"revision": <that revision>, "plugins": {"usage-source": ["transcript"]}}`, then `$C_OLD plugins set --file PATCH --business mosaic-stack`. Read again: `usage-source` is `["transcript"]` and no other kind is set. A refusal ends the window with nothing stopped and nothing to undo. |
|
||||
| W2b | Mos | `node $P/business-check.mjs 8e7ea89a1e86447d26ec335e4b138acfd5130cbc` and the same for NEW, on the patched file. Both LOAD_OK. A REFUSED stops the window; undo W2 as below. |
|
||||
| W3 | Mos | `scripts/stack-release.sh activate 5fa9cc8f2c66b52408b652b59c3070f7210b44d0 mosaic-stack --plan`. Writes nothing. Its from, to, store schema, target schema, migration and needs lines must match P3's scratch output: from 8e7ea89a1, to 5fa9cc8f2, store schema 3h read from the store the running bus holds, target 3h, no migration step, no `--migrate` need, 78 commits. The bus, Console and CLI lines carry the pointer's flags; beyond those, only copy paths differ. Any other difference stops the window before W5 and goes to Mos. |
|
||||
| W3 | Mos | `scripts/stack-release.sh activate 5fa9cc8f2c66b52408b652b59c3070f7210b44d0 mosaic-stack --plan`. Writes nothing. Its from, to, store schema, target schema, migration and needs lines must match P3's scratch output: from 8e7ea89a1, to 5fa9cc8f2, store schema 3h read from the store the running bus holds, target 3h, no migration step, no `--migrate` need, 78 commits. The bus, Console and CLI lines carry the pointer's flags; beyond those, only copy paths differ. P3's store line reads `3h (from the pointer; there is no store file)`, because the scratch root has no store; the live line names the held store, and the value 3h must match. Any other difference stops the window before W5 and goes to Mos. |
|
||||
| W4 | Mos | Drop-ins: `systemctl --user show mosaic-bus@mosaic-stack.service -p DropInPaths`. The pm.conf drop-in adds `--pm` only. A drop-in that sets ExecStart or WorkingDirectory makes activate refuse `drop-in-override`; Mos ends the window. |
|
||||
| W5 | Mos, on Mos's go, Jason present | `scripts/stack-release.sh activate 5fa9cc8f2c66b52408b652b59c3070f7210b44d0 mosaic-stack --pm`. No `--migrate`. Exit 0 and a final log line `result` `ok`. Record the activation id. Exit 1 means the gate failed and the run rolled back to OLD; exit 2 means the rollback failed too: see Stop conditions. |
|
||||
| W5b | Jason | Channel, NEW's setter. `$C_NEW plugins --business mosaic-stack --json`; note `revision`. PATCH `{"revision": <that revision>, "plugins": {"channel": ["cli", "webui"]}}`, then `$C_NEW plugins set --file PATCH --business mosaic-stack`. Read again: `channel` is `["cli", "webui"]` and `usage-source` is still `["transcript"]`. |
|
||||
|
||||
@@ -51,7 +51,7 @@ after the window, with a `launch.limits.tokens.daily` entry, on Mos's go.
|
||||
| W0 | Mos | `cd $REPO && scripts/stack-copy.sh copy ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00`. Note the full id. Then P1 for NEW. |
|
||||
| W1 | Jason, then Mos | PM-idle check as Window A. Record the start stamp. Baseline reads: `$C_OLD names --business mosaic-stack --json`, `$C_OLD threads --business mosaic-stack --json` and `mosaic usage --business mosaic-stack --json` saved whole, for its `total` and `byRun` (U1, mos-0846). Nobody talks to the chief until W6 passes, so no turn writes a usage record (D3). |
|
||||
| W2 | Mos | `scripts/stack-release.sh status mosaic-stack`: pointer on 5fa9cc8f2, schema 3h, last line ok. |
|
||||
| W3 | Mos | `scripts/stack-release.sh activate ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 mosaic-stack --plan`. It must match P3 on from 5fa9cc8f2, to ca15d73e9, store schema 3h read from the store the running bus holds, target 3i, one migration step 3h to 3i, needs `--migrate`, needs Jason present, 8 commits. Any other difference stops the window before W5. |
|
||||
| W3 | Mos | `scripts/stack-release.sh activate ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 mosaic-stack --plan`. It must match P3 on from 5fa9cc8f2, to ca15d73e9, store schema 3h read from the store the running bus holds, target 3i, one migration step 3h to 3i, needs `--migrate`, needs Jason present, 8 commits. P3's `--plan` part (`scratch-plan-ca15d73e9.txt`, sha256 eb2f1694…) reads its store schema from the pointer, because that scratch root has no store; the value 3h must match. Any other difference stops the window before W5. |
|
||||
| W4 | Mos | Drop-ins, as Window A. |
|
||||
| W5 | Mos, on Mos's go, Jason present | `scripts/stack-release.sh activate ca15d73e9fdcdcf66a10f86cdedeb2d6a08f2b00 mosaic-stack --pm --migrate`. Exit 0 and a final `result` `ok`. Record the activation id and the backup path and stamp it prints. |
|
||||
| W6 | Mos | The checks below. |
|
||||
|
||||
Reference in new issue
Block a user