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 rebasing onto the latest develop, Drizzle regenerated the goal timestamp migration as 0044_majestic_lockjaw.sql after 0043_nifty_payback.sql; its executable SQL adds only tasks.goal_started_at and tasks.goal_ended_at.

Verification passed: 89 focused web tests across the goal panel, session refresh, prompt input, placement, persistence, non-goal, and transcript surfaces; 18 DB goal and migration-integrity tests; web and DB TypeScript; web ESLint; formatting; migration application and regeneration checks; diff checks; and the full pre-push oxlint, web/worker lint, fast workspace typechecks, and knip gates. Browser visual proof is not applicable to this maintenance-only rebase and migration repair because no UI implementation changed during the follow-up.

@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
@roomote-roomote

roomote-roomote Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

Rebased and repaired in fcc0f1db.

The branch now sits on the latest develop, and Drizzle regenerated the additive nullable goal timestamp migration as 0044_majestic_lockjaw.sql. Its SQL adds only tasks.goal_started_at and tasks.goal_ended_at; the 0044 snapshot points to 0043, the journal chain is strictly ordered and unique, and the obsolete colliding 0039 goal artifacts are absent.

Verification passed: migration application and regeneration integrity, 18 DB tests, 89 focused web tests, DB and web TypeScript, web ESLint, formatting, diff checks, and all pre-push gates. Browser visual proof is not applicable to this maintenance-only rebase and migration repair because no UI implementation changed during the follow-up.

@roomote-roomote
roomote-roomote Bot force-pushed the feature/goal-mode-visibility-0kjd2v06jtvev branch from a1aba1e to fcc0f1d Compare August 17, 2026 14:16
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