Commit Graph
67 Commits
Author SHA1 Message Date
David KayaandCopilot fa1fba7b97 docs: add user-facing readme
Create a product-focused README for people using Kopaya, keep the copy high-level, and feature the app logo prominently at the top.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 21:43:00 +01:00
David KayaandCopilot 4719ebb9d5 chore: refresh app icons
Update the Electron icon wiring to use the new assets/icons layout, remove the old app-icon files, and keep Windows packaging pointed at the new platform-specific ico.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 21:40:08 +01:00
David KayaandCopilot da72e49f2c feat: add Electron app icon
Move the root logo into app assets, wire the Electron main window to use the branded icon, and stamp the packaged Windows executable icon with rcedit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 21:15:40 +01:00
David KayaandCopilot ead9b293dc docs: mark git-aware context as complete in roadmap
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 20:19:26 +01:00
David KayaandCopilot c888c9fb9b feat: surface git context in sidebar and chat header
- Add GitContextBadge to sidebar ProjectGroup showing branch name,
  dirty indicator, and ahead/behind counts for real projects
- Show git-missing and error states with subtle warning badges
- Add hover-reveal refresh button per project to re-scan git status
- Show branch/dirty/ahead/behind inline in ChatPane header subtitle
- Wire refreshProjectGitContext callback from App through Sidebar

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 20:16:22 +01:00
David KayaandCopilot ab4e9bcea9 feat: add git-aware project context
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 20:11:46 +01:00
David KayaandCopilot 8d140b6972 docs: refresh roadmap completion status
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 20:01:16 +01:00
David KayaandCopilot 32a6ecfb9a refactor: remove sidebar filter chips for now
Filters will be redesigned later. Search remains functional.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 22:11:14 +01:00
David KayaandCopilot 3966ddbb0d refactor: restyle filter chips as minimal dot toggles
Replace rounded-full pill buttons with subtle text toggles that use
a small colored dot indicator when active. Blends better with the
sidebar aesthetic.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 21:01:03 +01:00
David KayaandCopilot 1033e36fdd docs: mark conversation organization features as implemented
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 20:17:49 +01:00
David KayaandCopilot 1d649da5d4 feat: add session library UX with search, filters, actions, and favorites
- Sidebar: search input with live results via querySessions
- Sidebar: filter chips for Running, Error, Pinned, Archived
- Sidebar: per-session context menu with Rename, Duplicate, Pin, Archive
- Sidebar: inline rename editing with Enter/Escape/blur handling
- Sidebar: pinned sessions sort first, archived sessions hidden by default
- NewSessionModal: favorite patterns with star toggle, favorites sort first

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 19:50:49 +01:00
David Kaya 6a6fd35361 docs: deleted old handover 2026-03-22 19:43:53 +01:00
David KayaandCopilot 4a229a1f88 feat: add session library backend APIs
Add persisted session and pattern metadata for pinning, archiving, manual titles, and favorite patterns. Expose backend query and mutation APIs for session library features, and cover the shared helpers with tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 19:33:20 +01:00
David KayaandCopilot 585f2740a5 fix: align chat and activity panel header borders
Reduce chat header padding and tighten the title/subtitle line height so the border-bottom lines up with the activity side panel header.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 18:51:43 +01:00
David KayaandCopilot d6022fcb79 docs: require cleanup of obsolete fixes
Clarify in the agent guidelines that experiments, workarounds, helpers, and test paths that do not end up in the final correct solution must be removed before handoff.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 18:25:14 +01:00
David KayaandCopilot 91984e9dca refactor: remove unneeded sidecar refresh restart logic
Drop the refresh-time sidecar restart workaround and its helper/tests now that the verified fix is in the sidecar subprocess launcher itself. This keeps the runtime simpler and leaves only the changes required for correct Copilot version detection.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 18:09:35 +01:00
David KayaandCopilot 64a987b48a fix: close stdin for sidecar subprocess probes
Redirect and immediately close stdin for sidecar-spawned CLI subprocesses so they do not inherit the long-lived stdio pipe from the Electron/Node host. This fixes the Copilot version probe timing out under the actual app runtime while preserving the direct CLI and account diagnostics behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 16:50:44 +01:00
David KayaandCopilot 312ca0bf17 fix: scope sidecar exit handling to the active process
Wait for an intentional sidecar dispose to exit before refreshing capabilities, and ignore exit events from stale sidecar processes. This prevents a refresh from killing the old process and then having that old exit reject the new capabilities request with an unexpected sidecar exit error.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 16:44:40 +01:00
David KayaandCopilot 9cded003b5 fix: restart idle sidecar on capability refresh
Force-refreshing sidecar capabilities now disposes the idle sidecar process before re-querying capabilities, so Kopaya can pick up backend sidecar changes and refreshed Copilot connection state without a full app restart.

Add a small helper and regression tests for the refresh decision.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:29:59 +01:00
David KayaandCopilot a77bd107ab fix: use Copilot launch command for version checks
Run the Copilot CLI version probe through the resolved launch path and args instead of invoking the Windows shim directly. This keeps the version check aligned with the SDK launch strategy and avoids false 'Version unknown' results from the Winget-installed Copilot executable.

Add a regression test covering the constructed launch command.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:27:17 +01:00
David KayaandCopilot b73f5dfb41 feat: show account identity, version badge, and org pills in settings
Extend CopilotStatusCard to surface the new backend diagnostics:
- Account identity row (login + host) when authenticated
- Organization pills with +N overflow
- CLI version freshness badge (latest/outdated/unknown)
- Latest-version hint in expandable details when outdated
- Mark version/account roadmap items as complete

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:19:24 +01:00
David Kaya af3a60501c docs: remove plans 2026-03-22 15:13:29 +01:00
David KayaandCopilot bf5aa7ce57 feat: add Copilot version and account diagnostics
- report Copilot CLI version freshness as latest, outdated, or unknown
- expose active Copilot account metadata from the SDK auth status
- add best-effort GitHub organization context when gh is available
- document the frontend follow-up in HANDOVER.md

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:10:10 +01:00
David KayaandCopilot 5e0167cf1d docs: mark Copilot connection roadmap progress
- record shipped Copilot connection diagnostics and settings UI
- split the roadmap item into implemented foundation vs remaining work
- update sequencing and shortlist to focus on the unfinished pieces

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:03:15 +01:00
David KayaandCopilot e97d00e362 refactor: group settings nav into AI Provider and Orchestration sections
Adds section headers to the left sidebar navigation so future
settings items slot naturally under the right category.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 14:00:46 +01:00
David KayaandCopilot cc882d2f09 refactor: redesign settings page with sidebar navigation
- Replace single-scroll settings with two-column layout:
  left sidebar nav (Connection, Patterns) + content area
- Consistent back arrow (←) on the left for all navigation levels:
  settings → app, pattern editor → settings list
- Fix CopilotStatusCard path overflow: use break-all for long
  Windows paths, structured detail sections with proper wrapping
- Simplify status card: cleaner status dot indicator, separated
  detail sections with labeled fields and proper text overflow

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 13:56:34 +01:00
David KayaandCopilot c237b9e82d feat: add Copilot connection status card in settings
- New CopilotStatusCard component with status-specific visuals for
  ready, cli-missing, auth-required, and error states
- Expandable technical details section with CLI path and timestamps
- Refresh button wired to refreshSidecarCapabilities IPC
- Integrated into SettingsPanel above orchestration patterns

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 13:44:10 +01:00
David KayaandCopilot d68b1b99f3 feat: add Copilot connection diagnostics
Add backend support for Copilot connection and account-status UX without introducing raw provider credential management.

This change extends sidecar capabilities with explicit connection diagnostics, adds a refreshable capabilities IPC path, classifies common Copilot CLI failure modes, and includes a frontend handover document describing the new payload and expected UI states.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 12:58:40 +01:00
David KayaandCopilot e25518a4c5 docs: refine roadmap auth direction
Update ROADMAP.md so the auth-related roadmap language matches the current architecture: Kopaya relies on the system-installed GitHub Copilot CLI rather than owning provider credentials directly.

Reframe the near-term product need as Copilot connection and account-status management, while keeping broader credential management as a future capability for direct provider auth, MCP, or team-managed secrets.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 12:53:38 +01:00
David KayaandCopilot ae491aa4f5 docs: add product roadmap
Document a forward-looking roadmap for Kopaya based on the current architecture, existing UX, and opportunities from modern AI chat and orchestration products.

The roadmap covers baseline chat-app expectations, project-aware workflows, orchestration control-plane improvements, advanced workflow capabilities, evaluation, collaboration, and product differentiators.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 12:16:04 +01:00
David KayaandCopilot be9a8f6d7f feat: restore compact inline pills for scratchpad model picker
Re-apply the inline pill-button design for the scratchpad model and
thinking effort selectors that was overwritten by a concurrent agent.

- InlineModelPill: compact pill with provider icon, upward-opening
  grouped dropdown with provider headers and tier badges; respects
  the new availableModels prop for live model availability
- InlineThinkingPill: compact Sparkles pill with upward-opening
  effort selector; shows N/A when model has no reasoning support
  (respects supportedEfforts from per-model capabilities)
- Removes the large bordered card wrapper, replaces with subtle
  inline row of pills sitting just above the composer textarea
- Preserves all new logic from the model-availability agent:
  availableModels prop, resolveReasoningEffort, getSupportedEfforts

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 11:46:41 +01:00
David KayaandCopilot 6e623b7bd6 fix: use live copilot model availability
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 11:07:43 +01:00
David KayaandCopilot 9799a959d6 fix: preserve single-chat final messages
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 10:43:59 +01:00
David KayaandCopilot 4e4f6ebedb feat: redesign scratchpad config as compact inline pills
Replace the large bordered card with model/thinking dropdowns with
subtle inline pill-buttons that sit just above the composer textarea.

- Create InlineModelPill: compact pill showing provider icon + model
  name with upward-opening grouped dropdown (same model catalog)
- Create InlineThinkingPill: compact pill with Sparkles icon and
  effort label with upward-opening dropdown
- Both pills use minimal border styling that highlights on open/hover
- Dropdowns open upward (bottom-full) so they don't get clipped
- Add loading spinner next to pills while config is saving
- Remove the large 'Applies to future replies' card wrapper

Also fixes 'onUpdateScratchpadConfig is not a function' error:
- Make onUpdateScratchpadConfig optional in ChatPaneProps (only
  relevant for scratchpad sessions, not regular project sessions)
- Guard the call with !onUpdateScratchpadConfig early return

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 10:21:44 +01:00
David KayaandCopilot fd0256d62f feat: add scratchpad chat model controls
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 10:20:17 +01:00
David KayaandCopilot 1b41cbd1e0 feat: add scratchpad chat sessions
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 10:11:42 +01:00
David KayaandCopilot 2f90a19736 feat: label pending and final agent messages
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 09:46:13 +01:00
David KayaandCopilot 16229b8b0a fix: stabilize streamed agent text
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 21:39:46 +01:00
David KayaandCopilot 039e570348 fix: strengthen handoff workflow guidance
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 21:38:02 +01:00
David KayaandCopilot 0cb87d8b66 feat: redesign sidebar with richer session cards and visual polish
- Session cards now show orchestration mode icon (colored per type:
  indigo=single, amber=sequential, emerald=concurrent, sky=handoff,
  violet=group-chat) giving at-a-glance pattern visibility
- Add relative timestamps (just now, 2m ago, yesterday, etc.)
- Running sessions show animated pulse on left accent bar and
  text status label instead of static dot
- Multi-agent sessions display agent count badge (Users icon + count)
- Error sessions show explicit red Error label
- Project headers show running session count as live badge
  and total count as pill; folder icon highlights on hover
- Upgrade Kopaya logo from letter badge to gradient icon with
  Sparkles, add BETA tag
- Move New Session button to prominent dashed-border CTA below header
- Better empty state with composite folder+plus icon treatment
  and indigo Add Project button
- Add sidebar-pulse CSS keyframe animation for running indicators

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 21:34:51 +01:00
David KayaandCopilot f940b9d153 fix: enforce handoff delegation roles
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 21:13:16 +01:00
David KayaandCopilot 8f668da7f8 feat: use official SVG brand icons for model providers
Replace colored letter badges with official SVG icons sourced from
Simple Icons (Anthropic, Google Gemini) and Wikimedia Commons (OpenAI).

- Create shared ProviderIcons.tsx with OpenAI, Anthropic, and Gemini
  SVG icon components using the official brand marks
- Update PatternEditor ModelSelect dropdown to use real provider icons
- Update ActivityPanel model badges to use real provider icons
- Remove duplicated providerStyles objects from both files

Icons are inline SVG using currentColor for theme-aware coloring.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 20:58:38 +01:00
David KayaandCopilot d155085d0c fix: preserve handoff agent attribution
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 20:32:22 +01:00
David KayaandCopilot baea491cf2 feat: add model dropdown with provider logos and tier badges
- Create model catalog (src/shared/domain/models.ts) with 12 models
  from OpenAI, Anthropic, and Google including tier metadata
- Replace free-text model input with custom ModelSelect dropdown
  grouped by provider with colored provider icons (green AI for
  OpenAI, orange A for Anthropic, blue G for Google)
- Show tier badges (premium/standard/fast) on each model option
- Highlight currently selected model with indigo accent
- Update ActivityPanel to show provider icons on model badges
  for visual consistency across the app

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 20:05:54 +01:00
David KayaandCopilot 018100a9a8 feat: fix settings header overlap, redesign pattern editor
- Fix SettingsPanel and PatternEditor headers with pt-12 to clear
  the title bar overlay zone
- Replace mode dropdown with visual mode selector cards showing
  icon, description, and inline flow diagrams for each pattern
- Add flow pill diagrams (Single, Sequential, Concurrent, Handoff,
  Group Chat, Magentic) illustrating how agents interact
- Add reasoning effort selector (Low/Medium/High/Maximum) to
  agent cards — previously not exposed in the editor
- Improve agent cards with numbered badges and 3-column layout
  for name, model, and reasoning fields

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 19:54:22 +01:00
David KayaandCopilot c4502c9661 feat: show agent model, effort, and description in activity panel
Each agent now renders as a card with:
- Status dot and name
- Model badge (e.g. gpt-5.4) and reasoning effort badge
- Agent description text
- Live activity status label
Cards highlight with blue/emerald borders when active/completed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 19:16:06 +01:00
David KayaandCopilot 879c6c145c feat: render chat messages as markdown with code blocks
- Add react-markdown and remark-gfm for markdown rendering
- Create MarkdownContent component with custom code block renderer
  featuring language labels and copy-to-clipboard buttons
- Add full markdown prose styles (headings, lists, tables, links,
  blockquotes, inline code) matching the dark zinc theme
- Replace plain-text message rendering in ChatPane with MarkdownContent
- Handle fenced code blocks with and without language specifiers

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 19:04:24 +01:00
David KayaandCopilot 9138aa8819 feat: add right-side activity panel for agent status
- Create ActivityPanel component showing per-agent status with
  activity dots, agent names, and contextual status labels
- Add detailPanel slot to AppShell layout (right aside, w-64)
- Move agent activity display from inline ChatPane card to the
  dedicated side panel
- Remove activity prop and inline panel from ChatPane
- Panel appears when a session is selected, hidden on WelcomePane

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 18:34:05 +01:00
David KayaandCopilot 867f2932df fix: harden activity event handling
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 18:18:06 +01:00
David KayaandCopilot dd40ebbfca fix: finalize streamed agent responses
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 17:37:21 +01:00