@appchy/jarvis 0.1.130 → 0.1.131

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin.js CHANGED
@@ -10396,7 +10396,7 @@ import { createRequire as createRequire2 } from "module";
10396
10396
  var _require = createRequire2(import.meta.url);
10397
10397
  var VERSION2 = _require("../package.json").version ?? "0.0.0";
10398
10398
  var IS_DEV = String(_require("../package.json").name ?? "").endsWith("-dev");
10399
- var SHA = "c2189aa";
10399
+ var SHA = "c50951b";
10400
10400
  var BUILT = "2026-09-12";
10401
10401
  var BUILD = SHA ?? "source";
10402
10402
  var BUILD_LABEL = `${SHA ? `${VERSION2} (${SHA}${BUILT ? ` ${BUILT}` : ""})` : `${VERSION2} (source)`}${IS_DEV ? " \u2014 development build" : ""}`;
@@ -220,14 +220,9 @@ def _shape_lint(root: Path, s: dict) -> list:
220
220
  # write, so whoever files into a full cut reads it on the spot. Epic COUNT is
221
221
  # deliberately not bounded; only the sum is.
222
222
  for v in s["versions"]:
223
- over = v.over_ceiling()
224
- if over:
225
- warns.append(
226
- f"cut {v.name}: {len(v.open_tasks())} open tasks, {over} past its "
227
- f"ceiling of {_tree.CUT_TASK_CEILING} — a reshape is owed so it does "
228
- f"not close half-built: move work to a later cut, or reshape an epic. "
229
- f"That is a person's call; an agent parks it. If the size is "
230
- f"deliberate, say why in `one_goal:` in its version.md")
223
+ note = ceiling_note(v)
224
+ if note:
225
+ warns.append(note)
231
226
 
232
227
  # 3b — a task inside an epic carrying its own plan.md. The design is settled
233
228
  # ONCE in `epic.md` §Plan; a second design doc per task is the
@@ -580,6 +575,22 @@ def lint_warnings(root: Path) -> list:
580
575
  warns += _coverage_lint(root, s)
581
576
  warns += _shape_lint(root, s)
582
577
  return warns
578
+ def ceiling_note(version) -> str:
579
+ # What a cut past its ceiling owes, in one sentence, or "" when it owes nothing.
580
+ # ONE wording for both places it is said: the board-wide warning after every write,
581
+ # and the note a filing command addresses to whoever just added to that cut, which
582
+ # is also what an agent filing over MCP is handed. Two copies of this sentence would
583
+ # be two answers to what a person is being asked to do.
584
+ over = version.over_ceiling()
585
+ if not over:
586
+ return ""
587
+ return (f"cut {version.name}: {len(version.open_tasks())} open tasks, {over} past its "
588
+ f"ceiling of {_tree.CUT_TASK_CEILING} — a reshape is owed so it does not close "
589
+ f"half-built: move work to a later cut, or reshape an epic. That is a person's "
590
+ f"call; an agent parks it. If the size is deliberate, say why in `one_goal:` in "
591
+ f"its version.md")
592
+
593
+
583
594
  def print_lint(root: Path):
584
595
  for w in lint_warnings(root):
585
596
  print(f" WARN {w}", file=sys.stderr)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appchy/jarvis",
3
- "version": "0.1.130",
3
+ "version": "0.1.131",
4
4
  "description": "Jarvis — local AI coding assistant CLI",
5
5
  "private": false,
6
6
  "type": "module",
@@ -60,13 +60,13 @@
60
60
  "@jarvis/anthropic": "1.0.0",
61
61
  "@jarvis/board": "0.1.0",
62
62
  "@jarvis/data": "0.1.0",
63
- "@jarvis/errors": "1.0.0",
64
63
  "@jarvis/logger": "1.0.0",
64
+ "@jarvis/errors": "1.0.0",
65
65
  "@jarvis/rpc": "1.0.0",
66
- "@jarvis/types": "1.0.0",
67
66
  "@jarvis/typescript-config": "1.0.0",
68
- "@jarvis/vitest-config": "1.0.0",
69
- "@jarvis/ui": "0.1.0"
67
+ "@jarvis/types": "1.0.0",
68
+ "@jarvis/ui": "0.1.0",
69
+ "@jarvis/vitest-config": "1.0.0"
70
70
  },
71
71
  "scripts": {
72
72
  "dev": "tsx watch src/bin.ts start --foreground",