@maka/maka-cli 5.208.0 → 5.209.0

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maka/maka-cli",
3
- "version": "5.208.0",
3
+ "version": "5.209.0",
4
4
  "type": "module",
5
5
  "summary": "A command line tool for scaffolding Meteor 3.x applications using either React.",
6
6
  "description": "A command line tool for scaffolding Meteor 3.x applications using React.",
@@ -33,8 +33,19 @@ import { describeMarks, marksOnYou, MAX_MARKS } from '../utilities/marks.js';
33
33
  export class MarkCommand extends Command {
34
34
  static verb = 'mark';
35
35
  static description = 'The MARK LEDGER, both directions: what you hold on other icons, and what other icons hold on YOU. Not an action -- it costs nothing and bills nothing. Placing a mark is not its own action in SR5 either: a mark is what "hack <target>" (Hack on the Fly, p.240) or "force <target>" (Brute Force, p.238) leaves behind, and "unmark" scrubs one off (Erase Mark, p.239). Also "marks".';
36
- async execute() {
36
+ async execute(args = []) {
37
37
  const actor = this.actor;
38
+ // SOMEONE WHO TYPED A TARGET MEANT TO DO THE THING, and the reporter
39
+ // of f79LLqTerep4nKWcA is on record expecting exactly that ("It's
40
+ // 'hack <target>' or 'mark <target>'"). This verb used to run the
41
+ // hack for them, which is how one action ended up with two spellings
42
+ // and no way to tell them apart. Saying so costs nothing -- there is
43
+ // no action to bill -- and the ledger still prints underneath, so
44
+ // the keystroke is never simply swallowed.
45
+ const named = (args ?? []).filter(w => !/^(list|mine|marks?)$/i.test(w)).join(' ').trim();
46
+ const aimed = named.length > 0
47
+ ? `{light-blue-fg}Marking is not an action in SR5 -- a mark is what an intrusion LEAVES BEHIND. For ${named}: "hack ${named}" is Hack on the Fly (p.240, quiet) and "force ${named}" is Brute Force (p.238, loud). Neither has been run; nothing has been spent.{/light-blue-fg}\n\n`
48
+ : '';
38
49
  const held = describeMarks(this.scene, actor.name);
39
50
  const on = marksOnYou(this.scene, actor);
40
51
  // NOTHING EITHER WAY. Worth its own sentence rather than two empty
@@ -44,7 +55,7 @@ export class MarkCommand extends Command {
44
55
  const teach = actor.plane === 'matrix'
45
56
  ? ` ("hack <target>" is Hack on the Fly and "force <target>" is Brute Force -- a mark is what either one leaves behind.)`
46
57
  : '';
47
- return `No marks either way -- you hold none, and nothing holds one on you.${teach}`;
58
+ return `${aimed}No marks either way -- you hold none, and nothing holds one on you.${teach}`;
48
59
  }
49
60
  const lines = [];
50
61
  lines.push(`{light-blue-fg}YOUR MARKS -- what you hold (max ${MAX_MARKS} per icon){/light-blue-fg}`);
@@ -61,7 +72,7 @@ export class MarkCommand extends Command {
61
72
  if (on.length > 0) {
62
73
  lines.push(` {light-blue-fg}("unmark me" scrubs them one at a time, Erase Mark p.239; "reboot" and "jack out" wipe them all for free, p.242.){/light-blue-fg}`);
63
74
  }
64
- return lines.join('\n');
75
+ return aimed + lines.join('\n');
65
76
  }
66
77
  }
67
78
  //# sourceMappingURL=mark.js.map
@@ -904,5 +904,28 @@
904
904
  // no longer read; older saves carry them harmlessly. The condition
905
905
  // report drops `stance` (the site and Unity drop it in the same
906
906
  // release). REMOVED: the `stance` verb.
907
- export const ENGINE_VERSION = '1.68.0';
907
+ // 1.69.0 (2026-09-16): THE THREE THINGS WALKING THE REPORT FOUND. A real
908
+ // headless boot of f79LLqTerep4nKWcA's own path, read line by line.
909
+ // - "mark <target>" SWALLOWED THE KEYSTROKE. 1.68.0 made `mark` the
910
+ // ledger and stopped it routing into hack -- correctly -- but a
911
+ // player typing the spelling the reporter themselves expected ("It's
912
+ // 'hack <target>' or 'mark <target>'") got a ledger dump and no word
913
+ // about why nothing happened. It explains now, names both verbs
914
+ // against the target they typed, and prints the ledger underneath.
915
+ // Nothing is billed: there is no action here to spend.
916
+ // - FIVE HINTS IN hack.ts SAID "hack" WHATEVER RAN. force.ts shares
917
+ // the file, so a Brute Force answered with "hack for 2 reaches for
918
+ // the rest at once" -- the same mix-up the item is about, one layer
919
+ // in. They read this.verbName.
920
+ // - A HEADING IS NOT AN ICON. gridIcons splices a divider sentence
921
+ // between a host's icon and the icons near it; gridIconBlock's
922
+ // distance bands build names by stripping the glyph and cutting at
923
+ // " -- ", so `look` listed an icon called "and NEAR it, out on the
924
+ // open grid (not inside the host):". Pre-existing, and in the exact
925
+ // panel the report is about.
926
+ // Also: hack's no-such-target refusal and Tab's completion now read
927
+ // ONE list (utilities/nameables.ts), which is what that module always
928
+ // claimed. The refusal listed hosts only, under a sentence promising
929
+ // it had looked for a PAN and a camera too.
930
+ export const ENGINE_VERSION = '1.69.0';
908
931
  //# sourceMappingURL=engine-version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maka/maka-cli",
3
- "version": "5.208.0",
3
+ "version": "5.209.0",
4
4
  "type": "module",
5
5
  "summary": "A command line tool for scaffolding Meteor 3.x applications using either React.",
6
6
  "description": "A command line tool for scaffolding Meteor 3.x applications using React.",