Skip to content

[Fix] Kanban task board hard-gating, skill install state, gateway patch merging, and workspace canvas usability#136

Open
gsknnft wants to merge 10 commits into
iamlukethedev:mainfrom
gsknnft:feat/kanban-canvas-logs
Open

[Fix] Kanban task board hard-gating, skill install state, gateway patch merging, and workspace canvas usability#136
gsknnft wants to merge 10 commits into
iamlukethedev:mainfrom
gsknnft:feat/kanban-canvas-logs

Conversation

@gsknnft

@gsknnft gsknnft commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

Summary
This PR hardens the Claw3D Kanban/task board flow and cleans up several runtime and settings regressions.

It addresses;

Kanban board so messy with unknown task #92

It does four main things:

  1. Makes the Kanban board itself usable without TASK-MANAGER
  2. Fixes gateway/settings merge issues around queued patches and token persistence
  3. Corrects misleading skill-install UI states, especially on demo
  4. Improves the workspace canvas so task cards are readable, movable, and resizable

Why
The prior behavior mixed together:

  • board visibility
  • manual task management
  • agent task automation
  • runtime skill-install support

That caused a few bad outcomes:

  • the board/logs felt disabled when TASK-MANAGER was not installed
  • demo looked like it could install skills even though it cannot
  • queued gateway patches could clobber each other client-side
  • task nodes in the workspace canvas were too small and the earlier resize attempt broke dragging

This PR separates those concerns and makes the board honest about what is and is not available on the current runtime.

Behavior Changes

Kanban / Task Manager

  • The Kanban board and logs remain available without TASK-MANAGER
  • TASK-MANAGER is now framed as the install layer for agent task automation, not for board visibility
  • The banner now distinguishes between:
    • skills-capable connected runtime: real install CTA
    • disconnected runtime: connect first
    • unsupported runtime like demo: install unavailable
  • If TASK-MANAGER is installed and ready, the banner should disappear

Workspace Canvas

  • Task cards are larger by default
  • Existing tiny cards are clamped to a readable minimum size
  • Cards can be dragged again
  • Cards can be resized again using a dedicated resize handle
  • Dragging and resizing now use separate pointer flows instead of fighting each other

Gateway / Settings Hardening

  • Pending gateway patches in the client coordinator now merge field-by-field instead of shallow-replacing nested objects
  • Nested profiles and lastKnownGood subpatches are preserved across queued updates
  • This aligns client pending-patch behavior with the server-side mergeGatewaySettings() semantics

Runtime / Demo Honesty

  • Demo is treated as a seeded mock runtime, not a skill-install runtime
  • The UI now explains that demo can seed agents but does not implement skill installation

Files Changed

Task board / UI

Gateway / settings

What Was Fixed Specifically

1. Board hard-gating
Previously, the Kanban path behaved like the whole board was locked behind TASK-MANAGER.
Now:

  • board stays visible
  • logs stay visible
  • manual task management stays available
  • only agent automation is gated by TASK-MANAGER

2. Dead install button state
Previously, the board could show an install CTA that looked actionable even on runtimes that do not support installs.
Now:

  • the CTA only renders as a real install button when the runtime can actually install skills
  • otherwise the UI explains why installs are unavailable

3. Client-side pending gateway patch loss
Previously, multiple queued gateway patches could stomp each other because the client coordinator shallow-replaced the gateway object.
Now:

  • nested fields are merged
  • profiles merge per adapter
  • lastKnownGood merges field-by-field

4. Workspace task node usability
Previously:

  • nodes were too small
  • cards were hard to read
  • my earlier resize approach broke dragging and did not resize reliably
    Now:
  • cards have a larger minimum size
  • cards drag correctly
  • cards resize via a dedicated handle
  • old tiny nodes are clamped up to a readable baseline

Important Product Note
Demo still does not support actual skill installation.

That is intentional in the current architecture:

  • demo can seed agents
  • demo can drive the board/logs/chat
  • demo does not implement install/update skill methods

So if the desired product behavior is:

  • “demo agents should already have task-manager”

that should be handled as:

  • built-in pre-enabled demo capability

not:

  • runtime install into demo

This PR does not add built-in demo TASK-MANAGER; it makes the UI honest about the current state.

Validation
Passed:

  • pnpm --dir isolation/claw3d run typecheck
  • pnpm --dir isolation/claw3d exec vitest run tests/unit/studioSettingsCoordinator.test.ts tests/unit/studioSettings.test.ts

Follow-up Ideas
Not included in this PR, but now clearer as next steps:

  • seed demo with built-in TASK-MANAGER semantics if desired
  • brighten workspace canvas visual styling further
  • add notification/report-back UI for review/done transitions
  • add explicit saved canvas migration if you want to normalize all historical tiny nodes permanently

Short PR Summary
This PR makes the Kanban board usable without TASK-MANAGER, fixes client-side gateway patch merging, makes runtime skill-install state honest, and restores workspace task node usability with readable, draggable, resizable cards.

gsknnft and others added 5 commits April 26, 2026 12:21
- Hide system/inferred tasks by default (toggle to reveal)
- Bulk clear: "Clear system" and "Clear all" with confirmation step
- Cron jobs collapsible panel: running indicator, last/next run times
- Job completion alerts (auto-dismiss after 30s)
- fix: mergeGatewayConnectionState no longer overwrites stored token with empty string
- test: three cases covering empty/real/undefined token in lastKnownGood merge

Authored By: GSKNNFT
… Action suffix

- New Workspace tab: JSON Canvas-spec freeform board (pan/zoom, drag nodes, text/group/task nodes, SVG edges)
- New Logs tab: filterable agent event log (kind, role, text search, download, expandable rows)
- Kanban tab retained: real tasks only by default, system task filter toggle, bulk clear
- Cron job panel: collapsible, running indicator, completion alerts (auto-dismiss 30s)
- Rename all handler props to Action suffix across TaskBoardView, TaskBoardPanel, KanbanImmersiveScreen, RetroOffice3D, OfficeScreen — resolves Next.js 15 serialization warnings (TS71007)
- Wire openClawLogEntries into TaskBoardPanel logEntries prop

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…tplace and canvas logs. This includes:

- A new `skill-safe` module that defines sanitization rules, trust levels, and the main sanitization function.
- Integration of skill sanitization into the skill marketplace and canvas logs, with appropriate UI indicators for trust levels and rule violations.
- A new log file `claw3d-dev.log` to capture detailed logs for skill sanitization and related operations.
…des, resizeable, assignable to agents, review, block, todo, inprogress, close
@gsknnft gsknnft requested a review from iamlukethedev as a code owner April 28, 2026 17:07
cursoragent and others added 2 commits April 28, 2026 21:50
Co-authored-by: Luke The Dev <iamlukethedev@users.noreply.github.com>
Co-authored-by: Luke The Dev <iamlukethedev@users.noreply.github.com>
gsknnft and others added 3 commits April 28, 2026 22:28
The activeFloorIsDemo effect was calling setSelectedAdapterType("demo")
and disconnect() whenever the lobby floor was active.  Since the lobby is
the default starting floor, this ran before the auto-navigate effect and
killed OpenClaw auto-connects the moment they succeeded — leaving users
stuck in demo mode with no route back.

The lobby is a neutral starting point: keep the demo agent walking while
the app waits for a real connection, but never override the configured
adapter type or tear down a live/connecting gateway session.

Also allows the connect overlay to surface on the demo lobby when there is
a genuine reason to prompt (no lastKnownGood, failed auto-connect, manual
disconnect), since agentsLoaded=true from demo hydration was permanently
suppressing it.

Authored: GSKNNFT
…k when editing, n

o space when editing, typing task description

@batusenyuz batusenyuz left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed in Claw3D.

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.

5 participants