Skip to content

Redesign the web workspace; rooms work as a group-chat bot crew - #47

Open
Robert0622 wants to merge 1 commit into
platform-integrationfrom
ui-redesign
Open

Robert0622 wants to merge 1 commit into
platform-integrationfrom
ui-redesign

Conversation

@Robert0622

Copy link
Copy Markdown
Collaborator

Stacked on #46. Redesigns the LoopForge web workspace and turns rooms into a group-chat bot crew, following the Grok-bot model.

Positioning

LoopForge is your AI delivery team:

  • Home is the PM. You describe the work. Once the requirement is clear, it suggests who should take it:
    • an SOP: a fixed process with gated steps, for work with a strict, known procedure;
    • the room's bot crew: open-ended work where bots split it up and hand off.
  • Rooms are where bots work in public. Ask @LoopForge a question or hand it work. The captain pulls in role bots, each posts its result and hands off to the next, and people can step in at any time.
  • SOPs are the safety net. A crew that worked well can be saved as a draft SOP and rerun as a fixed process.

What changed

Home

  • The launch card offers "交给 SOP" or "交给群聊 Bot", with the assistant's recommendation and reason (assistantLaunch.mode / modeReason).
  • The SOP pickers now list the platform templates (通用模板) in their own group.
  • Recent runs collapse a crew's step runs into one entry.

Rooms (web/rooms.js, internal/httpapi/room_crew.go, room_ask.go)

  • @LoopForge <question> gets an answer built from the room's history, the quoted message and the status of the room's tasks. Without a model key it still answers status questions and explains what it can do.
  • @LoopForge <task> starts a crew mission:
    • The planner uses AI, or falls back to name-weighted rules.
    • The plan is proposed and can be edited (改分工) before 开工.
    • Each step runs as a hidden one-node workflow through the normal dispatchIssue path, so runs, logs and approvals are unchanged.
    • The issue is reopened between steps, because each successful run closes delivery.
  • The bot only speaks when spoken to:
    • Replying to a bot, or @某个 Bot, adds a step for that bot.
    • Replying to a mission adds a requirement for the next bot.
    • When a step is stuck, any message unblocks it.
    • Plain chatter is ignored.
  • Messages can quote an earlier one: hover, click 回复, and click the quote to jump back. Bot replies show a typing state while they are being written. The process pane (执行过程) shows each step's brief, output and handoff.
  • A finished crew can be saved as a draft SOP (sop-<mission>).

Flow designer

  • Drag blank canvas to pan (middle button works anywhere, shift+wheel scrolls sideways).
  • The canvas leaves room for the floating properties panel, so the last node is reachable.

Everywhere else

  • New sidebar hubs: 首页 / 交付 / 群聊 / 构建 / 洞察 / 平台 / 设置.
  • A new design layer in web/design.css (tokens --lf-*, light and dark), plus zh/en (web/i18n.js, web/i18n-en.js).

Status

  • Passing locally: go vet ./..., go test ./internal/... ./web/... and the API e2e (go test -tags e2e ./e2e).
  • Two new unit tests: TestCrewPlanRulesSplitsRolesByName and TestCrewWantsAnswerSplitsQuestionsFromWork.
  • Playwright suite is not updated. Locally 25 of 40 tests fail and 4 do not run. They target the old layout: old sidebar entries such as .nav[data-view="runs"], old page controls and the old onboarding tour. Updating them to the new hubs is the first follow-up.

Follow-ups for whoever picks this up

  1. Update e2e/tests/*.spec.js to the new hubs and pages (VIEW_TABSETS in web/app.js maps hubs to views).
  2. Grok-bot parity still missing:
    • streamed answers, instead of a pending message that is filled in at the end;
    • individual bots answering questions when @-mentioned outside a mission;
    • reactions;
    • image and file understanding in rooms;
    • a periodic room digest.
  3. Product polish not yet redone: the flow inspector content, plus the projects, metrics, observability, runners and settings pages.
  4. Clean up the old CSS layers (product-v3.css, product-v4.css, platform.css) that design.css currently overrides with !important.

To try it: run in demo mode, open 群聊, and type @LoopForge 调研一下需求列表加负责人筛选的实现方案. The two demo bots (需求分析, 开发实现) run on the mock executor, so no model key is needed.

The home chat acts as the PM: once a requirement is clear it offers to hand
the work to an SOP (fixed process, gated steps) or to a group-chat bot crew
(open-ended work). The SOP picker now lists the platform templates too.

Rooms follow the group-chat bot model. "@loopforge" answers a question from
the room's context or starts a crew mission; the captain splits the work
across role bots, hands each bot's output to the next one, and reports in
the room. People steer by talking: replying to a bot or "@某个 Bot" adds a
step, replying to a mission adds a requirement, any message unblocks a
stuck step, and plain chatter is left alone. Messages can quote an earlier
one, and a pending bot reply shows as typing. A finished crew can be saved
as a draft SOP. Each step runs as a hidden one-node workflow through the
normal dispatch path, so runs, logs and approvals work unchanged; the issue
is reopened between steps because each successful run closes delivery.

The flow canvas pans by dragging blank space (or shift+wheel) and leaves
room for the floating properties panel. Sidebar, home, flow designer, role
studio, assets and rooms share one design layer (design.css) with zh/en.

UI structure tests follow the new hubs (交付/构建/洞察/平台/设置). The
Playwright suite still targets the old layout and is not updated yet.
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