Add branch setup implementation plan
12-task sequential plan covering kamo-shared-library, SecurityService, and kamo-internal changes end-to-end.
Add branch setup design spec
Covers the full feature from kamo-shared-library schema changes through SecurityService session/endpoint changes to kamo-internal UI and API proxy.
Eliminate OTK Redis overhead and proxy log noise for message fetches
- Bypass OTK generation in the MediaService proxy route: forward the *** cookie directly instead of generating a one-time key, removing 4 Redis round-trips ...
チャットメッセージの読み込み性能を向上させる
- Cache getCurrentMemberId() は、繰り返された /api/user-info を避けるために ref の結果 すべてのWebSocketメッセージとタイピングインジケーターの呼び出し - Promise.all でメッセージ履歴 fetch と user-info fetch を並列化します...
Resolve horizontal overlap, follower blind spot, and timing bugs
- flyToHomeRow: compute per-follower actual dx extents to derive rightBuffer/leftBuffer independently, placing anchor correctly to prevent ring followers from...
ビューボックスの作物を介してSVGに保存されたサイズのスライダーズーム
Avatar Creatorの内部スケール変換は、SVG内のアバターボディをズーム キャンバス、しかし効果は小さい表示サイズ(例えばaで含んでいます)で浸透性です 140x140 アバターコンポーネント プレビューは冗長CSSを使っていました 変換: scale() は zoom を表示していますが、CSS は決してそ...
アバタープレビューから冗長CSSスケール変換を削除します
Avatar Creatorのスケールオプションは、SVGグループとして既にスケール(N/100)を適用しています。 アバターボディを変形させます。 プレビューコンテナも適用されました CSS の変形: スケール(N/100)、効果(2.5 の × 2.5 = 6.25x の混合 250%). これは、プレビューは大幅...
MakeRoom およびポストドックの衝突の決断を実装して下さい
No-op の hexheads:makeRoom のリスナーを実際のハンドラで置き換えます 新しいツールウィンドウの DOM の rect の後に resolveCollisions を実行する 安定しています。 リスナーリークを修正(匿名で、クリーンアップしません)。 また、wrapperAroundDockの後に...
ノンサップの低下およびswaarmの後で衝突を解決して下さい
非スナップドロップで、ポジションを節約する前に、requireCollisionsを実行します。 右下隅にスタッキングを防止します。 Swarmの低下はまた resolveCollisions を実行し、正しく永続的な位置を持続させます.
FlyToHomeRowのグループウェアスロット幅
グループは現在、水平スロットをフォロワーに比例して保持 リング範囲(正しいフラットトップの軸式を使用して)、グループを防ぐ 隣接するアンカーのスペースを侵入するフォロワー。 また、 配置後の安全網として二重rAFの解決衝突は渡します.
解決を追加するCollisions useCallback
ヘッドツーヘッドとヘッドツーツールウィンドウの空間違反を検出 オフエンドヘッドを最も近い清潔な位置に動かして下さい スパイラルサーチ 読書を避けるために二重rAFによって呼ばれなければならない ミッドアニメーションモーションバリューポジション.
Add MIN GAP定数とスパイラル検索ヘルパー
5px の最小ギャップ invariant 定数とスパイラル検索を追加 最も近いコリジョンフリーピクセル位置を見つける機能 ヘッド・ツー・ヘッドおよびヘッド・ツー・ツール窓の整理を点検する六角頭.
Hexhead の衝突の修正の実装計画を加えて下さい
5-task プラン カバー: SpiralSearch ヘルパー、requireCollisions useCallback、 グループウェア FlyToHomeRow、onUp 非スナップ/スワーム配線、makeRoom/ wrapAroundDock イベントハンドラの修正.
Z-index DOM のソートを削除し、クリックイベントがフォーカスを落とすのを防ぐ
ToolDock の zIndex でウィンドウをソートすると、DOM ノードがすべてのノードで再配置されました。 フォーカスイベント(マウスダウン) ブラウザは、そのターゲット要素がクリックイベントをドロップする マウスダウンとマウスアップの間を移動し、2つ目のクリックでボタンをアクティブにします。 CSS z-in...
Add hexhead collision fixes design spec
Spec covers three hexhead UX bugs: horizontal bottom-row vertex overlap, bottom-right stacking when dropping without snap, and hexheads ending up behind tool wi...
Bake background color/gradient into saved Avatar Creator avatar SVG
Avatar Creator generates transparent-background SVGs by default. The background was only applied as a CSS wrapper on the preview container, so the stored MinIO ...
Dispatch member-panel-toggle via useEffect to avoid stale Framer Motion closure
onAnimationStart/Complete hold the last rendered props, so the exit animation always saw isOpen=true and windows never relayed to the right on close. Using a us...
Correct member-panel-toggle event property so tool windows respect panel offset
The event was dispatching `{ isOpen }` but ToolWindowsContext read `detail.open`, causing memberPanelOpenRef to always be falsy and the 500px panel offset to ne...
Eliminate hexhead spawn overlap by computing unique column positions
Each head now initialises its MotionValue at its own home-row column X and below the viewport (h + SIZE), then springs up to its final slot. Previously all head...
Use inline style for icon colors to prevent CSS specificity override
sx-generated color classes were being overridden by Tab card context styles. Switching color to inline style prop ensures icons always render with the correct c...
Prevent overflow:hidden on tab card from clipping status widget
Move overflow:hidden from the Card to the Tabs wrapper Box so scrollable tabs are contained but the right-aligned status/substatus widget remains fully visible.
Correct hexhead geometry, z-index layering, and viewport clamping
- Fix axialToPixel to use flat-top hex formula (was pointy-top) so honeycomb aligns flat-edge to flat-edge as the hex SVG shape requires - Fix generateRing to...
Add status/substatus widget to lead view tab bar
- Extract LEAD_STATUS_TYPES, getStatusIcon, getSubStatusIcon to shared app/lib/leadStatuses.tsx utility; update LeadManager to import from it - Add inline sta...
Rewrite HexHead system with framer-motion physics
Replace the broken 1800-line HexHeadGroup with a clean physics-based implementation using framer-motion springs and motion values. Key changes: - Remove wiggle...
Use Next.js client-side navigation for all MUI Link components
MUI Link without component={NextLink} renders as a plain <a> tag, causing full page reloads that reset all React state including tool windows. Added component={...
Replace window.location hard navigations with router.push/refresh
All window.location.href, window.location.assign(), and window.location.reload() calls in page components caused full page reloads, wiping all React state inclu...
Flat-top honeycomb layout, 5px gaps, cluster-aware groups, tool window relayout
HexHeadGroup: - Switch to flat-top hex geometry (HEX_INRADIUS/HEX_STEP) — hexes now share flat top/bottom edges with adjacent group members, giving a proper h...
Move ToolDock above auth gate to prevent tool window wipe on navigation
PresenceWrapper switches its component tree structure when auth resolves (Fragment > children → ChatWebSocketProvider > PresenceProvider > children). This unmou...
