Commit Graph
856 Commits
Author SHA1 Message Date
ZacharyZhang-NY aa8046e56d Fix blank dev window by relaxing CSP for HMR
The global webRequest.onHeadersReceived CSP rewrite was attached to
session.defaultSession, which intercepts every Chromium request
(including devtools and network service internals) and crashed the
network service in dev. Drop the global override and rely on the
renderer-level meta tag, widened to allow Vite's localhost HMR
connections.
2026-05-21 19:54:09 -04:00
ZacharyZhang-NY 74266566b7 Rebuild AgentCompany-New renderer to match design spec
- Port design tokens, sidebar, topbar, and icons to inline SVG set
- Rewrite each page (Home/Team/Work/Chat/Files/Approvals/Social/Settings)
  to drive real snapshot data and match the bento, kanban, three-pane chat,
  file tree + pinned cards, approval queue, social schedule + calendar,
  and settings sub-nav layouts
- Split Chat and Settings into per-concern subcomponents so every file
  stays under 500 lines
- Add schema v4 for pinned files and scheduled posts plus IPC + service
  wiring; cover new behavior in unit tests
- Update onboarding labels and Hire form to remove ambiguity for the
  expanded e2e suite (all settings tabs + 8 routes at 1280 and 980)
2026-05-21 19:42:38 -04:00
ZacharyZhang-NY 00736d5719 Fix unused thread prop in ThreadPanel 2026-05-21 17:45:29 -04:00
ZacharyZhang-NY f262fb9385 Align chat, settings, and icons with design spec
- Chat: add 3-column layout with thread detail panel and thread reply composer
- Settings: branded provider logos, connected/available split, Agents section label
- Icons: add refresh icon (RefreshCw) to icon registry
2026-05-21 17:42:44 -04:00
ZacharyZhang-NY 5be8160c15 Add org chart SVG connector and work page view toggle
- TeamPage: add SVG connector lines between CEO and subordinate agent cards
- WorkPage: add Board/List view toggle and Filter button matching design topbar
- List view shows all tasks in table format with status/priority/assignee columns
2026-05-21 17:31:50 -04:00
ZacharyZhang-NY 8101dfdc3c Rewrite home page to match design bento layout
Replaces simple metric cards with the design's rich two-row bento grid:
- Row 1: Today (active tasks), Waiting on you (quick-approve), Monthly budget
- Row 2: In progress work, Team roster, Quarter goal (dark card with progress bar)
Personalized greeting based on time of day. All data bound to real snapshot.
2026-05-21 17:30:04 -04:00
ZacharyZhang-NY c1c7dc0d49 Align shell sidebar and icons with design spec
- Add search bar with ⌘K hint between org logo and nav in sidebar
- Move Settings nav item to bottom section above sidebar footer
- Fix minimize button icon from MoreHorizontal to Minus on non-macOS
- Replace work/social nav icons with design-spec custom SVG paths
- Add --r-xl and --shadow-md CSS tokens from design system
- Set letter-spacing -0.005em and font-feature-settings on body
2026-05-21 17:28:18 -04:00
ZacharyZhang-NY 935376f210 Record social browser governance actions 2026-05-21 09:06:24 -04:00
ZacharyZhang-NY f107ecba31 Harden PRD page coverage and migration audit 2026-05-21 09:04:36 -04:00
ZacharyZhang-NY 83a51c6881 Wire real page actions to persisted data 2026-05-21 08:54:58 -04:00
ZacharyZhang-NY 6992b3e70e Implement original onboarding bootstrap 2026-05-21 08:43:50 -04:00
ZacharyZhang-NY 49c1dd2888 Add migration verification reports 2026-05-20 23:42:53 -04:00
ZacharyZhang-NY de63df7daf Add policy governed task approvals 2026-05-20 23:40:40 -04:00
ZacharyZhang-NY 0e920b409a Add skill runtime snapshots 2026-05-20 23:38:56 -04:00
ZacharyZhang-NY c694b7fc2c Add provider gateway and collaboration records 2026-05-20 23:35:30 -04:00
ZacharyZhang-NY fcf6d90731 Rebuild AgentCompany Electron app 2026-05-20 23:27:00 -04:00
ZacharyZhang-NY bc5daa6eb8 update 2026-05-20 22:26:56 -04:00
ZacharyZhang-NY 810e2d5967 update 2026-05-15 19:40:20 -04:00
ZacharyZhang-NY 2ab001b18a fix(security): require https for trusted links 2026-05-15 02:56:25 -04:00
ZacharyZhang-NY 4e5af2b45f fix(settings): guard disabled model reads 2026-05-15 02:53:13 -04:00
ZacharyZhang-NY 0a107af014 fix(security): omit agent token fingerprints 2026-05-15 02:49:40 -04:00
ZacharyZhang-NY c20d3942a8 fix(security): sanitize credential test logs 2026-05-15 02:44:50 -04:00
ZacharyZhang-NY b92cf62c4c fix(data): canonicalize operation json fields 2026-05-15 02:36:19 -04:00
ZacharyZhang-NY 10c1f6d103 fix(api): preserve meeting patch fields 2026-05-15 02:25:24 -04:00
ZacharyZhang-NY 9d4af15d4b fix(browser): limit retained action screenshots 2026-05-15 02:21:16 -04:00
ZacharyZhang-NY b5a6a1a9ea fix(browser): settle timed out actions 2026-05-15 02:17:10 -04:00
ZacharyZhang-NY 83faa9629b fix(security): gate landing dependency audit 2026-05-15 02:12:47 -04:00
ZacharyZhang-NY 0c85dc3d32 fix(security): patch landing dependency audit 2026-05-15 02:03:34 -04:00
ZacharyZhang-NY d76040af78 fix(security): patch root dependency audit 2026-05-15 01:59:58 -04:00
ZacharyZhang-NY 7b54fe54a8 fix(security): materialize complete skill packages 2026-05-15 01:36:16 -04:00
ZacharyZhang-NY f5b3de438e fix(security): limit skill URL import reads 2026-05-15 01:18:44 -04:00
ZacharyZhang-NY 0cbaabf937 fix(security): bound skill URL redirects 2026-05-15 01:07:43 -04:00
ZacharyZhang-NY 6ae506bf73 fix(security): preserve SNI for skill URL fetches 2026-05-15 01:04:41 -04:00
ZacharyZhang-NY 254ee7c8d8 fix(security): validate credential payload reads 2026-05-15 00:57:23 -04:00
ZacharyZhang-NY 8b0b06f765 fix(security): validate bedrock endpoint URLs 2026-05-15 00:52:18 -04:00
ZacharyZhang-NY 84b92c859e fix(security): restrict local connector endpoints 2026-05-15 00:43:45 -04:00
ZacharyZhang-NY fa19e95f19 fix(security): inject provider env into model streams 2026-05-15 00:35:55 -04:00
ZacharyZhang-NY 66e24b1060 fix(security): scope managed path opening 2026-05-15 00:26:20 -04:00
ZacharyZhang-NY bde35c3518 fix(security): scope social account references 2026-05-15 00:15:37 -04:00
ZacharyZhang-NY 51d468e4c3 fix(security): scope work product creation 2026-05-15 00:00:04 -04:00
ZacharyZhang-NY d1a3d23c70 fix(security): scope skill assignments by company 2026-05-14 23:37:58 -04:00
ZacharyZhang-NY 41e1dec647 fix(security): enforce company scoped updates 2026-05-14 23:28:29 -04:00
ZacharyZhang-NY fccb0d8586 fix(runtime): serialize Fire Pass calls per credential to stop boss-build 429s
Boss build seeds one Fire Pass key for every agent. Three concurrent
agents -> three concurrent streamSimple calls against the Kimi K2.6
Turbo router -> three HTTP 429s on the overview dashboard.

Add an in-memory async semaphore keyed by (provider, sha1(apiKey)) and
acquire a slot inside `createSafePiStream` before invoking the source.
The slot is released when the stream finishes, errors, or aborts.
`fireworks-firepass` is capped at 1 concurrent call; every other
provider stays uncapped (no fallback layer, no 429 retry — flow control
prevents the burst at the source instead of recovering after).

Same code path applies to public and boss builds: only the seeded key
differs, the gate behaviour is identical.
2026-05-14 22:31:01 -04:00
ZacharyZhang-NY a532120649 feat(connectors): add Ollama and LM Studio as a local auth kind
Both servers expose OpenAI-compatible /v1/chat/completions and /v1/models,
so we route them through pi-ai's `openai-completions` API the same way
Fireworks does — but with a per-installation base URL the user enters
during onboarding instead of a hardcoded one. The shared schemas grow a
`local` credential payload carrying just the baseUrl; the credential
resolver surfaces it on `ResolvedCredential.baseUrl`, the runtime bridge
forwards it through `prepareRun`, and the worker plumbs it into
`resolveModel` so the streamed Model<openai-completions> targets the
user's server. The local-cost path short-circuits to zero in cost-writer
since users bill their own hardware, and the live model list is fetched
from the saved baseUrl by `fetchLocalConnectorModels` (Ollama and LM
Studio both speak the standard OpenAI catalog shape). Onboarding ships
a new LocalProviderCard and the Settings panel a LocalForm; both default
to the catalog's per-connector localhost URL and accept any custom URL.
2026-05-14 14:55:38 -04:00
ZacharyZhang-NY 07d9c00fab feat(connectors): upgrade Fire Pass router to Kimi K2.6 Turbo
Fireworks rolled out the kimi-k2p6-turbo router as the new Fire Pass
target; the k2p5-turbo route will start refusing Fire-Pass-only
callers. Bump the router id and display name in connector-catalog,
apikey connector definition, model-resolver, and capability-seed so
the desktop catalog, the renderer's onboarding rail, the capability
matrix, and the runtime model resolver all point at the same model.
2026-05-14 14:39:32 -04:00
ZacharyZhang-NY 0e1710065f fix(messaging): self-read receipt at send time so authors don't inflate unread counts
agent_message_reads is the per-viewer source of truth for readAt, but
the send path never recorded the author's own receipt. Every message
the board operator or an agent sent therefore counted as unread to
themselves until they happened to re-open the channel — sidebar badge,
inbox panel, and the channel sidebar all derive from the same join
table. Insert a (message_id, from_agent_id, created_at) row in the
same transaction as the message itself; the receipt becomes an
atomic part of the write rather than a deferred maintenance task.
2026-05-14 14:36:10 -04:00
ZacharyZhang-NY 2b4b8d987e fix(worker): always ack run completion to avoid leaking the active map
handleRunFinished and releaseCompletedRunWorkspaceLock both run between
receiving run-finished and posting run-completion-ack. If either throws,
the ack is skipped and the worker keeps the agent in its `active` map
forever; every subsequent wake then queues behind an `isAgentBusy` check
that never clears, and manual wakes from the UI silently fail to start.
Wrap the post-finalize work in try/catch so the ack is posted
unconditionally and the worker state machine stays consistent.
2026-05-14 14:34:16 -04:00
ZacharyZhang-NY 5014ab9651 fix(budget): Fire Pass is unlimited subscription, restore $0 cost
Fireworks Fire Pass is a flat-rate subscription with unlimited tokens.
Per-token cost tracking is inapplicable — restore {input: 0, output: 0}.
2026-04-29 20:43:43 -04:00
ZacharyZhang-NY 158d19c9be fix(budget): add cost fallback for all zero-pricing providers
Pi-ai ships $0 pricing for github-copilot (25 models), google-gemini-cli
(6 models), zai (13 models), and kimi-coding (2 models). This made cost
tracking produce $0 for every run through these providers, rendering
budget enforcement useless.

Added resolveModelCostFallback() in model-resolver.ts with two strategies:
1. Cross-provider lookup: subscription providers (github-copilot,
   google-gemini-cli) use the same models as their API counterparts.
   Look up the model in anthropic/openai/google/xai catalogs using
   normalized ID matching (dots→hyphens) to find real pricing.
2. Per-provider fallback: API-key providers with no cross-provider
   equivalent (zai, kimi-coding) get a static per-provider cost.

CostWriter now calls resolveModelCostFallback after resolveModel, so
all consumers get patched pricing without touching the pi-ai library.
2026-04-29 20:40:05 -04:00
ZacharyZhang-NY 7a78a34558 docs: add domain glossary and agent skill configuration
- CONTEXT.md: domain glossary with 20+ terms, relationships, example
  dialogue, flagged ambiguities, and known issues from grill-with-docs
- docs/agents/: issue tracker (GitHub), triage labels (defaults), and
  domain doc layout (single-context) for engineering skills
- CLAUDE.md: append Agent skills section pointing to docs/agents/
- .gitignore: whitelist CONTEXT.md and docs/agents/*.md
2026-04-29 20:32:22 -04:00