@atolis-hq/wake 0.2.82 → 0.2.84

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.
@@ -89,6 +89,7 @@ export const indexHtml = `<!DOCTYPE html>
89
89
  .card-error { border-left: 3px solid #ff8f7f; }
90
90
  .chip { display: inline-block; background: #2c313a; border-radius: 4px; padding: 0.05rem 0.35rem; font-size: 0.68rem; margin-right: 0.2rem; }
91
91
  .chip-label { background: transparent; border: 1px solid #3a4150; color: #9aa2ad; margin-bottom: 0.2rem; }
92
+ .chip-meta { border: 1px solid #3a4150; color: #cbd5e1; margin-bottom: 0.2rem; }
92
93
  table { border-collapse: collapse; width: 100%; font-size: 0.8rem; }
93
94
  th, td { text-align: left; padding: 0.35rem 0.5rem; border-bottom: 1px solid #2c313a; }
94
95
  th { color: #9aa2ad; font-weight: 600; }
@@ -435,12 +436,18 @@ function renderCardSummaryNodes(item) {
435
436
  const pillClass = 'pill ' + (COND_PILL[item.condition] || 'pill-finished');
436
437
  const statsText = item.totalRuns + ' runs | ' + fmtCost(item.totalCostUsd) + ' | ' + fmtCompact(item.totalTokens) + ' tokens';
437
438
  const isFinished = item.condition === 'finished';
439
+ const displayStatus = item.displayStatus || item.lastRunStatus || item.stage;
440
+ const metaPills = [
441
+ el('span', { class: pillClass, text: displayStatus.replace(/-/g, ' ') }),
442
+ ...(item.isFrozen ? [el('span', { class: 'pill pill-frozen', text: 'Frozen' })] : []),
443
+ el('span', { class: 'chip chip-meta', text: item.workflow }),
444
+ el('span', { class: 'chip chip-meta', text: item.stage }),
445
+ ];
446
+ if (!isFinished) {
447
+ metaPills.push(el('span', { class: 'chip chip-meta', text: fmtMs(item.timeInStageMs) + ' in stage' }));
448
+ }
438
449
  return [
439
- el('div', { class: 'meta', style: 'display:flex;align-items:center;gap:0.3rem;flex-wrap:wrap;margin-top:0.2rem;' }, [
440
- el('span', { class: pillClass, text: item.condition }),
441
- ...(item.isFrozen ? [el('span', { class: 'pill pill-frozen', text: 'Frozen' })] : []),
442
- document.createTextNode('| ' + item.workflow + ' | ' + item.stage + (isFinished ? '' : ' | ' + fmtMs(item.timeInStageMs) + ' in stage')),
443
- ]),
450
+ el('div', { class: 'meta', style: 'display:flex;align-items:center;gap:0.3rem;flex-wrap:wrap;margin-top:0.2rem;' }, metaPills),
444
451
  el('div', { class: 'card-stats', text: statsText }),
445
452
  ...(nonWakeLabels.length > 0
446
453
  ? [el('div', { class: 'meta', style: 'margin-top:0.2rem;' }, nonWakeLabels.map((label) => el('span', { class: 'chip chip-label', text: label })))]
@@ -57,6 +57,9 @@ function timeInStageMs(item, now) {
57
57
  const lastChange = item.wake.stageHistory.at(-1)?.changedAt ?? item.wake.syncedAt;
58
58
  return now.getTime() - Date.parse(lastChange);
59
59
  }
60
+ function displayStatusForCard(item) {
61
+ return item.context.status ?? 'queued';
62
+ }
60
63
  function activeChildRunsForItem(item, runs, now) {
61
64
  return runs
62
65
  .filter((run) => run.workItemKey === item.workItemKey &&
@@ -145,6 +148,7 @@ export async function buildBoard(input) {
145
148
  totalRuns: runTotals.totalRuns,
146
149
  totalTokens: runTotals.totalTokens,
147
150
  totalCostUsd: runTotals.totalCostUsd,
151
+ displayStatus: displayStatusForCard(item),
148
152
  lastRunAction: lastRun?.action,
149
153
  lastRunSentinel: lastRun?.sentinel,
150
154
  lastRunStatus: lastRun?.status,
@@ -1,4 +1,5 @@
1
1
  import { waitForActiveRuns } from './stop-command.js';
2
+ import { resolveWakeVersion } from '../version.js';
2
3
  const HEALTHCHECK_WAKE_ROOT = '/tmp/wake-self-update-healthcheck';
3
4
  const START_PROCESS_CHECK_ATTEMPTS = 15;
4
5
  const START_PROCESS_CHECK_INTERVAL_MS = 1000;
@@ -97,12 +98,13 @@ export async function runSelfUpdateCommand(input) {
97
98
  };
98
99
  try {
99
100
  await input.git.checkoutTag(tag);
100
- // Matches wake sandbox build's WAKE_BUILD_TAG handling (sandbox-command.ts).
101
+ const buildVersion = input.resolveBuildVersion?.(input.repoRoot) ??
102
+ resolveWakeVersion({ repoRoot: input.repoRoot });
101
103
  await input.docker.build({
102
104
  image: newImage,
103
105
  dockerfile: input.dockerfilePath,
104
106
  contextDir: input.repoRoot,
105
- buildArgs: { WAKE_BUILD_TAG: tag },
107
+ buildArgs: { WAKE_BUILD_TAG: buildVersion },
106
108
  });
107
109
  await input.docker.update({ ...updateInput, image: newImage });
108
110
  input.logger.info('[self-update] recreated container; entrypoint will keep wake start running');
@@ -124,4 +124,4 @@ export function resolveWakeVersion(options = {}) {
124
124
  }
125
125
  return '0.1.0-dev';
126
126
  }
127
- export const wakeVersion = "gcb9a257";
127
+ export const wakeVersion = "g78f9f6b";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atolis-hq/wake",
3
- "version": "0.2.82",
3
+ "version": "0.2.84",
4
4
  "description": "Local autonomous agent control plane for software development",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {