4.7 KiB
Slice 1 Handoff Notes
Date: 2026-07-27
Branch: master at cfdb2efc7
PR: #19 (merged)
What was built
Core product loop
- Conversation to Signal to proposed Work with exact source provenance.
- Convex owns durable data:
conversationMessages,signals,works,workEvents. - Effect validation in
@code/work-ospackage. - Flue agent (
packages/agents/src/agents/zopu.ts) routes actionable messages through Signal/Work tools. - Slice-one tools at
packages/agents/src/tools/slice-one.ts. - Mobile-first UI at
apps/web/src/components/slice-one/slice-one-page.tsx.
Model
- MiMo V2.5 (
xiaomi/mimo-v2.5) via Cheaptricks AI gateway. - Provider identity
xiaomigives Flue correct multimodal metadata (text + image). AGENT_MODEL_BASE_URLpoints at Cheaptricks; API key in.env.- Context window 1,048,576; max output tokens 131,076.
thinkingLevel: "medium".
Reasoning traces
- Native Flue
reasoningparts render as live "Thinking trace" (open while streaming, collapsed after). - Inline
<think>...</think>extraction for models that embed thinking in text. - No fallback that hides model output.
Image attachments
- Picker button + hidden file input, up to 4 images at 10 MB each.
- Base64 conversion into Flue
AgentPromptImage. - Authenticated blob-URL rendering for historical image replay.
- Verified live: MiMo read exact text and background color from generated test images.
Mobile keyboard fix
- Visual viewport hook (
use-visual-viewport.ts). - Fixed full-screen shell;
interactive-widget=resizes-contentin viewport meta. - Header stays pinned; chat shrinks; composer follows keyboard.
- Regression tests in
frontend-regressions.test.tsanduse-visual-viewport.test.ts.
Rendering
- Streamdown markdown streaming with Mermaid chart support.
- Tool turns hidden; reasoning-containing tool turns remain visible.
- Work cards render inline in the conversation timeline with source navigation.
Deployment
- Cheaptricks staging live at
https://zopu.cheaptricks.puter.wtf. - Caddy reverse proxy:
/api/*to Flue (port 3585), root to web (port 5173). server.allowedHosts: trueinapps/web/vite.config.tsfor Caddy domain.- Convex
SITE_URLset tohttps://zopu.cheaptricks.puter.wtf. - Both processes running via
nohupon Cheaptricks (PIDs 416955 and 418726). - Deployment notes at
docs/deployment.md.
Repository cleanup
- 17 stale worktrees removed (Codex, Paseo, T3).
- 23 stale local branches deleted.
- 18 stale remote branches deleted.
- 6 stale PRs closed (#1, #10, #11, #12, #13, #15).
- 8 stale issues closed (#4, #5, #6, #7, #8, #9, #14, #17).
- 0 open PRs, 0 open issues.
Current state
Running
- Cheaptricks: web on
:5173, Flue on:3585, both persistent vianohup. - Local Mac: servers stopped. Run
bun run dev:tailscale:agents -- --port 3585andbun run dev:tailscale:webto start.
Git
masteratcfdb2efc7on local, Cheaptricks, and remote.- Only
masterbranch locally. Two remote branches remain:origin/sai/changes,origin/t3code/explore-primitives-package(not cleaned because they may be owned by other contributors/tools).
Known issues and next steps
-
Convex SITE_URL is single-valued. Switch it when moving between local and staging:
cd packages/backend npx convex env set SITE_URL 'http://100.101.157.28:5173' # local npx convex env set SITE_URL 'https://zopu.cheaptricks.puter.wtf' # staging -
MiMo latency is ~14-20 seconds per turn. This is model-side thinking time, not transport. Streaming works correctly; first reasoning token arrives live. Consider a faster model or lower
thinkingLevelif latency becomes a product problem. -
Audio/video input not wired. MiMo supports audio and video per its spec, but the composer only accepts images. Adding audio/video would require extending
use-chat-images.ts, the file inputacceptattribute, and the FlueAgentPromptImagetype if it does not already cover those media types. -
Two remote branches remain.
origin/sai/changesandorigin/t3code/explore-primitives-packagewere left because they may be owned by other tools. Delete withgit push origin --delete sai/changes t3code/explore-primitives-packageif safe. -
Convex schema and functions are deployed to the dev deployment
befitting-dalmatian-161. No pending migrations. -
.envis gitignored on both machines. Seedocs/deployment.mdfor the exact templates.
Slice 2 preview
Per docs/slices.md, Slice 2 is "Work Definition and approval" - turning proposed Work into approved Work with structured definitions, acceptance criteria, and the approval flow. The Convex works.ts schema and @code/work-os primitives are already in place to build on.