@hanzlaa/rcode 4.8.0 → 4.9.1

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.
Files changed (41) hide show
  1. package/AGENTS.md +1 -1
  2. package/CONTRIBUTING.md +3 -0
  3. package/README.md +7 -5
  4. package/cli/doctor.js +4 -2
  5. package/cli/github-sync.js +26 -17
  6. package/cli/install.js +59 -34
  7. package/cli/lib/namespace-migrate.cjs +62 -4
  8. package/cli/migrate-namespace.js +4 -0
  9. package/dist/rcode.js +207 -207
  10. package/package.json +1 -1
  11. package/rcode/agents/rcode-code-reviewer.md +1 -1
  12. package/rcode/agents/rcode-docs-auditor.md +1 -1
  13. package/rcode/agents/rcode-edge-case-hunter.md +1 -1
  14. package/rcode/agents/rcode-security-adversary.md +1 -1
  15. package/rcode/agents/rcode-security-auditor.md +1 -1
  16. package/rcode/agents/rcode-sprint-checker.md +1 -1
  17. package/rcode/agents/rcode-verifier.md +1 -1
  18. package/rcode/bin/lib/brain.cjs +16 -1
  19. package/rcode/bin/lib/gitignore.cjs +3 -5
  20. package/rcode/bin/rcode-hooks.cjs +22 -5
  21. package/rcode/bin/rcode-tools.cjs +166 -14
  22. package/rcode/data/intent-table.json +1 -1
  23. package/rcode/references/git-preflight.md +5 -2
  24. package/rcode/references/output-format.md +5 -5
  25. package/rcode/workflows/add-phase.md +33 -14
  26. package/rcode/workflows/do.md +33 -1
  27. package/rcode/workflows/execute-sprint.md +3 -4
  28. package/rcode/workflows/execute-waves.md +25 -32
  29. package/rcode/workflows/execute.md +80 -21
  30. package/rcode/workflows/init.md +28 -6
  31. package/rcode/workflows/plan-research-validation.md +10 -5
  32. package/rcode/workflows/plan-spawn-planner.md +9 -13
  33. package/rcode/workflows/plan.md +2 -2
  34. package/rcode/workflows/scaffold-skill.md +19 -1
  35. package/rcode/workflows/scan.md +22 -1
  36. package/rcode/workflows/secure-phase.md +7 -1
  37. package/rcode/workflows/validate-phase.md +7 -1
  38. package/server/lib/html/client/components/Sidebar.js +8 -5
  39. package/server/lib/html/client/views/PhasesView.js +1 -1
  40. package/server/lib/html/css.js +4 -0
  41. package/server/lib/scanner.js +4 -1
@@ -91,7 +91,7 @@ function PhaseDetail({ phase: p, S }) {
91
91
  <div class="attr-grid">
92
92
  <${AttrItem} label="Status" value=${html`<${Chip} status=${p.status}/>`}/>
93
93
  <${AttrItem} label="Sprints" value=${sps.length}/>
94
- <${AttrItem} label="Tasks Done" value=${done + '/' + stories.length}/>
94
+ <${AttrItem} label="Tasks Done" value=${stories.length ? (done + '/' + stories.length) : 'no tasks tracked'}/>
95
95
  <${AttrItem} label="Progress" value=${pct(done, stories.length)}/>
96
96
  ${p.completed_at ? html`<${AttrItem} label="Completed" value=${humanDate(p.completed_at)}/>` : null}
97
97
  </div>
@@ -2651,6 +2651,8 @@ footer {
2651
2651
  overflow: hidden;
2652
2652
  text-overflow: ellipsis;
2653
2653
  white-space: nowrap;
2654
+ min-width: 0;
2655
+ flex-shrink: 1;
2654
2656
  }
2655
2657
  .orch-term-dock-live {
2656
2658
  display: inline-flex;
@@ -2661,6 +2663,7 @@ footer {
2661
2663
  color: var(--green);
2662
2664
  font-family: var(--font-mono);
2663
2665
  white-space: nowrap;
2666
+ flex-shrink: 0;
2664
2667
  }
2665
2668
  .orch-term-dock-live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--green); }
2666
2669
  .orch-term-dock-stop {
@@ -2675,6 +2678,7 @@ footer {
2675
2678
  cursor: pointer;
2676
2679
  font-family: var(--font-sans);
2677
2680
  margin-left: var(--space-2);
2681
+ flex-shrink: 0;
2678
2682
  }
2679
2683
  .orch-term-dock-stop:hover { opacity: 0.85; }
2680
2684
  .orch-term-dock-body {
@@ -269,6 +269,9 @@ function buildDashboard(state) {
269
269
  : (Array.isArray(raw.phases) ? raw.phases : []);
270
270
 
271
271
  // ---- phases (superset: rich phaseTree + contract range/state) ----
272
+ // Sorted numerically by phase number — state.json array order reflects
273
+ // insertion order (when a phase entry was appended), not phase sequence,
274
+ // so an inserted-late phase like 13 would otherwise render after 38/39/42/43.
272
275
  const phases = tree.map(p => {
273
276
  const started = p.started || p.created || null;
274
277
  const completed = p.completed || p.completed_at || null;
@@ -276,7 +279,7 @@ function buildDashboard(state) {
276
279
  ? [fmtShort(started), fmtShort(completed)].filter(Boolean).join(' – ')
277
280
  : '';
278
281
  return { ...p, name: p.name || p.slug || String(p.id || ''), range, state: toState(p.status) };
279
- });
282
+ }).sort((a, b) => (parseFloat(a.id ?? a.number) || 0) - (parseFloat(b.id ?? b.number) || 0));
280
283
 
281
284
  // ---- progress (prefer story counts; fall back to phase-level counts) ----
282
285
  let completed = 0, total = 0, inProg = 0;