Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
680 commits
Select commit Hold shift + click to select a range
e121a22
test(dashboard): TranscriptBubble tests (26 tests) (#4359)
OneStepAt4time May 27, 2026
f946bb1
feat(worker): add JSONL watcher worker thread + bridge (#4230) (#4363)
OneStepAt4time May 27, 2026
b4e1132
fix(api): remove session counts from unauthenticated /health response…
OneStepAt4time May 27, 2026
87ed3df
feat(eventbus): Redis Streams EventBus + SSE bridge (#4229 phases C-D…
OneStepAt4time May 27, 2026
ac0b834
refactor(session): extract SessionApprovalService from SessionManager…
OneStepAt4time May 27, 2026
1eafe13
docs: fix unauthenticated /health response after #4361
OneStepAt4time May 27, 2026
d5b1b09
refactor(session): extract hook secret reader and latency metrics to …
OneStepAt4time May 27, 2026
e1c5f4e
refactor(session): extract _createSession to SessionFactory (#4246 st…
OneStepAt4time May 27, 2026
84f500b
refactor(session): extract health/monitoring methods to session-healt…
OneStepAt4time May 27, 2026
d8a4995
feat(dashboard): SSE-triggered audit live tail (#4346)
OneStepAt4time May 27, 2026
1c1c808
feat(telegram): one-tap approve with inline feedback and audit log (#…
OneStepAt4time May 27, 2026
1c38095
feat(sse): wire SSE bridge endpoint (EventBus -> /sse)
OneStepAt4time May 27, 2026
af53850
test(dashboard): fix PauseControlBar interventionStatus type literals…
OneStepAt4time May 27, 2026
8ef3e5e
test(dashboard): MetricCards component tests (#4298 batch 7)
OneStepAt4time May 27, 2026
f41ba76
chore(ci): bump server bundle size threshold to 2496KB (#4379)
OneStepAt4time May 27, 2026
3f0cebd
feat(dashboard): SSE connection indicator in header (#4346) (#4380)
OneStepAt4time May 27, 2026
c73632c
refactor(server): extract session reaper and config watcher (#4243 st…
OneStepAt4time May 27, 2026
1b9ee33
test(dashboard): ProtectedRoute, Code, PipelineStatusBadge tests (bat…
OneStepAt4time May 27, 2026
e688f3b
docs: agent bootstrap best practice + real-time events guide
OneStepAt4time May 27, 2026
f7458f5
feat(dashboard): smart onboarding wizard with health-aware steps
OneStepAt4time May 27, 2026
fca29b4
test(dashboard): ShieldLogo, HoldButton, ConfirmDialog tests (batch 7…
OneStepAt4time May 27, 2026
d7e1f65
test(dashboard): ToastContainer, PendingQuestionCard, SessionHeader t…
OneStepAt4time May 27, 2026
bd93352
test(dashboard): TokenBreakdown, ConfirmDestructive, RateLimitCard te…
OneStepAt4time May 27, 2026
d114277
fix(dashboard): move budgetAlertSection i18n keys into cost object (#…
OneStepAt4time May 28, 2026
ca27027
docs: add SSE security section to real-time events guide
OneStepAt4time May 28, 2026
e395de5
refactor(server): prepare setupAuth extraction via boot facade (4227 …
OneStepAt4time May 28, 2026
a7e0c4e
fix(security): harden /v1/sse endpoint — auth, tenant scoping, connec…
OneStepAt4time May 28, 2026
2d407ba
docs: add /v1/sse bridge endpoint (#4396)
OneStepAt4time May 28, 2026
6ee963a
fix(sse): subscribe before writeHead to avoid headers-already-sent on…
May 28, 2026
a313030
fix(redis): log corrupted session data instead of silently dropping
May 28, 2026
ae6153e
fix: add structured logging to silent catch blocks in auth and sessio…
May 28, 2026
b777e9e
fix: use log.warn instead of log.debug (StructuredLogger has no debug…
May 28, 2026
0ef5c75
cleanup(session): remove dead empty try-catch in killSession
May 28, 2026
a2d4b45
fix(dashboard): 5 frontend UI interaction bugs
May 28, 2026
acb19fc
fix(dashboard): i18n + countdown efficiency fixes
May 28, 2026
ceb2fdc
fix(dashboard): correct i18n key analytics.noData → common.noData in …
OneStepAt4time May 28, 2026
47eaf69
fix: exclude stale aegis/ directory from vitest runs (#4398)
OneStepAt4time May 28, 2026
344ae37
fix(i18n): remove duplicate approveFailed/rejectFailed keys in en.ts …
May 28, 2026
e658eee
fix(dashboard): remove stray closing braces in SettingsPage onChange …
OneStepAt4time May 28, 2026
57ada86
fix(dashboard): interaction bugs — stale state, blur commit, capture …
OneStepAt4time May 28, 2026
e187778
fix(dashboard): pass actual user role to DriverControlBar (#4429)
OneStepAt4time May 28, 2026
7d3dcf8
fix(dashboard): show ApprovalBanner on mobile — remove hidden sm:bloc…
OneStepAt4time May 28, 2026
6a5f786
fix(dashboard): prevent double-click duplicate approve/reject in Appr…
OneStepAt4time May 28, 2026
a65def5
refactor(monitor): extract DeadDetector, RateLimitRetryHandler, Statu…
OneStepAt4time May 28, 2026
97aaeab
fix(dashboard): persist onboarding dismissed state to localStorage (#…
OneStepAt4time May 28, 2026
d34cf02
fix(dashboard): add null guards for AnalyticsPage partial API data (#…
OneStepAt4time May 29, 2026
77f7862
fix(dashboard): prevent double-click duplicate approve/reject in Appr…
OneStepAt4time May 29, 2026
ea5590c
fix(i18n): add missing staleData key to Italian translations (#4440)
OneStepAt4time May 29, 2026
e7482b4
fix(dashboard): replace 50+ hardcoded English aria-labels and titles …
OneStepAt4time May 29, 2026
6f93d4f
fix(dashboard): show ApprovalBanner on mobile — remove hidden sm:bloc…
OneStepAt4time May 29, 2026
c611bf0
fix(dashboard): replace 50+ hardcoded English aria-labels/titles with…
OneStepAt4time May 29, 2026
4739764
fix(dashboard): stabilize TranscriptBubble timestamp test with relati…
OneStepAt4time May 29, 2026
b4f48de
fix(dashboard): persist onboarding completion so tour never reappears…
OneStepAt4time May 29, 2026
ca6a04e
fix(dashboard): PermissionPromptSheet i18n + Escape UX clarity
OneStepAt4time May 29, 2026
e127fbb
fix(dashboard): remove unnecessary as any cast for runnerName in Sess…
OneStepAt4time May 29, 2026
c9e0b91
fix(dashboard): extract hardcoded strings in ActivityPage + NewSessio…
OneStepAt4time May 29, 2026
8301994
fix(dashboard): merge misplaced a11y i18n keys into aria block
OneStepAt4time May 29, 2026
db3001e
fix(dashboard): wire i18n resolver into test mocks — kill recurring C…
OneStepAt4time May 29, 2026
f365766
fix(dashboard): extract OnboardingWizard + HomeStatusPanel strings to…
OneStepAt4time May 29, 2026
9b0a287
docs: add dashboard i18n guide + update stale dashboard.md section
OneStepAt4time May 29, 2026
d8d466a
fix: flaky TranscriptBubble test + fork empty body (#4435)
OneStepAt4time May 29, 2026
14bd69a
test(init): E2E zero-config init→run flow tests (#4348)
OneStepAt4time May 29, 2026
f6227fd
fix(dashboard): reduce useSessionApproval re-renders on TTL tick (#4427)
OneStepAt4time May 29, 2026
f17e6c1
fix(ci): use du --apparent-size in bundle size gate (#4453)
OneStepAt4time May 29, 2026
f3c8fb8
fix(dashboard): wire remaining hardcoded strings to i18n keys (#4452)
OneStepAt4time May 29, 2026
698f9d7
docs: finalize changelog + add Multica to competitive docs (#4463)
OneStepAt4time May 29, 2026
39f464d
docs: rewrite onboarding.md for zero-config ag run flow (#4454)
OneStepAt4time May 29, 2026
33ca3a0
fix(cli): standardize ag logout exit codes (#4462)
OneStepAt4time May 29, 2026
9bfb9ec
docs: add missing CLI commands — ag update, login, logout, whoami (#4…
OneStepAt4time May 29, 2026
e67a782
docs: blog — CC Dynamic Workflows vs Aegis: Orchestration WITH Guardr…
OneStepAt4time May 29, 2026
3dc02fc
fix(cli): ag tail checks session status before SSE connect (#4461)
OneStepAt4time May 29, 2026
247a0e5
fix(dashboard): extract remaining hardcoded strings to i18n keys (#4472)
OneStepAt4time May 29, 2026
ff1f43f
feat(dashboard): display Claude Code session ID in SessionHeader (#4470)
OneStepAt4time May 29, 2026
9cad9f6
fix(cli): ag list --json output structured API shape & emit JSON erro…
OneStepAt4time May 29, 2026
253aac2
ci: bump server bundle-size threshold to 2528KB (#4467)
OneStepAt4time May 29, 2026
2ef59d9
feat(mcp): integrate CLAUDE_CODE_SESSION_ID for cross-session context…
OneStepAt4time May 29, 2026
bbbb0ea
fix(dashboard): extract remaining hardcoded strings to i18n keys — sw…
OneStepAt4time May 29, 2026
784fa61
fix(backend): async session creation — return immediately without blo…
OneStepAt4time May 29, 2026
83d2211
docs: document ccSessionId field, async session creation, and runtime…
OneStepAt4time May 29, 2026
b9e44c6
fix(mcp): stdio server sends JSON-RPC error responses for invalid mes…
OneStepAt4time May 29, 2026
f7d7fa5
fix(security): sanitize error responses — redact internal details fro…
OneStepAt4time May 29, 2026
100aab4
fix(mcp): cherry-pick #4460 — JSON-RPC error responses for stdio tran…
OneStepAt4time May 29, 2026
edf73c2
refactor: break 7 session.ts circular dependencies — unblocks #4227 (…
OneStepAt4time May 29, 2026
a036c8f
fix(dashboard): extract metric labels and approval strings to i18n ke…
OneStepAt4time May 29, 2026
9c817d8
fix(deps): break metrics circular dep + fix circular-deps detection (…
OneStepAt4time May 29, 2026
608a1ee
refactor: break 3 real circular dependencies — 11→2 type-only (#4488 …
OneStepAt4time May 29, 2026
a50a00f
refactor(openapi): split 1296-line spec into per-domain modules (#4485)
OneStepAt4time May 29, 2026
8be0a32
fix(security): sanitize remaining 5xx error message leaks (follow-up …
OneStepAt4time May 29, 2026
23b00b6
feat(cli): clean up ag update — add --dry-run, fix critical execPath …
OneStepAt4time May 29, 2026
bef68c8
feat(session): per-session metadata KV store (#4484)
OneStepAt4time May 29, 2026
964afef
docs: document session metadata KV store + ag update --dry-run (#4500)
OneStepAt4time May 29, 2026
0b58b8b
feat(webhook): add durationMs tracking + contract-compliant delivery …
OneStepAt4time May 29, 2026
2ea81f4
feat(dashboard): webhook delivery history view (#4486)
OneStepAt4time May 29, 2026
34a1461
docs: update webhook delivery history API response (#4503)
OneStepAt4time May 29, 2026
3be7d82
feat(dashboard): session metadata KV panel in session detail (#4484) …
OneStepAt4time May 29, 2026
eb0369a
feat(cli): add ag send mid-turn messaging command (#4487)
OneStepAt4time May 29, 2026
fa8b22e
docs: document `ag send` mid-turn messaging command (#4506)
OneStepAt4time May 29, 2026
665ef4a
fix(dashboard): add 8 missing i18n keys across overview, audit, aria …
OneStepAt4time May 29, 2026
3fe2960
fix(dashboard): add missing overview i18n keys (#4511)
OneStepAt4time May 29, 2026
e172220
fix: eliminate last 2 circular dependencies (#4512)
OneStepAt4time May 30, 2026
0fdf2a7
docs(adr): update ADR-0032 — YAGNI transport, NdjsonRpcTransport reuse
May 30, 2026
9d8ac92
feat(dashboard): inbox — structured notification feed (#4515)
OneStepAt4time May 30, 2026
58ee70a
fix(dashboard): replace nested <button> in TranscriptBubble (#4514)
OneStepAt4time May 30, 2026
b6c27cf
docs: add Agent Profiles PRD (#3971)
OneStepAt4time May 30, 2026
3a6eb54
docs(prd): harden #3971 security model — Themis audit findings
May 30, 2026
a3cec6b
fix(security): bump qs to 6.15.2 (CVE-2026-8723 DoS) (#4517)
OneStepAt4time May 30, 2026
d9e5100
docs: add Agent Profiles API documentation (#3971)
OneStepAt4time May 30, 2026
bc6cf4c
refactor: extract ACP backend types, errors, and utils into separate …
OneStepAt4time May 30, 2026
e5d8230
docs: inbox dashboard guide + cc-connect competitive intel update
May 30, 2026
df6014f
docs(prd): add Multi-Agent Support PRD (#3180)
May 30, 2026
055444c
docs(blog): multi-agent architecture draft for Orpheus
May 30, 2026
0f56bc9
docs(blog): add HOLD header until #3180 merges
May 30, 2026
35a0abc
fix(dashboard): missing aria-labels on interactive elements — 5 pages…
OneStepAt4time May 30, 2026
a9327f2
docs(prd): CC upstream scan — 7 findings affecting #3180 + #3971
May 30, 2026
8b33908
docs(prd): update #3180 with env vars table, permission override, wor…
May 30, 2026
081cc45
docs(guide): add Agent Profiles onboarding guide (#3971)
May 30, 2026
e3187d1
fix(runners): pass required env vars and enforce permission-mode on C…
OneStepAt4time May 31, 2026
9f0b101
fix(dashboard): CalendarGrid format patterns for EEEE, EEE, d (#4532)
OneStepAt4time May 31, 2026
6b676a4
fix: harden dashboard dogfooding flows
OneStepAt4time May 31, 2026
f1d06ab
chore(deps): auto-merge dependabot patch
dependabot[bot] May 31, 2026
5759375
chore(deps): auto-merge dependabot patch
dependabot[bot] May 31, 2026
26e51a1
chore(deps): auto-merge dependabot patch
dependabot[bot] May 31, 2026
f9cfee5
fix(#4528): pass timeoutMs to detectCcVersion in discoverCcAgents (#4…
OneStepAt4time Jun 1, 2026
9c5a24a
chore(deps-dev): bump @types/node from 25.8.0 to 25.9.1 in /dashboard…
dependabot[bot] Jun 1, 2026
8765538
chore(deps): bump react-router-dom from 7.15.1 to 7.16.0 in /dashboar…
dependabot[bot] Jun 1, 2026
b779f6a
chore(deps): bump gitleaks/gitleaks-action from 2 to 3 (#4537)
dependabot[bot] Jun 1, 2026
d771282
chore(deps): bump @agentclientprotocol/claude-agent-acp (#4539)
dependabot[bot] Jun 1, 2026
bb9e524
fix(#4526): add unregister method to InMemoryRunnerRegistry (#4548)
OneStepAt4time Jun 1, 2026
b87682d
chore(#4525): deduplicate parseSemver/compareSemver across codebase (…
OneStepAt4time Jun 1, 2026
81bb4f9
refactor(#4534): split backend.ts into modules for gate:arch complian…
OneStepAt4time Jun 1, 2026
32221d7
refactor(#4534): split local-storage.ts into focused modules for gate…
OneStepAt4time Jun 1, 2026
2dad448
fix(ci): bump vitest to ^4.1.7 in auto-label action (CVE-2026-47429) …
OneStepAt4time Jun 1, 2026
d595697
chore(ci): upgrade @actions/github to ^9.1.1 in auto-label action (#4…
OneStepAt4time Jun 2, 2026
385a4a6
ci(#4557): skip DRAFT-noisy jobs on DRAFT PRs (feat-minor-bump-gate, …
OneStepAt4time Jun 2, 2026
36dcd09
ci(#4560): pin k3d-version to v5.9.0 in helm-smoke (#4560)
OneStepAt4time Jun 2, 2026
bf88586
ci(#4562): add DRAFT-skip gate to helm-smoke (5th gate, closes #4559)…
OneStepAt4time Jun 2, 2026
fc0e974
fix(dashboard): use design tokens for SessionHistory source="live" ba…
OneStepAt4time Jun 3, 2026
b4d22ea
fix(dashboard): use design tokens for AgentBadge gray/default variant…
OneStepAt4time Jun 3, 2026
e952d46
fix(dashboard): use design tokens for raw color classes in SessionTab…
OneStepAt4time Jun 3, 2026
7a01514
fix(dashboard): use design tokens for raw color classes in SessionMob…
OneStepAt4time Jun 3, 2026
6873223
fix(dashboard): use design tokens for raw color classes in HomeStatus…
OneStepAt4time Jun 3, 2026
3ce4605
fix(dashboard): use design tokens for status icon colors in Onboardin…
OneStepAt4time Jun 3, 2026
d65f378
feat(#4522): CC hook bridge — SessionStart returns, MessageDisplay tr…
OneStepAt4time Jun 3, 2026
6c02e1f
fix(dashboard): use design tokens for Header light-mode utilities (#4…
OneStepAt4time Jun 3, 2026
851775b
fix(#4568): graceful EADDRINUSE on startup + PID lockfile honored by …
OneStepAt4time Jun 3, 2026
fce866b
docs(#4555): CC hook bridge updates — MessageDisplay, SessionStart re…
OneStepAt4time Jun 3, 2026
02582e0
fix(dashboard): use design tokens for type-level color classes (#4564)
aegis-gh-agent[bot] Jun 3, 2026
a33408a
fix(#4575): hoist permission-guard into createRuntime to close settin…
aegis-gh-agent[bot] Jun 4, 2026
8b2a3f1
fix(dashboard): add overlay/scrim design tokens, apply to Header (#4564)
OneStepAt4time Jun 4, 2026
cae7913
fix(dashboard): use overlay-faint tokens for non-standard alpha sites…
OneStepAt4time Jun 5, 2026
91c2c24
docs(adr): ADR-0030 agent authentication and authorization RFC
aegis-gh-agent[bot] Jun 5, 2026
15d2c05
chore(deps): bump hono from 4.12.18 to 4.12.23 (#4585)
dependabot[bot] Jun 5, 2026
178d988
fix(dashboard): use scrim design token in 5 modal backdrops (#4578)
aegis-gh-agent[bot] Jun 6, 2026
4bbd482
fix(dashboard): use overlay-border design token in 5 layout component…
aegis-gh-agent[bot] Jun 6, 2026
317ab71
fix(dashboard): use overlay-border-strong and overlay-bg tokens in kb…
aegis-gh-agent[bot] Jun 6, 2026
92777ab
fix(dashboard): use overlay-border design token in Sidebar and Drawer…
aegis-gh-agent[bot] Jun 6, 2026
d9678a8
fix(dashboard): use scrim design token in 8 remaining overlay backdro…
aegis-gh-agent[bot] Jun 6, 2026
5a009f8
fix(dashboard): use overlay design tokens in SessionTable (#4578)
aegis-gh-agent[bot] Jun 6, 2026
dd7e281
fix(dashboard): use overlay tokens in VirtualizedSessionList + LiveAu…
aegis-gh-agent[bot] Jun 6, 2026
9e3b8a3
refactor(server): extract routes + bootstrap from server.ts (#4227)
OneStepAt4time Jun 6, 2026
939afd4
fix(dashboard): use overlay-border token in CommandPalette modal bord…
OneStepAt4time Jun 6, 2026
a2f4ef8
chore: ignore workspace-local agent files (DREAMS.md, MEMORY.md, MODE…
Jun 7, 2026
0262387
chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.60.0 to…
dependabot[bot] Jun 7, 2026
a306aba
chore(deps): bump @agentclientprotocol/claude-agent-acp from 0.39.0 t…
dependabot[bot] Jun 7, 2026
751269f
chore(deps): bump react and @types/react in /dashboard (#4603)
dependabot[bot] Jun 7, 2026
1f167d8
chore(deps): bump ioredis from 5.11.0 to 5.11.1 (#4596)
dependabot[bot] Jun 7, 2026
b6f0667
chore(deps-dev): bump @types/node from 25.9.1 to 25.9.2 in /dashboard…
dependabot[bot] Jun 7, 2026
bc311e3
chore(deps-dev): bump vitest from 4.1.7 to 4.1.8 in /dashboard (#4597)
dependabot[bot] Jun 7, 2026
a2c17bb
chore(deps): bump react-router-dom from 7.16.0 to 7.17.0 in /dashboar…
dependabot[bot] Jun 7, 2026
8504355
chore(deps-dev): bump @vitest/coverage-v8 from 4.1.7 to 4.1.8 (#4602)
dependabot[bot] Jun 7, 2026
1ca95cb
chore(deps-dev): bump typescript-eslint from 8.60.0 to 8.60.1 (#4604)
dependabot[bot] Jun 7, 2026
944bc8e
fix(five-minute-setup): correct non-existent ag setup telegram to env…
OneStepAt4time Jun 8, 2026
5fe4677
fix(telegram): env-var rename in 3 docs + startup hint fix (#4609, #4…
OneStepAt4time Jun 8, 2026
900c55f
fix(drafts): correct "ag setup telegram" to env-var / config setup in…
OneStepAt4time Jun 8, 2026
2101422
fix(docs): correct non-existent "ag setup telegram" to env-var / conf…
OneStepAt4time Jun 8, 2026
1e990e8
fix(identity): derive stable actor id for relay-drift defense (#4615)…
OneStepAt4time Jun 8, 2026
559fa66
feat(server-inbound): wire stable-actor resolver into approve/reject …
OneStepAt4time Jun 8, 2026
9e4ed3d
docs(audit): src/channels/ findings — coverage, security, refactor ma…
OneStepAt4time Jun 9, 2026
0956ec5
test(channels): cover circuit-breaker cooldown re-enable (#4624)
OneStepAt4time Jun 9, 2026
186789f
fix(docs): correct src/channels/ file count 18 \u2192 19 in #4619 audit
OneStepAt4time Jun 9, 2026
7538327
test(telegram): cover message-handler + status-handler (#4621)
OneStepAt4time Jun 9, 2026
bc7efa6
test(telegram): cover telegram-polling.ts lifecycle + dispatch (#4623)
OneStepAt4time Jun 9, 2026
cc4d510
test(metering): disable auto-prune in getDailyTokenBreakdown tests to…
Jun 9, 2026
b57bd43
fix(docs): correct AEGIS_TG_BOT_TOKEN -> AEGIS_TG_TOKEN in 7 files (c…
OneStepAt4time Jun 9, 2026
0896cc5
test(telegram): cover sender + formatter + message-formatter (#4622) …
OneStepAt4time Jun 9, 2026
539157c
refactor(telegram): split god module index.ts into api.ts + health.ts…
OneStepAt4time Jun 9, 2026
fd68df8
fix(channels): workdir redaction in Email + Slack channels (#4630)
OneStepAt4time Jun 9, 2026
991c221
docs(notifications): document workDir redaction in Slack + Email (clo…
OneStepAt4time Jun 9, 2026
9a79199
test(telegram): cover message.tool_result progress counter dedup-reje…
aegis-gh-agent[bot] Jun 9, 2026
472a35d
fix(security): replace custom StaticRateLimiter with @fastify/rate-li…
aegis-gh-agent[bot] Jun 9, 2026
c4e98df
fix(security): bump vitest + hono to patched versions (CVE-2026-47429…
aegis-gh-agent[bot] Jun 9, 2026
60658d3
fix(ci): fs.access guard before chmod in secureFilePermissions (#4652)
OneStepAt4time Jun 10, 2026
af68ed0
fix(docs): correct dashboard static rate limit (100→600 req/min) afte…
OneStepAt4time Jun 10, 2026
0b334d4
test: add coverage for ACP error classes, store factory, memory sessi…
OneStepAt4time Jun 10, 2026
ac60e5d
fix(security): remove manual statSync in dashboard-static setHeaders …
aegis-gh-agent[bot] Jun 10, 2026
1c21fb9
test(dashboard): static-analysis guard against traversal URLs (compan…
OneStepAt4time Jun 10, 2026
d77381b
fix(security): close TOCTOU race in secureFilePermissions via file de…
aegis-gh-agent[bot] Jun 10, 2026
35bd4c9
fix(security): inject redactError into TgApiConfig for token redactio…
aegis-gh-agent[bot] Jun 10, 2026
7a1ec9c
docs: add loop-detection user guide for feedback loop recovery (#4660)
OneStepAt4time Jun 10, 2026
193406e
fix(docs): correct ag run --workdir to --cwd in loop-detection guide …
OneStepAt4time Jun 10, 2026
0595684
fix(security): clamp retry_after to 60s max in tgApi (#4627) (#4659)
aegis-gh-agent[bot] Jun 10, 2026
5ce542c
test(coverage): add tests for backend/errors.ts and store-factory.ts …
aegis-gh-agent[bot] Jun 10, 2026
78d4332
test(coverage): add PostgresStore tests for store-factory.ts (#4672)
aegis-gh-agent[bot] Jun 10, 2026
cb965b0
test(infra): per-agent App identity script structure tests (#4670)
aegis-gh-agent[bot] Jun 10, 2026
9524654
test(infra): fix unused variable lint in per-agent-apps test (#4673)
OneStepAt4time Jun 10, 2026
2204967
fix(telegram): retry on network-level fetch failures in tgApi (#4675)
OneStepAt4time Jun 11, 2026
a892e63
fix(dashboard): RoutinesPage CTA button hover effect (#4680)
OneStepAt4time Jun 12, 2026
a7c5248
fix(dashboard/e2e): fix 13 failing e2e tests — mock data and selector…
OneStepAt4time Jun 12, 2026
ef2a281
docs: update CHANGELOG.md with merged PRs since v0.6.7 (#4677)
OneStepAt4time Jun 12, 2026
35a90a5
fix(cli): prevent TypeError crash in ag read on non-text content (#4684)
OneStepAt4time Jun 13, 2026
05b6a25
feat(acp): auto-resume runtime on sendPrompt when inactive (#4695)
OneStepAt4time Jun 13, 2026
f1778f1
fix(acp): auto-approve permissions for non-default modes to prevent d…
OneStepAt4time Jun 13, 2026
f0791fb
feat(cli): add ag approve/reject commands for programmatic tool-call …
aegis-gh-agent[bot] Jun 13, 2026
ab1c4cc
fix(acp): prevent orphaned claude-agent-acp processes after session k…
OneStepAt4time Jun 13, 2026
a2fd1c5
feat(session): create git worktree for session isolation (#4699)
OneStepAt4time Jun 13, 2026
5a02ff0
docs(cli+api): document ag approve/reject commands and server-side gi…
OneStepAt4time Jun 13, 2026
095bbaf
docs(cli+api): follow-up for #4685/#4689/#4695 — add ag approve/rejec…
OneStepAt4time Jun 13, 2026
a6b6310
docs: correct pre-existing /approve and /reject endpoint paths + work…
Jun 13, 2026
edd38b8
fix(dashboard): ensure transcript entries are fetched when stream tab…
aegis-gh-agent[bot] Jun 13, 2026
cdb7727
fix(docs): correct remaining wrong approve/reject endpoint paths (#4706)
OneStepAt4time Jun 14, 2026
8bdfce2
fix(acp,api,cli): #4705 send prompt delivery failure + #4703 CLI Cont…
aegis-gh-agent[bot] Jun 14, 2026
3283440
feat(acp): #4704 detect fatal CC stderr patterns and trigger runtime …
OneStepAt4time Jun 14, 2026
c1db4cc
docs: #4704 fatal stderr detection + #4705/#4703 prompt delivery 422 …
OneStepAt4time Jun 14, 2026
54bf635
chore(ci): dependabot config for /scripts/docs-walkthrough
aegis-gh-agent[bot] Jun 14, 2026
e9c6721
chore(deps-dev): bump @types/node from 25.9.2 to 25.9.3 in /dashboard…
dependabot[bot] Jun 14, 2026
ba73db0
chore(deps-dev): bump @types/node from 25.9.1 to 25.9.3 (#4716)
dependabot[bot] Jun 14, 2026
7ad06c4
chore(deps-dev): bump prettier from 3.8.3 to 3.8.4 (#4717)
dependabot[bot] Jun 14, 2026
ad2da6d
chore(deps): bump @tanstack/react-virtual in /dashboard (#4713)
dependabot[bot] Jun 14, 2026
47d5c77
chore(deps-dev): bump eslint from 10.4.1 to 10.5.0 (#4714)
dependabot[bot] Jun 14, 2026
9cc512b
chore(deps-dev): bump vite from 8.0.14 to 8.0.16 in /dashboard (#4720)
dependabot[bot] Jun 14, 2026
34e2259
chore(deps-dev): bump tailwindcss from 4.3.0 to 4.3.1 in /dashboard (…
dependabot[bot] Jun 14, 2026
eef2301
chore(deps): bump lucide-react from 1.16.0 to 1.18.0 in /dashboard (#…
dependabot[bot] Jun 14, 2026
74d90dd
chore(deps): bump @opentelemetry/sdk-node from 0.218.0 to 0.219.0 (#4…
dependabot[bot] Jun 14, 2026
d8bbac4
chore(deps): bump nodemailer from 8.0.10 to 9.0.0
dependabot[bot] Jun 14, 2026
fb61e62
test(cli): add 422 + Content-Type regression tests for ag send + endu…
aegis-gh-agent[bot] Jun 15, 2026
b17977b
feat(dashboard): perf instrumentation for endurance test #4683
OneStepAt4time Jun 15, 2026
a8b7daa
docs: dashboard perf instrumentation (#4723) (#4729)
OneStepAt4time Jun 15, 2026
486567e
fix(dashboard): reserve row + KPI banner heights to eliminate CLS on …
OneStepAt4time Jun 15, 2026
5753eb1
feat(ci): add per-agent GitHub App identity scripts (#4733)
OneStepAt4time Jun 15, 2026
027f286
docs(branch-protection): split Current vs Planned; fix 5 categories o…
OneStepAt4time Jun 15, 2026
75177b5
docs(rules): cross-link Path (b) Fallback from prs.md + branching.md …
OneStepAt4time Jun 15, 2026
f6f5432
fix(acp): sendPrompt awaits in-flight background handshake (#4738) (#…
aegis-gh-agent[bot] Jun 15, 2026
8461bf4
docs: document /command soft-fail to 200 + /send 500 post-delivery ca…
OneStepAt4time Jun 15, 2026
9381de2
fix(dashboard): restrict row transition to paint/composite properties…
OneStepAt4time Jun 16, 2026
ca4a34a
test(screenshot): bump timeout 5s → 30s on captureScreenshot error te…
OneStepAt4time Jun 16, 2026
84af8c5
feat(perf,#4740): add mock SSE producer rig + test-only _testInjectSs…
OneStepAt4time Jun 16, 2026
94275e1
ci(ops,#4754): add-cron-failure-alerts.sh — apply default failureAler…
aegis-gh-agent[bot] Jun 17, 2026
455becb
test(acp,#4760): add failing TDD spec for pendingHandshakes dedup
Jun 17, 2026
cf9a3e1
feat(acp,#4760): dedup concurrent createSessionAsync by sessionId
Jun 17, 2026
26e81fe
fix(acp,#4760): dedup returns first call's session+backendRunId, not …
Jun 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
91 changes: 91 additions & 0 deletions .claude-internals/competitors/cc-connect-tracking-2026-05-30.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Competitive Intelligence — cc-connect (chenhg5/cc-connect)

**Last updated:** 2026-05-30
**Previous update:** 2026-05-07
**Updated by:** Scribe (Athena assignment)

## Current Stats

| Metric | Value | Change since 2026-05-07 |
|--------|-------|------------------------|
| Stars | 11,043 | +3,543 (+47% in 23 days) |
| Forks | 1,009 | +260 |
| Open issues | 479 | +~100 |
| Latest stable | v1.3.2 (2026-04-21) | No new stable |
| Latest beta | v1.3.3-beta.4 (2026-05-27) | 4 beta releases since tracking |
| Language | Go | — |
| License | None | — |
| Description | Bridge local AI coding agents to messaging platforms | Expanded to include Cursor, Gemini CLI, Codex |

## Version History (since 2026-05-07)

### v1.3.3-beta.4 (2026-05-27)
- Fixed web console 404 regression in release builds
- Fixed Slack @mention parsing without trailing space
- Fixed DingTalk picture message handling
- Fixed Feishu require_mention=false ignored
- Fixed AskUserQuestion resolved by empty delivery receipts (security fix)
- Fixed Codex env config not honored at startup
- Fixed Codex explicit stdio app-server URL lost across restarts
- Fixed OpenCode session ID extraction and yolo mode
- Fixed Feishu concurrency safety and Windows test compat
- **New:** `max_turn_time_mins` config — absolute wall-clock cap per agent turn with two-phase shutdown
- 8 external contributors

### v1.3.3-beta.3 (2026-05-24)
- Blackbox testing framework (Phase 1-2)
- Cursor and OpenCode agent support in tests
- Codex stdio sentinel for app_server backend
- Kimi session UUID capture from stderr

### v1.3.3-beta.2 (2026-05-09)
- Slack Assistant API support with Agent toggle
- DingTalk richText message support
- MAX messenger webhook delivery mode
- Claude Code project-level environment variables
- `display_mode` enum replacing `quiet` boolean
- Claude Code custom system prompt configuration
- Bridge security: require token when Bridge is enabled

## Platform Coverage

**Chat platforms (12):**
Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work (企业微信), WeChat (微信), QQ Bot, MAX messenger, iMessage (via bridge), Web console

**AI agent backends (10+):**
Claude Code, Cursor, Gemini CLI, Codex, OpenCode, Kimi, Devin, Trae CLI ACP, COCO ACP, NekoCode, VisionCoder, AIHubMix

## Release Cadence

- 4 beta releases in 23 days (May 7 → May 30)
- Average: ~1 beta every 5-6 days
- External contributor activity: 8 contributors in beta.4 alone
- Stable v1.3.2 released 2026-04-21 — v1.3.3 stable expected soon

## New Features Since Last Tracking

| Feature | Aegis Status | Priority |
|---------|-------------|----------|
| Cursor agent support | ❌ Not started | Phase-4c per ADR-0032 |
| OpenCode agent support | ❌ Not started | Phase-4c |
| Kimi agent support | ❌ Not started | Phase-4c |
| `max_turn_time_mins` wall-clock cap | ⚠️ Aegis has idle timeout, not per-turn cap | Medium — useful for production |
| Codex env config + stdio app-server | ✅ ADR-0032 covers Codex via NdjsonRpcTransport | In progress (#3180) |
| Slack Assistant API | ❌ Aegis has basic Slack | Medium |
| Blackbox testing framework | ⚠️ Aegis has E2E tests | Maintain advantage |
| `display_mode` enum | ⚠️ Aegis uses verbose config | Low |

## Growth Trajectory

- 7,500 → 11,043 stars in 23 days = **+47% growth**
- Fork rate: ~11 new forks/day
- Issue velocity: ~4-5 new issues/day
- External contributor count increasing (8 in latest beta)

This is sustained hypergrowth. cc-connect is on track for 15K+ stars by end of June 2026 at current velocity.

## Files for Reference
- Previous tracking: `cc-connect-tracking-2026-05-07.md`
- Issue analysis: #3004
- Competitive landscape: #3016
- Threat matrix: `docs/competitive-threat-matrix.md`
24 changes: 24 additions & 0 deletions .claude/rules/branching.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,27 @@ hotfix/<issue-number>-<short-description>
- ❌ Never open a PR targeting `main` unless maintainer explicitly says so
- ❌ Never merge your own PR — Argus reviews and merges
- ❌ Never open a PR with failing CI
- ❌ Never open a bot-authored PR without a documented approval path — see
the [Path (b) Fallback in CONTRIBUTING.md](../../CONTRIBUTING.md#path-b-fallback-boss-approves-via-cli-on-bot-authored-prs)

## Bot-authored PRs

If you are submitting a PR from a bot identity (e.g., `aegis-gh-agent[bot]`,
`dependabot[bot]`, or a per-agent App once registered), the PR cannot
self-approve. The [Path (b) Fallback in CONTRIBUTING.md](../../CONTRIBUTING.md#path-b-fallback-boss-approves-via-cli-on-bot-authored-prs)
documents the lane:

```bash
# Ema (or another authorized human) runs this from their machine
gh pr review --approve <PR_NUMBER>
```

The structural fix (a dedicated reviewer App / PAT) is tracked in
[#4725](https://github.com/OneStepAt4time/aegis/issues/4725). Until that lands,
Path (b) is the documented lane. Branch protection's
`required_approving_review_count: 1` is still enforced — the human click
counts as the approval; Argus's pre-stage review is the technical LGTM.

For unattended-merge scenarios (overnight, hotfix window), see
[#4728](https://github.com/OneStepAt4time/aegis/issues/4728) (fallback approver
chain — adds an owner-overridable bot approver).
36 changes: 36 additions & 0 deletions .claude/rules/prs.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,39 @@ Keep PRs minimal and focused. One concern per PR. If a PR touches more than 20 f
## Review

All PRs require review before merge. Argus is the validation steward.

## Bot-authored PRs (Path (b) Fallback)

Bot-authored PRs (e.g., `aegis-gh-agent[bot]`, `dependabot[bot]`, or per-agent
Apps once registered) cannot self-approve on GitHub. The
[Path (b) Fallback in CONTRIBUTING.md](../../CONTRIBUTING.md#path-b-fallback-boss-approves-via-cli-on-bot-authored-prs)
documents the lane convention Ema uses to unblock such PRs:

```bash
# Ema runs this from their machine (NOT a bot, NOT a CI runner)
gh pr review --approve <PR_NUMBER>
```

The structural fix (a dedicated reviewer App / PAT) is tracked in
[#4725](https://github.com/OneStepAt4time/aegis/issues/4725). Until that lands,
Path (b) is the documented lane for human approval clicks on bot-authored PRs.
Branch protection's `required_approving_review_count: 1` is still enforced
(Argus pre-stages the review, Ema's click counts as the second eye).

**When you're submitting a bot-authored PR:**

1. Open the PR with the bot identity (the bot must be the author, not a
human proxy).
2. Wait for CI green + Argus's pre-stage review.
3. Request an explicit human approval click in `#aegis-devs` with
`@<Ema's Discord ID>` — do **not** assume the bot can self-approve.
4. Once the human approves, the PR is mergeable per the standard flow.

**When you're reviewing a bot-authored PR:**

- Bot-authored PRs follow the same review bar as human-authored ones
(Functional Code Gate, evidence template, CI green).
- The approval step is split: Argus does the technical LGTM, Ema (or
another authorized human) does the approval click. See
[Path (b) in CONTRIBUTING.md](../../CONTRIBUTING.md#path-b-fallback-boss-approves-via-cli-on-bot-authored-prs)
for the full rationale.
39 changes: 39 additions & 0 deletions .githooks/post-merge
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env sh
# post-merge hook — auto-rebuild and restart Aegis after develop merges.
#
# Triggers when `git pull` (or merge) completes on the develop branch.
# Rebuilds the server and restarts the systemd service.
#
# To install: npm run hooks:install
# (or: git config core.hooksPath .githooks)

set -eu

BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")

if [ "$BRANCH" != "develop" ]; then
exit 0
fi

echo "[post-merge] Develop branch updated. Rebuilding Aegis..."

# Rebuild
if ! npm run build > /dev/null 2>&1; then
echo "[post-merge] ❌ Build failed. Not restarting."
exit 1
fi

echo "[post-merge] ✅ Build succeeded."

# Restart if Aegis service is running
if systemctl --user is-active --quiet aegis 2>/dev/null; then
echo "[post-merge] Restarting Aegis service..."
systemctl --user restart aegis
echo "[post-merge] ✅ Aegis restarted."
elif systemctl --user is-active --quiet manus 2>/dev/null; then
echo "[post-merge] Restarting manus service (legacy name)..."
systemctl --user restart manus
echo "[post-merge] ✅ manus restarted."
else
echo "[post-merge] ℹ️ No running Aegis service found. Start manually: npm start"
fi
Loading
Loading