create-egregore 0.18.3 → 0.18.4

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,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // egregore-launcher-version: 0.5.17
2
+ // egregore-launcher-version: 0.5.18
3
3
  //
4
4
  // egregore — launch and browse Egregore instances from your terminal.
5
5
  // Installed by create-egregore. Reads ~/.egregore/instances.json.
@@ -30,7 +30,7 @@ const https = require("node:https");
30
30
  const { spawnSync, spawn } = require("node:child_process");
31
31
  const readline = require("node:readline");
32
32
 
33
- const VERSION = "0.5.17";
33
+ const VERSION = "0.5.18";
34
34
  const REGISTRY = path.join(os.homedir(), ".egregore", "instances.json");
35
35
  const DEFAULT_FILE = path.join(os.homedir(), ".egregore", "default");
36
36
  const PUBLIC_NPX_PACKAGE = "create-egregore";
@@ -1338,6 +1338,10 @@ function renderRuntimePanel({ inst, cursor, width, height }) {
1338
1338
  const desc = runtimeChoiceDescription(runtime, inst, stored);
1339
1339
  lines.push(boxLine(`${marker} ${pad(labelText, 16)} ${DIM}${desc}${RESET}`, innerWidth, margin));
1340
1340
  }
1341
+ // Coming-soon harnesses — shown for visibility, not selectable yet.
1342
+ for (const soon of ["Hermes", "Pi"]) {
1343
+ lines.push(boxLine(`${DIM}· ${pad(soon, 16)} coming soon${RESET}`, innerWidth, margin));
1344
+ }
1341
1345
 
1342
1346
  lines.push(emptyBoxLine(innerWidth, margin));
1343
1347
  lines.push(boxLine(`${DIM}↑↓ navigate · enter select · 1-${runtimes.length} quick select · esc back · q quit${RESET}`, innerWidth, margin));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-egregore",
3
- "version": "0.18.3",
3
+ "version": "0.18.4",
4
4
  "description": "Set up Egregore for your team in one command — installs the egregore launcher and your choice of Claude Code or Codex.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -154,6 +154,26 @@ wait $API_PID $GIT_PID $LOCAL_PID 2>/dev/null || true
154
154
  # --- Read results ---
155
155
  PRS=$(cat "$TMPDIR/prs.json" 2>/dev/null || echo "[]")
156
156
  echo "$PRS" | jq . >/dev/null 2>&1 || PRS="[]"
157
+
158
+ # Resolve PR author GitHub logins -> egregore display names. `gh pr list` returns
159
+ # the raw github login (e.g. "fcdagdelen"); without this it leaks into activity
160
+ # instead of the person's display name ("cem"). Map via the graph when connected;
161
+ # fall back to the github profile name, then the login. Author becomes a string.
162
+ if [ -n "$PRS" ] && [ "$PRS" != "[]" ]; then
163
+ AUTHOR_MAP='{}'
164
+ if [ -n "$API_URL" ] && [ -n "$API_KEY" ]; then
165
+ MAP_RAW=$(bash "$SCRIPT_DIR/bin/graph.sh" query \
166
+ "MATCH (p:Person) WHERE p.github IS NOT NULL RETURN p.github AS gh, p.name AS name" 2>/dev/null)
167
+ AUTHOR_MAP=$(printf '%s' "$MAP_RAW" | jq -c \
168
+ 'reduce (.values[]?) as $v ({}; .[($v[0]|ascii_downcase)] = $v[1])' 2>/dev/null || echo '{}')
169
+ fi
170
+ PRS=$(printf '%s' "$PRS" | jq -c --argjson map "$AUTHOR_MAP" '
171
+ map(
172
+ (if (.author|type)=="object" then .author else {login: (.author|tostring), name: null} end) as $a
173
+ | .author = ([$map[(($a.login // "") | ascii_downcase)], $a.name, $a.login]
174
+ | map(select(. != null and . != "")) | first // "unknown")
175
+ )' 2>/dev/null || printf '%s' "$PRS")
176
+ fi
157
177
  DISK_HANDOFFS=$(cat "$TMPDIR/disk_handoffs.txt" 2>/dev/null || echo "")
158
178
  DISK_DECISIONS=$(cat "$TMPDIR/disk_decisions.txt" 2>/dev/null || echo "")
159
179
  LOCAL_SESSIONS=$(cat "$TMPDIR/local_sessions.json" 2>/dev/null || echo '{"my_sessions":[],"team_sessions":[]}')