loki-mode 9.72.0 → 9.73.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.
Files changed (68) hide show
  1. package/SKILL.md +2 -2
  2. package/VERSION +1 -1
  3. package/autonomy/completion-council.sh +20 -3
  4. package/dashboard/__init__.py +1 -1
  5. package/dashboard/static/index.html +48 -48
  6. package/docs/INSTALLATION.md +1 -1
  7. package/docs/v10/BOARD.md +43 -43
  8. package/loki-ts/dist/loki.js +2 -2
  9. package/mcp/__init__.py +1 -1
  10. package/package.json +1 -1
  11. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  12. package/web-app/dist/assets/{AdminPage-DSGXcnR9.js → AdminPage-B11jqriL.js} +1 -1
  13. package/web-app/dist/assets/{Avatar-BzKgYbPS.js → Avatar-vmIEiL2U.js} +1 -1
  14. package/web-app/dist/assets/{Badge-D7IV8fCI.js → Badge-DxtrDGcl.js} +1 -1
  15. package/web-app/dist/assets/{Button-BtZtsVmf.js → Button-BiPlRkkg.js} +1 -1
  16. package/web-app/dist/assets/{CockpitPage-Bh_KE2W9.js → CockpitPage-DXKAc0jc.js} +1 -1
  17. package/web-app/dist/assets/{ComparePage-BoIN52_0.js → ComparePage-B4ddvt9J.js} +1 -1
  18. package/web-app/dist/assets/{ErrorBoundary-DFtJl7OU.js → ErrorBoundary-BIJy59N_.js} +1 -1
  19. package/web-app/dist/assets/{EvidenceReceiptPanel-B8PMx1El.js → EvidenceReceiptPanel-C4-Phh1f.js} +1 -1
  20. package/web-app/dist/assets/{GitHubIssuesPanel-BQTpIC7Z.js → GitHubIssuesPanel-CVIG0uwi.js} +1 -1
  21. package/web-app/dist/assets/{GitHubPRsPanel-3sCeuTr1.js → GitHubPRsPanel-B_VHTB-t.js} +1 -1
  22. package/web-app/dist/assets/{HomePage-D6-3wjI4.js → HomePage-cxONjTSm.js} +2 -2
  23. package/web-app/dist/assets/{LoginPage-CU3Mx-d-.js → LoginPage-D49p6aVy.js} +1 -1
  24. package/web-app/dist/assets/{MagicPage-DzfcQSzS.js → MagicPage-C5GUEIuM.js} +1 -1
  25. package/web-app/dist/assets/{MetricsPage-DpnfqYW8.js → MetricsPage-I-OXi9kG.js} +1 -1
  26. package/web-app/dist/assets/{NotFoundPage-BtVVYFq7.js → NotFoundPage-Do19cbOP.js} +1 -1
  27. package/web-app/dist/assets/{ProjectPage-BaOPrdxG.js → ProjectPage-TRyzTIFH.js} +3 -3
  28. package/web-app/dist/assets/{ProjectsPage-c79Knint.js → ProjectsPage-BLSDhtVb.js} +1 -1
  29. package/web-app/dist/assets/{SettingsPage-DojLML_x.js → SettingsPage-BvixtAw7.js} +1 -1
  30. package/web-app/dist/assets/{ShowcasePage-3F53w-Sp.js → ShowcasePage-By96BMJz.js} +1 -1
  31. package/web-app/dist/assets/{SystemSettingsPage-BxeFJwt4.js → SystemSettingsPage-AvVujpIo.js} +1 -1
  32. package/web-app/dist/assets/{TeamsPage-CHA0HuWY.js → TeamsPage-BiT3N4px.js} +1 -1
  33. package/web-app/dist/assets/{TemplatesPage-CnDQ-KFh.js → TemplatesPage-Y_m-dzfd.js} +1 -1
  34. package/web-app/dist/assets/{TerminalOutput-VmO52cMY.js → TerminalOutput-oPTCcEGy.js} +1 -1
  35. package/web-app/dist/assets/{activity-vZCshJM0.js → activity-DCa9Pi7k.js} +1 -1
  36. package/web-app/dist/assets/{bell-BxRFgtqf.js → bell-Br7Xsjam.js} +1 -1
  37. package/web-app/dist/assets/{bot-SHNpokFd.js → bot-BsQKlSP5.js} +1 -1
  38. package/web-app/dist/assets/{check-CAYEkTkW.js → check-Cb49hCzQ.js} +1 -1
  39. package/web-app/dist/assets/{chevron-left-Dm6SOUPc.js → chevron-left-Cs63FOmY.js} +1 -1
  40. package/web-app/dist/assets/{circle-alert-HPEKCt1i.js → circle-alert-C8A636Wl.js} +1 -1
  41. package/web-app/dist/assets/{clock-b69SYSxv.js → clock-DhlnHjQI.js} +1 -1
  42. package/web-app/dist/assets/{cloud-rpBEl6db.js → cloud-uOYQxGRY.js} +1 -1
  43. package/web-app/dist/assets/{code-xml-BiySzxEs.js → code-xml-9O9XlVo9.js} +1 -1
  44. package/web-app/dist/assets/{database-YQhBvS_C.js → database-D9Oek2JS.js} +1 -1
  45. package/web-app/dist/assets/{dollar-sign-BFXsvdVi.js → dollar-sign-CHetUBPR.js} +1 -1
  46. package/web-app/dist/assets/{file-code-corner-DvWqbYRN.js → file-code-corner-oTJV_ce4.js} +1 -1
  47. package/web-app/dist/assets/{file-plus-DGq3HAu7.js → file-plus-vuloOqQB.js} +1 -1
  48. package/web-app/dist/assets/{globe-8LZ1qpNX.js → globe-DMVdf8bk.js} +1 -1
  49. package/web-app/dist/assets/{hammer-COs1axEr.js → hammer-15WRQJ1o.js} +1 -1
  50. package/web-app/dist/assets/{index-DX1bd46M.js → index-SRKz3Imw.js} +2 -2
  51. package/web-app/dist/assets/{layers-Cdf9Vwe0.js → layers-C-QQQP9K.js} +1 -1
  52. package/web-app/dist/assets/{loader-circle-ShwFKNSv.js → loader-circle-DqoJevCK.js} +1 -1
  53. package/web-app/dist/assets/{lock-BfbeK72G.js → lock-B68yfqau.js} +1 -1
  54. package/web-app/dist/assets/{package-BQa5Hscq.js → package-DAxTtm-S.js} +1 -1
  55. package/web-app/dist/assets/{plus-BTFF6T_O.js → plus-BSbdI5QI.js} +1 -1
  56. package/web-app/dist/assets/{refresh-cw-CN7NPez3.js → refresh-cw-DlvFuI3J.js} +1 -1
  57. package/web-app/dist/assets/{rotate-ccw-D0c1s7z6.js → rotate-ccw-BF03pKE0.js} +1 -1
  58. package/web-app/dist/assets/{scroll-text-7r82F3ag.js → scroll-text-QFZ1JdTD.js} +1 -1
  59. package/web-app/dist/assets/{server-g7Dgm8VB.js → server-tyIvmSke.js} +1 -1
  60. package/web-app/dist/assets/{shield-alert-DA4JgSeJ.js → shield-alert-DHeqbtBK.js} +1 -1
  61. package/web-app/dist/assets/{thumbs-up-B9nl24v9.js → thumbs-up-CRag1Tn5.js} +1 -1
  62. package/web-app/dist/assets/{trash-2-D1_LooXF.js → trash-2-B0n4x-Ds.js} +1 -1
  63. package/web-app/dist/assets/{trending-down-a8VELF9U.js → trending-down-DC4Aqzso.js} +1 -1
  64. package/web-app/dist/assets/{trending-up-BXEafWW0.js → trending-up-DFG157ke.js} +1 -1
  65. package/web-app/dist/assets/{upload-FBwFJdt-.js → upload-BdWQ4cWx.js} +1 -1
  66. package/web-app/dist/assets/{usePolling-C2vYaczh.js → usePolling-DMgD-dJ5.js} +1 -1
  67. package/web-app/dist/assets/{user-DTXNLcfG.js → user-DXaZeAe4.js} +1 -1
  68. package/web-app/dist/index.html +1 -1
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: loki-mode
3
3
  description: Autonomous spec-driven build system with a built-in trust layer. It does not call work done until it is verified (RARV-C closure loop, 8 quality gates, completion council, verified-completion evidence gate). Triggers on "Loki Mode". Takes a spec (PRD, GitHub issue, OpenAPI doc, etc.) to deployed product with minimal human intervention. Provider-agnostic. Requires --dangerously-skip-permissions flag.
4
4
  ---
5
5
 
6
- # Loki Mode v9.72.0
6
+ # Loki Mode v9.73.0
7
7
 
8
8
  **You are an autonomous agent. You make decisions. You do not ask questions. You do not stop.**
9
9
 
@@ -470,4 +470,4 @@ See `CHANGELOG.md` entries [7.5.7], [7.5.8], [7.5.13] for the per-fix list and r
470
470
 
471
471
  ---
472
472
 
473
- **v9.72.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~410 lines core**
473
+ **v9.73.0 | [Autonomi](https://www.autonomi.dev/) flagship product | ~410 lines core**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 9.72.0
1
+ 9.73.0
@@ -3742,11 +3742,19 @@ except (json.JSONDecodeError, IOError, KeyError, ValueError):
3742
3742
  runner = d.get('runner', 'none')
3743
3743
  passed = d.get('pass')
3744
3744
  status = d.get('status', '')
3745
+ # S-157 (BACKLOG 89): same failed-count rule as council_evidence_gate. A
3746
+ # numeric failed_count above zero is a failure whatever pass says; legacy
3747
+ # numeric failed is the fallback; null, missing or a bool is unmeasured.
3748
+ def _count(v):
3749
+ return v if isinstance(v, (int, float)) and not isinstance(v, bool) else None
3750
+ failed_n = _count(d.get('failed_count'))
3751
+ if failed_n is None:
3752
+ failed_n = _count(d.get('failed'))
3745
3753
  if status == 'no_tests_run':
3746
3754
  print('inconclusive:%s' % runner)
3747
3755
  elif runner == 'none':
3748
3756
  print('pass:none')
3749
- elif passed is False:
3757
+ elif passed is False or (failed_n or 0) > 0:
3750
3758
  print('fail:%s' % runner)
3751
3759
  elif passed is not True:
3752
3760
  print('inconclusive:%s' % runner)
@@ -4602,9 +4610,18 @@ runner = d.get('runner', 'none')
4602
4610
  passed = d.get('pass')
4603
4611
  # Affirmative green requires a REAL suite (runner != none) that recorded a
4604
4612
  # boolean True pass. A missing/null/non-boolean pass key or a zero-test run
4605
- # (status no_tests_run) is inconclusive, which is not green.
4613
+ # (status no_tests_run) is inconclusive, which is not green. S-157 (BACKLOG
4614
+ # 98): a recorded failure count above zero is never green, by the same rule
4615
+ # as council_evidence_gate (numeric failed_count wins, legacy numeric failed
4616
+ # is the fallback, null/missing/bool is unmeasured).
4617
+ def _count(v):
4618
+ return v if isinstance(v, (int, float)) and not isinstance(v, bool) else None
4619
+ failed_n = _count(d.get('failed_count'))
4620
+ if failed_n is None:
4621
+ failed_n = _count(d.get('failed'))
4606
4622
  print('yes' if (runner != 'none' and passed is True
4607
- and d.get('status') != 'no_tests_run') else 'no')
4623
+ and d.get('status') != 'no_tests_run'
4624
+ and (failed_n or 0) <= 0) else 'no')
4608
4625
  " 2>/dev/null || echo "no")
4609
4626
  [ "$tr_state" = "yes" ] || return 1
4610
4627
 
@@ -7,7 +7,7 @@ Modules:
7
7
  control: Session control API (start/stop/pause/resume)
8
8
  """
9
9
 
10
- __version__ = "9.72.0"
10
+ __version__ = "9.73.0"
11
11
 
12
12
  # Expose the control app for easy import
13
13
  try: