ghostrail 0.20.1 → 0.22.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 (118) hide show
  1. package/dist/board/page.d.ts.map +1 -1
  2. package/dist/board/page.js +76 -14
  3. package/dist/board/page.js.map +1 -1
  4. package/dist/board/server.d.ts +10 -0
  5. package/dist/board/server.d.ts.map +1 -1
  6. package/dist/board/server.js +24 -0
  7. package/dist/board/server.js.map +1 -1
  8. package/dist/cli/commands.d.ts +56 -1
  9. package/dist/cli/commands.d.ts.map +1 -1
  10. package/dist/cli/commands.js +203 -20
  11. package/dist/cli/commands.js.map +1 -1
  12. package/dist/cli.d.ts.map +1 -1
  13. package/dist/cli.js +3 -1
  14. package/dist/cli.js.map +1 -1
  15. package/dist/commands/help.d.ts.map +1 -1
  16. package/dist/commands/help.js +10 -0
  17. package/dist/commands/help.js.map +1 -1
  18. package/dist/config/load.d.ts.map +1 -1
  19. package/dist/config/load.js +19 -0
  20. package/dist/config/load.js.map +1 -1
  21. package/dist/config/schema.d.ts +13 -0
  22. package/dist/config/schema.d.ts.map +1 -1
  23. package/dist/config/schema.js.map +1 -1
  24. package/dist/dashboard/page.d.ts.map +1 -1
  25. package/dist/dashboard/page.js +226 -9
  26. package/dist/dashboard/page.js.map +1 -1
  27. package/dist/dashboard/review-page.d.ts +5 -0
  28. package/dist/dashboard/review-page.d.ts.map +1 -1
  29. package/dist/dashboard/review-page.js +23 -3
  30. package/dist/dashboard/review-page.js.map +1 -1
  31. package/dist/dashboard/routes.d.ts +17 -0
  32. package/dist/dashboard/routes.d.ts.map +1 -1
  33. package/dist/dashboard/routes.js +25 -0
  34. package/dist/dashboard/routes.js.map +1 -1
  35. package/dist/dashboard/server.d.ts +29 -0
  36. package/dist/dashboard/server.d.ts.map +1 -1
  37. package/dist/dashboard/server.js +91 -2
  38. package/dist/dashboard/server.js.map +1 -1
  39. package/dist/doctor/checks.d.ts +1 -0
  40. package/dist/doctor/checks.d.ts.map +1 -1
  41. package/dist/doctor/checks.js +1 -1
  42. package/dist/doctor/checks.js.map +1 -1
  43. package/dist/doctor/probes.d.ts +19 -3
  44. package/dist/doctor/probes.d.ts.map +1 -1
  45. package/dist/doctor/probes.js +22 -27
  46. package/dist/doctor/probes.js.map +1 -1
  47. package/dist/doctor/run.d.ts.map +1 -1
  48. package/dist/doctor/run.js +17 -3
  49. package/dist/doctor/run.js.map +1 -1
  50. package/dist/factory/build.d.ts +6 -0
  51. package/dist/factory/build.d.ts.map +1 -1
  52. package/dist/factory/build.js +26 -0
  53. package/dist/factory/build.js.map +1 -1
  54. package/dist/loop/next-tick.d.ts +50 -0
  55. package/dist/loop/next-tick.d.ts.map +1 -0
  56. package/dist/loop/next-tick.js +87 -0
  57. package/dist/loop/next-tick.js.map +1 -0
  58. package/dist/loop/schedule.d.ts +11 -2
  59. package/dist/loop/schedule.d.ts.map +1 -1
  60. package/dist/loop/schedule.js +3 -1
  61. package/dist/loop/schedule.js.map +1 -1
  62. package/dist/loop/tick-log.d.ts +13 -0
  63. package/dist/loop/tick-log.d.ts.map +1 -0
  64. package/dist/loop/tick-log.js +64 -0
  65. package/dist/loop/tick-log.js.map +1 -0
  66. package/dist/publish/gh.d.ts +43 -2
  67. package/dist/publish/gh.d.ts.map +1 -1
  68. package/dist/publish/gh.js +80 -2
  69. package/dist/publish/gh.js.map +1 -1
  70. package/dist/publish/githost.d.ts +18 -1
  71. package/dist/publish/githost.d.ts.map +1 -1
  72. package/dist/publish/githost.js +13 -0
  73. package/dist/publish/githost.js.map +1 -1
  74. package/dist/publish/index.d.ts +1 -1
  75. package/dist/publish/index.d.ts.map +1 -1
  76. package/dist/publish/index.js +1 -1
  77. package/dist/publish/index.js.map +1 -1
  78. package/dist/release/index.d.ts +2 -0
  79. package/dist/release/index.d.ts.map +1 -0
  80. package/dist/release/index.js +2 -0
  81. package/dist/release/index.js.map +1 -0
  82. package/dist/release/release.d.ts +67 -0
  83. package/dist/release/release.d.ts.map +1 -0
  84. package/dist/release/release.js +193 -0
  85. package/dist/release/release.js.map +1 -0
  86. package/dist/respond/ci-fix-queue.d.ts +40 -0
  87. package/dist/respond/ci-fix-queue.d.ts.map +1 -0
  88. package/dist/respond/ci-fix-queue.js +74 -0
  89. package/dist/respond/ci-fix-queue.js.map +1 -0
  90. package/dist/respond/index.d.ts +2 -1
  91. package/dist/respond/index.d.ts.map +1 -1
  92. package/dist/respond/index.js +2 -1
  93. package/dist/respond/index.js.map +1 -1
  94. package/dist/respond/merge.d.ts.map +1 -1
  95. package/dist/respond/merge.js +17 -1
  96. package/dist/respond/merge.js.map +1 -1
  97. package/dist/respond/respond.d.ts +33 -1
  98. package/dist/respond/respond.d.ts.map +1 -1
  99. package/dist/respond/respond.js +155 -9
  100. package/dist/respond/respond.js.map +1 -1
  101. package/dist/store/events.d.ts +30 -0
  102. package/dist/store/events.d.ts.map +1 -1
  103. package/dist/store/events.js +38 -0
  104. package/dist/store/events.js.map +1 -1
  105. package/dist/store/index.d.ts +1 -1
  106. package/dist/store/index.d.ts.map +1 -1
  107. package/dist/store/index.js +1 -1
  108. package/dist/store/index.js.map +1 -1
  109. package/dist/triage/engine.d.ts +6 -2
  110. package/dist/triage/engine.d.ts.map +1 -1
  111. package/dist/triage/engine.js +6 -1
  112. package/dist/triage/engine.js.map +1 -1
  113. package/package.json +1 -1
  114. package/skill/ghostrail/SKILL.md +15 -4
  115. package/templates/code/ghostrail.toml +3 -0
  116. package/templates/code/prompts/release.md +40 -0
  117. package/templates/code/prompts/respond.md +2 -1
  118. package/templates/content/prompts/respond.md +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/config/load.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,17 @@ export interface RespondConfigSection {
87
87
  */
88
88
  everyMs?: number;
89
89
  }
90
+ /**
91
+ * Optional release stage: what "cut a release" means for this repo. Its
92
+ * prompt owns every repo-specific step (bump the version, write the
93
+ * changelog, publish, whatever else), so this section is small on purpose.
94
+ */
95
+ export interface ReleaseConfig {
96
+ /** Prompt file for the release agent. Unlike the other prompts, it is
97
+ * expected to use git itself: committing the version bump and pushing the
98
+ * tag *is* the release. */
99
+ prompt: string;
100
+ }
90
101
  /** Optional triage stage: decompose large issues into ordered sub-issues. */
91
102
  export interface TriageConfig {
92
103
  /** Prompt file for the triage agent (which writes the decomposition plan). */
@@ -173,6 +184,8 @@ export interface GhostrailConfig {
173
184
  respond?: RespondConfigSection;
174
185
  /** Optional triage stage config; `ghostrail triage` requires it. */
175
186
  triage?: TriageConfig;
187
+ /** Optional release stage config; `ghostrail release` requires it. */
188
+ release?: ReleaseConfig;
176
189
  }
177
190
  /** Default agent tool allowlist: read + write files and run shell/search only. */
178
191
  export declare const DEFAULT_ALLOWED_TOOLS: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,YAAY,+CAAgD,CAAC;AAC1E,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD,eAAO,MAAM,aAAa,0EAMhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;OAQG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,QAAQ,EAAE,cAAc,CAAC;IACzB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8HAA8H;IAC9H,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,KAAK,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,mEAAmE;AACnE,eAAO,MAAM,qBAAqB,cAAc,CAAC;AACjD,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oFAAoF;IACpF,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,oEAAoE;IACpE,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAOlD,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,mDAAmD;AACnD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB,QAAc,CAAC;AACpD,gDAAgD;AAChD,eAAO,MAAM,4BAA4B,QAAgB,CAAC;AAE1D,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,EAAE,UAWhC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAa,CAAC;AACnD,eAAO,MAAM,uBAAuB,QAAc,CAAC;AAEnD,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,oBAAoB,EAAE,WAA8B,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAU,CAAC;AAG1E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,KAAK;IACL,QAAQ;CACA,CAAC;AAkKX,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAkB3C,kFAAkF;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,mDAAmD;AACnD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,MAAM,CAAC;AACpD,gDAAgD;AAChD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAG,SAAS,CAAC;AAE1D,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;IACnB,SAAS,EAAE,EAAE,GAAG,MAAM;IACtB,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE,CAAC,GAAG,SAAS;IACzB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,oBAAoB;IACjC,oBAAoB,EAAE,8BAA8B;IACpD,cAAc,EAAE,wBAAwB;IACxC,iBAAiB,EAAE,4BAA4B;CAChD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,MAAM,CAAC;AAEnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAgB,gBAAgB,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,CAAU,CAAC;AAG1E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB;IAChB,WAAW;IACX,aAAa;IACb,KAAK;IACL,QAAQ;CACA,CAAC;AA8KX,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAoB3C,kFAAkF;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,mDAAmD;AACnD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,MAAM,CAAC;AACpD,gDAAgD;AAChD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,GAAG,SAAS,CAAC;AAE1D,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;IACnB,SAAS,EAAE,EAAE,GAAG,MAAM;IACtB,gBAAgB,EAAE,CAAC;IACnB,UAAU,EAAE,CAAC,GAAG,SAAS;IACzB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,oBAAoB;IACjC,oBAAoB,EAAE,8BAA8B;IACpD,cAAc,EAAE,wBAAwB;IACxC,iBAAiB,EAAE,4BAA4B;CAChD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,MAAM,CAAC;AAEnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAgB,gBAAgB,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/dashboard/page.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,QAwU/B,CAAC"}
1
+ {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/dashboard/page.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,QAgiB/B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { IN_PROGRESS_STATE } from "../store/events.js";
2
+ import { VERSION } from "../version.js";
2
3
  /**
3
4
  * The dashboard page. Inline, like the board's, so the package ships one file
4
5
  * and the server needs no static asset handling.
@@ -21,6 +22,7 @@ export const DASHBOARD_PAGE_HTML = `<!doctype html>
21
22
  body { font: 15px/1.5 ui-sans-serif, system-ui, sans-serif; margin: 2rem auto; max-width: 72rem; padding: 0 1rem; }
22
23
  h1 { font-size: 1.3rem; margin: 0 0 .25rem; }
23
24
  .sub { opacity: .7; margin: 0 0 1.5rem; }
25
+ .ver { opacity: .5; font-size: .6em; font-weight: 400; margin-left: .5rem; }
24
26
  .gr { border: 1px solid color-mix(in oklab, currentColor 20%, transparent); border-radius: 8px; padding: .9rem 1rem; margin-bottom: .75rem; }
25
27
  .top { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; }
26
28
  .name { font-weight: 600; }
@@ -38,6 +40,12 @@ export const DASHBOARD_PAGE_HTML = `<!doctype html>
38
40
  .row-err { font-size: 12px; color: #b3261e; margin-top: 2px; overflow-wrap: anywhere; }
39
41
  .done { color: #2a9d3a; } .failed { color: #d33; } .blocked, .abandoned { color: #d90; }
40
42
  .noop, .skipped { opacity: .6; } .muted { opacity: .6; }
43
+ .ci-failed { color: #d33; }
44
+ .fix-ci {
45
+ font: inherit; font-size: .8em; margin-left: .4rem; padding: .05rem .4rem;
46
+ border-radius: 4px; border: 1px solid currentColor; background: none; cursor: pointer;
47
+ }
48
+ .fix-ci:disabled { cursor: default; opacity: .6; }
41
49
  .twirl {
42
50
  background: none; border: none; cursor: pointer; font: inherit; padding: 0 .3rem;
43
51
  color: inherit; display: inline-block; transition: transform .15s ease;
@@ -53,8 +61,16 @@ export const DASHBOARD_PAGE_HTML = `<!doctype html>
53
61
  .merge-row { display: flex; align-items: center; gap: .5rem; }
54
62
  .merge-btn { font: inherit; }
55
63
  .merge-status { font-size: .85em; opacity: .8; }
64
+ .release-btn { font: inherit; font-size: .85em; }
65
+ .release-status { font-size: .85em; opacity: .8; }
66
+ .log-section { margin-top: .6rem; }
67
+ .log-head { display: flex; align-items: center; gap: .5rem; }
68
+ .countdown { opacity: .7; font-size: .85em; }
69
+ .log-panel { margin-top: .4rem; max-height: 30rem; overflow-y: auto; border-radius: 6px; padding: .5rem .75rem; background: color-mix(in oklab, currentColor 6%, transparent); }
70
+ .log-panel pre { white-space: pre-wrap; word-break: break-word; margin: 0; font: .85em/1.4 ui-monospace, monospace; }
71
+ .load-more { display: inline-block; margin-top: .4rem; font-size: .85em; cursor: pointer; background: none; border: none; color: inherit; text-decoration: underline; padding: 0; }
56
72
  </style>
57
- <h1>ghostrails</h1>
73
+ <h1>ghostrails <span class="ver">v${VERSION}</span></h1>
58
74
  <p class="sub">The checkbox is what <code>ghostrail start</code> should bring up. The pill beside it is what is running right now.</p>
59
75
  <div id="list">loading…</div>
60
76
  <script>
@@ -77,13 +93,71 @@ const itemLink = (r, label) =>
77
93
  // which is stable across renders; DOM ids are positional and are not.
78
94
  const expanded = new Set();
79
95
  const prStatus = new Map();
96
+ const queuedCi = new Set();
80
97
  const rowKey = (path, runId) => JSON.stringify([path, runId]);
81
98
  let latest = [];
82
99
 
100
+ // The log section's own state, keyed by ghostrail path (there is one section
101
+ // per ghostrail, not per run). Kept outside render() for the same reason
102
+ // \`expanded\` and \`prStatus\` are: it must survive the 10s poll's re-render.
103
+ const logOpen = new Set();
104
+ const logLimit = new Map();
105
+ const logData = new Map();
106
+ const LOG_PAGE = 100;
107
+
83
108
  function fmtWhen(ts) {
84
109
  return ts ? new Date(ts).toLocaleString() : "";
85
110
  }
86
111
 
112
+ // Same rule as publish/githost.ts's hasFailingCheck: at least one check has
113
+ // concluded and did not succeed. Restated here because this inline script
114
+ // cannot import that module.
115
+ function ciFailed(status) {
116
+ return !!(
117
+ status && status.available && status.state === "open" &&
118
+ (status.checks || []).some((c) => c.conclusion && c.conclusion !== "success")
119
+ );
120
+ }
121
+
122
+ // A "done" row with a still-open PR shows "ci-failed" once its live status
123
+ // confirms a failing check; every other row keeps its stored/fallback state.
124
+ function deriveState(path, r) {
125
+ if (r.state === "done" && r.prNumber !== undefined && ciFailed(prStatus.get(rowKey(path, r.runId)))) {
126
+ return "ci-failed";
127
+ }
128
+ return r.state || ${JSON.stringify(IN_PROGRESS_STATE)};
129
+ }
130
+
131
+ async function queueCiFix(path, runId, btn) {
132
+ const k = rowKey(path, runId);
133
+ if (queuedCi.has(k)) return;
134
+ btn.disabled = true;
135
+ try {
136
+ const res = await fetch(api("/api/queue-ci-fix?path=" + enc(path) + "&run=" + enc(runId)), {
137
+ method: "POST",
138
+ });
139
+ if (!res.ok) throw new Error("queue failed");
140
+ queuedCi.add(k);
141
+ render(latest);
142
+ } catch {
143
+ btn.disabled = false;
144
+ }
145
+ }
146
+
147
+ // \`tickStartedAt\` wins over any countdown: a tick that outlasts the interval is
148
+ // ordinary for an agent-backed repo, and the countdown has nothing left to say
149
+ // once it hits zero (\`specs/dashboard-log.spec.md\`, TJ-1683).
150
+ function fmtCountdown(nextTickAt, tickStartedAt) {
151
+ if (tickStartedAt !== undefined) return "ticking now";
152
+ if (nextTickAt === undefined) return "next tick: unknown";
153
+ const ms = nextTickAt - Date.now();
154
+ if (ms <= 0) return "next tick: due now";
155
+ const totalSeconds = Math.round(ms / 1000);
156
+ const m = Math.floor(totalSeconds / 60);
157
+ const s = totalSeconds % 60;
158
+ return "next tick in " + (m > 0 ? m + "m " : "") + s + "s";
159
+ }
160
+
87
161
  function gateStepsHtml(gate) {
88
162
  if (!gate || gate.length === 0) return "<div class=muted>no gate steps</div>";
89
163
  const rows = gate.map((s) =>
@@ -210,14 +284,20 @@ function runsHtml(g, gi) {
210
284
  const pr = r.prUrl
211
285
  ? "<a href='" + esc(r.prUrl) + "'" + NEWTAB + ">#" + esc(r.prNumber) + "</a>"
212
286
  : "";
213
- const state = esc(r.state || ${JSON.stringify(IN_PROGRESS_STATE)});
287
+ const state = deriveState(g.path, r);
288
+ const stateLabel = state === "ci-failed" ? "CI failed" : state;
289
+ const queued = queuedCi.has(rowKey(g.path, r.runId));
290
+ const fixCi = state === "ci-failed"
291
+ ? "<button class='fix-ci' data-path='" + esc(g.path) + "' data-run='" + esc(r.runId) + "'" +
292
+ (queued ? " disabled" : "") + ">" + (queued ? "queued" : "fix CI") + "</button>"
293
+ : "";
214
294
  const main = "<tr>" +
215
295
  "<td><button class='twirl" + (open ? " open" : "") + "' id='t-" + gi + "-" + ri + "'" +
216
296
  " aria-expanded='" + open + "' data-path='" + esc(g.path) + "' data-run='" + esc(r.runId) + "'" +
217
297
  " title='show detail'>▶</button></td>" +
218
298
  "<td class=muted>" + esc(r.runId.slice(0, 8)) + "</td>" +
219
299
  "<td>" + itemLink(r, r.title || r.itemId || "") + errLine(r) + "</td>" +
220
- "<td class='state " + state + "'>" + state + "</td>" +
300
+ "<td class='state " + esc(state) + "'>" + esc(stateLabel) + fixCi + "</td>" +
221
301
  "<td>" + esc(r.backend || "") + "</td>" +
222
302
  "<td>" + gate + "</td>" +
223
303
  "<td>" + pr + "</td>" +
@@ -230,6 +310,34 @@ function runsHtml(g, gi) {
230
310
  body + "</tbody></table>";
231
311
  }
232
312
 
313
+ // The log section: collapsed by default (\`specs/dashboard-log.spec.md\`). The
314
+ // countdown in its header is always visible, open or not; the log lines only
315
+ // render once it's expanded.
316
+ function logSectionHtml(g, gi) {
317
+ const open = logOpen.has(g.path);
318
+ const data = logData.get(g.path);
319
+ const nextTickAt = data ? data.nextTickAt : undefined;
320
+ const tickStartedAt = data ? data.tickStartedAt : undefined;
321
+ const head = "<div class='log-head'>" +
322
+ "<button class='twirl log-twirl" + (open ? " open" : "") + "' id='lt-" + gi + "'" +
323
+ " aria-expanded='" + open + "' data-path='" + esc(g.path) + "' title='show log'>▶</button>" +
324
+ "<span>log</span>" +
325
+ "<span class='countdown' data-next='" + esc(nextTickAt === undefined ? "" : nextTickAt) +
326
+ "' data-ticking='" + esc(tickStartedAt === undefined ? "" : tickStartedAt) + "'>" +
327
+ fmtCountdown(nextTickAt, tickStartedAt) + "</span></div>";
328
+ if (!open) return "<div class='log-section'>" + head + "</div>";
329
+
330
+ const lines = data ? data.lines : [];
331
+ const total = data ? data.total : 0;
332
+ const body = lines.length
333
+ ? "<div class='log-panel'><pre>" + esc(lines.join("\\n")) + "</pre></div>"
334
+ : "<div class='log-panel muted'>no log yet</div>";
335
+ const more = total > lines.length
336
+ ? "<button class='load-more' type='button' data-path='" + esc(g.path) + "'>load more</button>"
337
+ : "";
338
+ return "<div class='log-section'>" + head + body + more + "</div>";
339
+ }
340
+
233
341
  function render(ghostrails) {
234
342
  latest = ghostrails;
235
343
  const list = document.getElementById("list");
@@ -244,17 +352,26 @@ function render(ghostrails) {
244
352
  "<span class='pill'>" + esc(g.state) + "</span>" +
245
353
  "<span class='path'>" + esc(g.path) + "</span>" +
246
354
  "<a class='review' href='" + esc(api("review?path=" + enc(g.path))) + "'>review</a>" +
247
- "</div>" + runsHtml(g, gi) + "</div>"
355
+ (g.releaseEnabled
356
+ ? "<button class='release-btn' type='button' data-path='" + esc(g.path) +
357
+ "'>release</button><span class='release-status'></span>"
358
+ : "") +
359
+ "</div>" + runsHtml(g, gi) + logSectionHtml(g, gi) + "</div>"
248
360
  ).join("");
249
361
  }
250
362
 
251
- /** Fetch PR status for every expanded run that has a PR, then repaint. */
363
+ /**
364
+ * Fetch PR status for every expanded run with a PR, plus every collapsed
365
+ * "done" run with a PR (so "CI failed" can show up in the summary row without
366
+ * expanding anything), then repaint.
367
+ */
252
368
  async function refreshPrStatus() {
253
369
  const wanted = [];
254
370
  for (const g of latest) {
255
371
  for (const r of g.runs) {
256
372
  const k = rowKey(g.path, r.runId);
257
- if (r.prNumber !== undefined && expanded.has(k)) wanted.push([k, g.path, r.runId]);
373
+ if (r.prNumber === undefined) continue;
374
+ if (expanded.has(k) || r.state === "done") wanted.push([k, g.path, r.runId]);
258
375
  }
259
376
  }
260
377
  if (!wanted.length) return;
@@ -269,6 +386,25 @@ async function refreshPrStatus() {
269
386
  render(latest);
270
387
  }
271
388
 
389
+ /**
390
+ * Fetch the countdown (and, for an expanded section, the log lines) for every
391
+ * ghostrail on the page. A collapsed section asks for \`limit=0\`, so a
392
+ * ghostrail nobody has expanded costs a small JSON reply, not a log dump.
393
+ */
394
+ async function refreshLogs() {
395
+ if (!latest.length) return;
396
+ await Promise.all(latest.map(async (g) => {
397
+ const limit = logOpen.has(g.path) ? (logLimit.get(g.path) ?? LOG_PAGE) : 0;
398
+ try {
399
+ const res = await fetch(api("/api/log?path=" + enc(g.path) + "&limit=" + limit));
400
+ if (res.ok) logData.set(g.path, await res.json());
401
+ } catch {
402
+ // Leave whatever was last known. A dropped poll is not new information.
403
+ }
404
+ }));
405
+ render(latest);
406
+ }
407
+
272
408
  function toggle(path, runId, buttonId) {
273
409
  const k = rowKey(path, runId);
274
410
  if (expanded.has(k)) expanded.delete(k);
@@ -281,6 +417,24 @@ function toggle(path, runId, buttonId) {
281
417
  if (expanded.has(k)) refreshPrStatus();
282
418
  }
283
419
 
420
+ function toggleLog(path, buttonId) {
421
+ if (logOpen.has(path)) {
422
+ logOpen.delete(path);
423
+ } else {
424
+ logOpen.add(path);
425
+ if (!logLimit.has(path)) logLimit.set(path, LOG_PAGE);
426
+ }
427
+ render(latest);
428
+ const btn = document.getElementById(buttonId);
429
+ if (btn) btn.focus();
430
+ if (logOpen.has(path)) refreshLogs();
431
+ }
432
+
433
+ function loadMoreLog(path) {
434
+ logLimit.set(path, (logLimit.get(path) ?? LOG_PAGE) + LOG_PAGE);
435
+ refreshLogs();
436
+ }
437
+
284
438
  async function postMerge(path, runId, button) {
285
439
  const status = button.parentElement.querySelector(".merge-status");
286
440
  button.disabled = true;
@@ -299,31 +453,79 @@ async function postMerge(path, runId, button) {
299
453
  }
300
454
  }
301
455
 
456
+ async function postRelease(path, button) {
457
+ const status = button.nextElementSibling;
458
+ button.disabled = true;
459
+ if (status) status.textContent = "queuing…";
460
+ try {
461
+ const res = await fetch(api("/api/release?path=" + enc(path)), { method: "POST" });
462
+ const data = await res.json();
463
+ if (!res.ok || data.queued !== true) throw new Error(data.error || res.statusText);
464
+ if (status) status.textContent = "queued — the next watch tick will cut it";
465
+ } catch (err) {
466
+ if (status) status.textContent = "failed: " + err.message;
467
+ } finally {
468
+ button.disabled = false;
469
+ }
470
+ }
471
+
302
472
  const list = document.getElementById("list");
303
473
 
304
474
  list.addEventListener("click", (e) => {
475
+ // Checked before the generic \`.twirl\` below: a log section's twirl carries
476
+ // both classes, and it has no \`data-run\` for \`toggle\` to key on.
477
+ const logTwirlBtn = e.target.closest(".log-twirl");
478
+ if (logTwirlBtn) {
479
+ toggleLog(logTwirlBtn.dataset.path, logTwirlBtn.id);
480
+ return;
481
+ }
305
482
  const twirlBtn = e.target.closest(".twirl");
306
483
  if (twirlBtn) {
307
484
  toggle(twirlBtn.dataset.path, twirlBtn.dataset.run, twirlBtn.id);
308
485
  return;
309
486
  }
487
+ const loadMoreBtn = e.target.closest(".load-more");
488
+ if (loadMoreBtn) {
489
+ loadMoreLog(loadMoreBtn.dataset.path);
490
+ return;
491
+ }
310
492
  const mergeBtn = e.target.closest(".merge-btn");
311
- if (mergeBtn) postMerge(mergeBtn.dataset.path, mergeBtn.dataset.run, mergeBtn);
493
+ if (mergeBtn) {
494
+ postMerge(mergeBtn.dataset.path, mergeBtn.dataset.run, mergeBtn);
495
+ return;
496
+ }
497
+ const releaseBtn = e.target.closest(".release-btn");
498
+ if (releaseBtn) {
499
+ postRelease(releaseBtn.dataset.path, releaseBtn);
500
+ return;
501
+ }
502
+ const fixCi = e.target.closest(".fix-ci");
503
+ if (fixCi) queueCiFix(fixCi.dataset.path, fixCi.dataset.run, fixCi);
312
504
  });
313
505
 
314
506
  list.addEventListener("change", async (e) => {
315
507
  const t = e.target;
316
508
  if (!t.matches("input[type=checkbox]")) return;
509
+ const wanted = t.checked;
510
+ const before = !wanted;
511
+ // Undo the browser's own flip before anything else runs: nothing is true
512
+ // until the server confirms it, so the box shows the old value, not the
513
+ // clicked one, for the whole width of the request.
514
+ t.checked = before;
515
+ t.indeterminate = true;
516
+ t.disabled = true;
317
517
  try {
318
518
  const res = await fetch(api("/api/watch"), {
319
519
  method: "POST",
320
520
  headers: { "content-type": "application/json" },
321
- body: JSON.stringify({ path: t.dataset.path, watch: t.checked }),
521
+ body: JSON.stringify({ path: t.dataset.path, watch: wanted }),
322
522
  });
323
523
  if (!res.ok) throw new Error((await res.json()).error || res.statusText);
324
524
  render((await res.json()).ghostrails);
325
525
  } catch (err) {
326
- t.checked = !t.checked;
526
+ t.indeterminate = false;
527
+ t.disabled = false;
528
+ t.checked = before;
327
529
  alert("could not update: " + err.message);
328
530
  }
329
531
  });
@@ -334,12 +536,27 @@ async function load() {
334
536
  if (!res.ok) throw new Error((await res.json()).error || res.statusText);
335
537
  render((await res.json()).ghostrails);
336
538
  await refreshPrStatus();
539
+ await refreshLogs();
337
540
  } catch (err) {
338
541
  document.getElementById("list").innerHTML = '<p class="err">' + esc(err.message) + "</p>";
339
542
  }
340
543
  }
341
544
  load();
342
545
  setInterval(load, 10000);
546
+ // Ticks every countdown down by one second between polls, without touching
547
+ // anything else on the page (no re-fetch, no re-render of the log or run
548
+ // tables, so an open log panel's scroll position and an in-flight "load
549
+ // more" are both left alone).
550
+ setInterval(() => {
551
+ for (const el of document.querySelectorAll(".countdown")) {
552
+ const raw = el.getAttribute("data-next");
553
+ const ticking = el.getAttribute("data-ticking");
554
+ el.textContent = fmtCountdown(
555
+ raw ? Number(raw) : undefined,
556
+ ticking ? Number(ticking) : undefined,
557
+ );
558
+ }
559
+ }, 1000);
343
560
  </script>
344
561
  `;
345
562
  //# sourceMappingURL=page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/dashboard/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAqMA,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmInE,CAAC"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/dashboard/page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAwDC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAuDrB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAibtD,CAAC"}
@@ -9,6 +9,11 @@
9
9
  * The detail rendering (gate steps, artifacts, PR status) intentionally mirrors
10
10
  * `page.ts`'s: same information, same shape, because this is the same detail
11
11
  * panel shown one run at a time instead of behind a twirl.
12
+ *
13
+ * Prev/Next pages through runs that need a person's attention, not every run
14
+ * in the ghostrail's history: `needsAction` mirrors the pure predicate of the
15
+ * same name in `src/store/events.ts` (see `specs/review-needs-action.spec.md`
16
+ * for the full rule and why each case belongs on its side of it).
12
17
  */
13
18
  export declare const REVIEW_PAGE_HTML: string;
14
19
  //# sourceMappingURL=review-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-page.d.ts","sourceRoot":"","sources":["../../src/dashboard/review-page.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,QAiP5B,CAAC"}
1
+ {"version":3,"file":"review-page.d.ts","sourceRoot":"","sources":["../../src/dashboard/review-page.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,QAgQ5B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { IN_PROGRESS_STATE } from "../store/events.js";
1
+ import { IN_PROGRESS_STATE, TRIAGE_RUN_KIND } from "../store/events.js";
2
2
  /**
3
3
  * The review-mode page: one ghostrail's runs, one at a time, with Prev/Next.
4
4
  *
@@ -10,6 +10,11 @@ import { IN_PROGRESS_STATE } from "../store/events.js";
10
10
  * The detail rendering (gate steps, artifacts, PR status) intentionally mirrors
11
11
  * `page.ts`'s: same information, same shape, because this is the same detail
12
12
  * panel shown one run at a time instead of behind a twirl.
13
+ *
14
+ * Prev/Next pages through runs that need a person's attention, not every run
15
+ * in the ghostrail's history: `needsAction` mirrors the pure predicate of the
16
+ * same name in `src/store/events.ts` (see `specs/review-needs-action.spec.md`
17
+ * for the full rule and why each case belongs on its side of it).
13
18
  */
14
19
  export const REVIEW_PAGE_HTML = `<!doctype html>
15
20
  <meta charset="utf-8">
@@ -65,7 +70,18 @@ const NEWTAB = " target='_blank' rel='noopener noreferrer'";
65
70
  const itemLink = (r, label) =>
66
71
  r.url ? "<a href='" + esc(r.url) + "'" + NEWTAB + ">" + esc(label) + "</a>" : esc(label);
67
72
 
73
+ // Mirrors \`needsAction\` in src/store/events.ts: whether a row is something a
74
+ // person should look at right now, not a run still going or one an automated
75
+ // pass already resolved on its own. See specs/review-needs-action.spec.md.
76
+ function needsAction(r) {
77
+ if (!r.state) return false;
78
+ if (r.state === "skipped") return false;
79
+ if (r.kind === ${JSON.stringify(TRIAGE_RUN_KIND)} && r.state === "noop") return false;
80
+ return true;
81
+ }
82
+
68
83
  let runs = [];
84
+ let hadAnyRuns = false;
69
85
  let index = 0;
70
86
  let name = "";
71
87
  const prStatus = new Map();
@@ -170,7 +186,9 @@ function render() {
170
186
  const body = document.getElementById("body");
171
187
  if (runs.length === 0) {
172
188
  nav.hidden = true;
173
- body.innerHTML = "<p class=none>no runs yet</p>";
189
+ body.innerHTML = hadAnyRuns
190
+ ? "<p class=none>nothing needs your attention right now</p>"
191
+ : "<p class=none>no runs yet</p>";
174
192
  return;
175
193
  }
176
194
  nav.hidden = false;
@@ -241,7 +259,9 @@ async function load() {
241
259
  if (!res.ok) throw new Error((await res.json()).error || res.statusText);
242
260
  const data = await res.json();
243
261
  name = data.name || "";
244
- runs = data.runs || [];
262
+ const all = data.runs || [];
263
+ hadAnyRuns = all.length > 0;
264
+ runs = all.filter(needsAction);
245
265
  const wanted = params.get("run");
246
266
  const found = wanted ? runs.findIndex((r) => r.runId === wanted) : -1;
247
267
  index = found >= 0 ? found : 0;
@@ -1 +1 @@
1
- {"version":3,"file":"review-page.js","sourceRoot":"","sources":["../../src/dashboard/review-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA4HC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqHjE,CAAC"}
1
+ {"version":3,"file":"review-page.js","sourceRoot":"","sources":["../../src/dashboard/review-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA4Db,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA2EjB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHjE,CAAC"}
@@ -16,10 +16,16 @@ export type DashboardRoute = {
16
16
  kind: "prStatus";
17
17
  } | {
18
18
  kind: "artifact";
19
+ } | {
20
+ kind: "queueCiFix";
19
21
  } | {
20
22
  kind: "runs";
21
23
  } | {
22
24
  kind: "merge";
25
+ } | {
26
+ kind: "release";
27
+ } | {
28
+ kind: "log";
23
29
  } | {
24
30
  kind: "notfound";
25
31
  };
@@ -65,6 +71,17 @@ export declare function parseDetailQuery(params: URLSearchParams, key: "run" | "
65
71
  * that would join it onto a directory.
66
72
  */
67
73
  export declare function parseArtifactHash(params: URLSearchParams): string | undefined;
74
+ /** The most `/api/log` will ever return in one request, whatever `limit` asks for. */
75
+ export declare const MAX_LOG_LIMIT = 2000;
76
+ /**
77
+ * The `limit` query param for `/api/log`: how many of the most recent log
78
+ * lines to return, oldest first. Absent, non-numeric, negative, or
79
+ * non-integer all mean `0` — the collapsed section's request, which still
80
+ * wants `nextTickAt` and `total` but no line content. A supplied value is
81
+ * clamped to {@link MAX_LOG_LIMIT}, so a malformed or hostile value can't
82
+ * force an unbounded read.
83
+ */
84
+ export declare function parseLogLimit(params: URLSearchParams): number;
68
85
  /**
69
86
  * True when a request looks cross-origin, which the write route refuses.
70
87
  *
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/dashboard/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGrD;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAoBpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIzF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,KAAK,GAAG,MAAM,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAM7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAI7E;AA2BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAYxE;AAOD;;;;;;GAMG;AACH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAY3F"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/dashboard/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGrD;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAuBpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIzF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,KAAK,GAAG,MAAM,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAM7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAI7E;AAED,sFAAsF;AACtF,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAM7D;AA2BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAYxE;AAOD;;;;;;GAMG;AACH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAY3F"}