unitbob 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -84,6 +84,11 @@ export function writeSuitePackets(projectRoot, request) {
84
84
  if (bytes === undefined) {
85
85
  const refusal = refused.get(sourceFile);
86
86
  target.note = refusal.note;
87
+ // The size travels even when the contents do not, so spec 37-3 can weigh
88
+ // this entrypoint. `packet` stays unset: there is still nothing to open
89
+ // under the packets folder, and every reader keys off that, not off size.
90
+ if (refusal.bytes !== undefined)
91
+ target.bytes = refusal.bytes;
87
92
  count(notes, refusal.kind);
88
93
  continue;
89
94
  }
@@ -292,6 +297,7 @@ function copyPacket(projectRoot, sourceFile) {
292
297
  return {
293
298
  note: `${sourceFile} is ${stat.size.toLocaleString('en-US')} bytes, over the ${MAX_PACKET_BYTES.toLocaleString('en-US')}-byte packet fuse — open it at that path instead`,
294
299
  kind: 'over the packet fuse — the path travels instead',
300
+ bytes: stat.size,
295
301
  };
296
302
  }
297
303
  // The bytes we actually wrote, not the size we saw a moment ago.
@@ -215,6 +215,11 @@ export function validateWorkerPlanFiles(projectRoot) {
215
215
  // The neighbours stay for the opposite reason: naming a capability the request
216
216
  // never assigned, or naming one twice, are ways a plan is wrong rather than
217
217
  // ways it is narrow. So is an empty plan for a branch that was given work.
218
+ // Measured over the ids this plan actually took, never over the whole
219
+ // assignment. The packets are built before anybody chooses a scope, and since
220
+ // spec 37-3 criterion 2 both branches may be narrowed — so weighing the whole
221
+ // assignment against the width of a narrowed plan would compare two different
222
+ // jobs and refuse the narrow one for being narrow.
218
223
  for (const [branch, expected] of expectedByBranch) {
219
224
  const items = plan.workers.filter((item) => item && typeof item === 'object' && !Array.isArray(item) && item.branch === branch);
220
225
  if (expected.length > 0 && items.length === 0)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unitbob",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "description": "Unitbob connector — thin local hands for the Unitbob Rails brain. Owns no domain logic: it runs tools, relays bytes over the wire, and prints what the server returns.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -21,7 +21,7 @@ markers, or paths. Do not edit production code, host-owned shared files, the
21
21
  connector-owned harness, or another slice.
22
22
 
23
23
  After every owned edit, run
24
- `npx -y --loglevel=error unitbob@0.7.0 run-local <branch>` and inspect the machine
24
+ `npx -y --loglevel=error unitbob@0.7.2 run-local <branch>` and inspect the machine
25
25
  report. Look only at examples or scenarios matching your owned paths or case
26
26
  markers. Do not require a green exit code from the whole branch: foreign failures
27
27
  and an already-confirmed product red do not widen your scope. Repeat the bounded