Skip to content

[Improve] Show durable goal status above the task composer - #1341

Draft
roomote-roomote[bot] wants to merge 8 commits into
developfrom
feature/goal-mode-visibility-0kjd2v06jtvev
Draft

[Improve] Show durable goal status above the task composer#1341
roomote-roomote[bot] wants to merge 8 commits into
developfrom
feature/goal-mode-visibility-0kjd2v06jtvev

Conversation

@roomote-roomote

@roomote-roomote roomote-roomote Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

​Opened on behalf of @daniel-lxs. View the task or mention @roomote-roomote for follow-up asks.

What changed

  • Show the durable current goal as one compact horizontal status item immediately above the composer: lifecycle icon, bold status, inline objective, separator, and adjacent duration.
  • Keep long objectives on one truncating line with full text available through the existing tooltip treatment and native title.
  • Use the same compact pattern for active, complete, blocked, and continuation-limit states. Legacy terminal goals without lifecycle timestamps show compact N/A text with an accessible Duration unavailable label instead of clipping narrow screens.
  • Preserve persisted goal objective/status/timestamps, live elapsed timing, terminal frozen timing, TodoList placement, and non-goal behavior without transcript decorations, prompt parsing, or inferred state.

Why this change was made

The previous durable panel used a tall two-row card treatment that visually separated the objective and pushed timing away from the status. Product feedback called for one grouped inline treatment that stays compact above the composer while retaining strong persisted lifecycle state.

Impact

Users see the latest goal as one scan-friendly line directly above the composer, with the objective and elapsed or final duration kept together. Long objectives truncate gracefully, terminal states use the same structure, and tasks without goals remain unchanged.

The lifecycle migration remains additive and nullable for N-1 rollback compatibility. After merging the latest develop, the goal timestamp migration was regenerated as 0039_clever_malice after the Brain migration at 0038.

Verification passed: 30 focused web tests across the panel, placement, persistence, non-goal, and transcript surfaces; web TypeScript; web ESLint; DB TypeScript; formatting; diff checks; and pre-push oxlint, web/worker lint, fast workspace typechecks, and knip.

Screenshots

Desktop task showing one compact active goal row with spinner, bold Pursuing goal status, inline objective, separator, and live elapsed time directly above the composer

@roomote-community

roomote-community Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Comment thread apps/web/src/app/(sandbox)/task/[taskId]/Messages.tsx Outdated
@roomote-roomote

roomote-roomote Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

Fixed in 3bab689. Null-generation optimistic goals now render as active and refresh durable state instead of inheriting the prior terminal result; the previous completed, blocked, or continuation-limit marker remains visible as history.

Verification: focused transcript test 27/27 passed; web typecheck, lint, format check, diff check, and pre-push oxlint/residual lint/fast typechecks/knip passed. Updated browser proof was unavailable because the configured local preview timed out before and after one bounded restart.

@roomote-roomote

roomote-roomote Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor Author

Final compact-layout revision: ddc60966, with narrow-screen fallback in a1aba1ed.

The durable GoalPanel is now one grouped horizontal status item immediately above the composer: lifecycle icon, bold status, inline truncating objective with tooltip/title, bullet, and adjacent elapsed or final duration. Active, complete, blocked, and continuation-limit states share the same compact structure, and legacy terminal goals without timestamps use accessible N/A timing so the long continuation-limit label remains visible on narrow screens.

The implementation retains persisted objective/status/timestamps, live active timing, terminal frozen timing, TodoList placement, and non-goal behavior. It does not restore transcript UI, prompt parsing, or inferred state.

The branch was merged with current develop; the migration-number conflict was resolved by retaining Brain migration 0038 and regenerating the additive goal timestamp migration as 0039_clever_malice.

Verification: 30 focused web tests passed; web and DB TypeScript passed; web ESLint, formatting, and diff checks passed; pre-push oxlint, residual web/worker lint, fast workspace typechecks, and knip passed.

Current desktop proof: compact active goal row above the composer.

@roomote-roomote roomote-roomote Bot changed the title [Improve] Show goal mode throughout task history [Improve] Show durable goal status above the task composer Aug 15, 2026
Comment thread apps/web/src/app/(sandbox)/task/[taskId]/prompt-input/PromptInput.tsx Outdated
Comment thread apps/web/src/app/(sandbox)/task/[taskId]/GoalPanel.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant