Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
703 commits
Select commit Hold shift + click to select a range
64b8aa9
config: accept bom-prefixed settings json
im10furry Jul 8, 2026
284808b
fix: honor sandbox target path semantics
im10furry Jul 9, 2026
9abc971
fix: expand repeated paste placeholders
im10furry Jul 9, 2026
da868ab
feat: durable headless telemetry and goal schedule control plane
im10furry Jul 17, 2026
c8593a2
fix: harden goal schedule client errors and web UX
im10furry Jul 17, 2026
082a33f
feat(web): let Schedules pick a session without leaving the page
im10furry Jul 17, 2026
e260ece
refactor(ai): host-agnostic debug, providers, and LLM constants
im10furry Jul 17, 2026
7260c5a
refactor(ai): free OpenAI transport from session/config/logging core …
im10furry Jul 17, 2026
7ea8d0c
fix: harden tool-call conversion and agent loop recovery counters
im10furry Jul 17, 2026
6cb7662
refactor(ai): drain queryOpenAI host deps and fix low reasoning effort
im10furry Jul 17, 2026
fac9d63
refactor(ai): free @kode/ai from @kode/core package dependency
im10furry Jul 17, 2026
15a407d
refactor(ai): own Responses/Chat Completions adapter stack in @kode/ai
im10furry Jul 17, 2026
b5afcfd
refactor(ai): share capability types through messageTypes
im10furry Jul 17, 2026
c9eac99
fix(mimo): disable thinking by default so completion budget is usable
im10furry Jul 17, 2026
641ba66
fix(openai): harden DeepSeek cache accounting
im10furry Jul 18, 2026
4941f1a
fix(web): restore goal schedule client guard
im10furry Jul 18, 2026
028f6eb
test(core): remove stale tool-call type suppression
im10furry Jul 18, 2026
62888f5
style: format repository sources
im10furry Jul 18, 2026
56f160a
fix(openai): preserve DeepSeek request semantics
im10furry Jul 18, 2026
11bee86
Merge branch 'main' into codex/integrate-main-into-refactor-20260718
im10furry Jul 18, 2026
20d0668
fix(openai): align stream completion mirror
im10furry Jul 18, 2026
d1aee8f
fix(ci): isolate workspace test execution
im10furry Jul 18, 2026
cf28443
fix(ci): stabilize Ink workspace tests
im10furry Jul 18, 2026
bd910c3
fix(ci): eliminate cross-platform test races
im10furry Jul 18, 2026
84c299b
fix(ci): await delayed paste rendering
im10furry Jul 18, 2026
f27c996
fix(ci): await MCP overlay routes
im10furry Jul 18, 2026
712f92a
feat: notify main agent when background agents finish (#205)
RadicalGitter Jul 22, 2026
3fa5d29
chore: remove all design/planning/archive docs from codebase
im10furry Jul 25, 2026
69d4630
feat(mcp): implement sampling/createMessage capability
im10furry Jul 25, 2026
992515c
test(mcp): align client capability tests with sampling enabled by def…
im10furry Jul 25, 2026
48f4f7a
feat(mcp): implement sampling/createMessage capability (#207)
im10furry Jul 25, 2026
1990ec3
feat: add kode migrate command and drop legacy .claude reading (#206)
im10furry Jul 25, 2026
866cf9c
fix(security): remove KODE_BYPASS_SAFETY_FLOOR env escape hatch
im10furry Jul 25, 2026
79d64f4
feat(core): add structured error hierarchy with KodeError base class
im10furry Jul 25, 2026
55893f9
feat(agent): add AgentSupervisor with resource limits
im10furry Jul 25, 2026
c9b9bda
perf(cli): lazy-load Ink UI modules to speed up headless startup
im10furry Jul 25, 2026
867af65
feat(mcp): add resources/list and resources/read to MCP server
im10furry Jul 25, 2026
8efec53
feat(cli): add --trust flag for explicit permissive mode
im10furry Jul 25, 2026
73cccf1
chore(quality): enable noImplicitAny and tighten lint gates
im10furry Jul 25, 2026
d22997c
docs: sync READMEs with reality; remove vscode/desktop skeleton apps
im10furry Jul 25, 2026
d5cd41c
chore(ts): defer tsconfig strictness flags to the type-fix PR
im10furry Jul 25, 2026
4afba64
build: upgrade patch/minor dependencies (#208)
im10furry Jul 26, 2026
9430c49
feat(ts): enable strict TypeScript and fix type annotations across co…
im10furry Aug 3, 2026
f097a69
fix(ai): improve OpenAI stream robustness and retry header access
im10furry Aug 3, 2026
c9b7530
fix(core): harden MCP client, sandbox network, and VCR message mapping
im10furry Aug 3, 2026
43044e9
feat(sdk): add SHA-256 content hash verification to FilePool freshness
im10furry Aug 3, 2026
9a09bbb
fix(cli): tighten print mode type safety and control request handling
im10furry Aug 3, 2026
330ac84
test: add retry header and VCR mapping tests; fix signal test flakiness
im10furry Aug 3, 2026
75531af
docs: sync READMEs with package structure; add fault review
im10furry Aug 3, 2026
13bab90
fix(tools): harden tool implementations for strict TypeScript
im10furry Aug 3, 2026
689ed7c
fix(permissions): repair double-backslash regex bugs in sed and xi se…
im10furry Aug 3, 2026
3a6be99
fix(engine+core): repair stripSystemMessages regex backreference and …
im10furry Aug 3, 2026
c4b75bd
fix(core): prevent file descriptor leak in detectLineEndingsDirect
im10furry Aug 3, 2026
1168475
perf(runtime): cap background process output buffer and deduplicate s…
im10furry Aug 3, 2026
d2ba454
fix(tools): wire AgentSupervisor.checkLimits into foreground query loop
im10furry Aug 3, 2026
9a3050f
fix(sdk): prevent unhandled rejection in retry timer and scheduler er…
im10furry Aug 3, 2026
dac7a1c
fix(runtime): kill orphan child processes in exec() error path
im10furry Aug 3, 2026
a564c90
fix(core): eliminate error swallowing, timer leaks, and resource clea…
im10furry Aug 3, 2026
e4c40a9
fix(multi): resolve race conditions, path traversal, and resource cle…
im10furry Aug 3, 2026
647b1e1
Merge branch 'beta' into main — comprehensive codebase hardening
im10furry Aug 3, 2026
5c6624f
fix(security): fail closed model credentials
im10furry Aug 10, 2026
d421999
fix(cli): align lightweight help options
im10furry Aug 10, 2026
f86b0ea
chore(format): normalize CI formatting
im10furry Aug 10, 2026
01a8c39
chore(lint): clarify process kill race
im10furry Aug 10, 2026
b2e22c4
fix(oauth): report client cache reset failures
im10furry Aug 10, 2026
bc3f664
chore(engine): remove redundant pipeline catch
im10furry Aug 10, 2026
6a02b10
chore(runtime): document bootstrap fallbacks
im10furry Aug 10, 2026
199ebc9
chore(cli): document exit cleanup fallbacks
im10furry Aug 10, 2026
0fb4e37
chore(runtime): clarify process cleanup fallbacks
im10furry Aug 10, 2026
e8c82c8
feat(model-config): layer setup controls
im10furry Aug 10, 2026
3e5ce20
fix(build): add missing runtime type declarations
im10furry Aug 10, 2026
81178b0
test(ci): align regressions with credential migration
im10furry Aug 10, 2026
d3fda77
docs: add credential migration fault reviews
im10furry Aug 10, 2026
6def60f
feat(cli): improve accessibility and local task clarity
im10furry Aug 10, 2026
d696685
docs: record cli accessibility audit
im10furry Aug 10, 2026
1cabc9a
fix(config): register high contrast theme names
im10furry Aug 10, 2026
bdf6916
test(runs): assert safe reconcile guidance
im10furry Aug 10, 2026
8cb62c3
Merge pull request #212 from shareAI-lab/develop
im10furry Aug 10, 2026
97d4833
feat(runtime): recover stalled requests safely
im10furry Aug 10, 2026
08c1dc2
chore: ignore local qoder wiki
im10furry Aug 10, 2026
4c257fd
feat(skills): add Lingguang Flash Apps publisher
im10furry Aug 10, 2026
1a53d47
chore: ignore Python bytecode caches
im10furry Aug 10, 2026
1b3cf46
style(skills): format Lingguang documentation
im10furry Aug 10, 2026
44219ad
test(e2e): wait for queued Escape cancellation
im10furry Aug 10, 2026
44531f3
test(ci): wait for remount and git setup
im10furry Aug 10, 2026
32c5180
fix(tui): preserve cursor during delayed paste
im10furry Aug 10, 2026
94022a0
test(ci): allow daemon startup on slow runners
im10furry Aug 10, 2026
7fc777f
feat(context): add project-scoped learning
im10furry Aug 10, 2026
4b73a5d
feat(agent): add verified coding workflow
im10furry Aug 10, 2026
6f48bb9
build: migrate linting to oxlint
im10furry Aug 10, 2026
4485a79
test: isolate process-wide runtime state
im10furry Aug 10, 2026
1895a73
fix(context): restore project learning
im10furry Aug 10, 2026
2d47bd0
build(engine): sync permissions lockfile
im10furry Aug 10, 2026
574a52c
Merge pull request #214 from shareAI-lab/develop
im10furry Aug 10, 2026
77b8972
fix(cli): improve credential and request feedback
im10furry Aug 10, 2026
2418aec
perf(cli): prewarm shared llm runtime
im10furry Aug 10, 2026
a8ee165
fix(models): normalize model configuration errors
im10furry Aug 10, 2026
9827d40
fix(cli): organize commands and enforce tool requests
im10furry Aug 10, 2026
2473f64
fix(engine): fail closed without project tools
im10furry Aug 10, 2026
73fa0f4
feat(ai): strengthen verified coding workflow
im10furry Aug 10, 2026
adc6f48
fix(ai): preserve streamed tool calls
im10furry Aug 10, 2026
84c7595
fix(ai): harden tool call adapters
im10furry Aug 10, 2026
ad65777
refactor(config): centralize markdown frontmatter parsing
im10furry Aug 10, 2026
cc7016a
fix(config): reject malformed model profiles
im10furry Aug 10, 2026
b23a2c2
build(security): audit and update dependencies
im10furry Aug 10, 2026
3fe14a2
fix(security): harden archive and editor inputs
im10furry Aug 10, 2026
72ec681
fix(auth): isolate OAuth and local web credentials
im10furry Aug 10, 2026
20a0a44
fix(server): bound daemon transport and web responses
im10furry Aug 10, 2026
d2478dc
fix(network): pin WebFetch public targets
im10furry Aug 10, 2026
8e19564
perf(web): split heavy views and serialize polling
im10furry Aug 10, 2026
95cb0d4
fix(cli): stabilize interactive input lifecycle
im10furry Aug 10, 2026
6856d44
fix(security): archive extraction hardening - limits, checksum valida…
im10furry Aug 10, 2026
e1d209f
fix(security): WebFetch SSRF protection - DNS pinning, public address…
im10furry Aug 10, 2026
c706703
test: add comprehensive coverage for OAuth, archive, WebFetch, stream…
im10furry Aug 10, 2026
cbd607a
refactor: server and web app improvements - routing, components, hooks
im10furry Aug 10, 2026
f5102b5
feat: config frontmatter support, model migrations, CI workflow updat…
im10furry Aug 10, 2026
08fd383
chore: bench p50/p95 percentiles, dependency updates
im10furry Aug 10, 2026
00c86ba
fix: resolve 113 no-empty and 3 react-hooks lint warnings
im10furry Aug 10, 2026
f567ea2
Merge pull request #215 from shareAI-lab/develop
im10furry Aug 10, 2026
3ddcd55
fix(ai): prevent streamed snapshot-field concatenation OOM
im10furry Aug 10, 2026
42dea6a
Merge pull request #216 from shareAI-lab/develop
im10furry Aug 10, 2026
bf13c10
fix(ai): accept growing streamed snapshots
im10furry Aug 11, 2026
7ac9567
test(core): satisfy strict stream assertion
im10furry Aug 11, 2026
2c8c87b
fix(client): clarify bounded daemon errors
im10furry Aug 11, 2026
219fd1d
fix(ai): bound provider retry delays
im10furry Aug 11, 2026
d18f0ab
fix(ai): sync OpenAI stream mirror
im10furry Aug 11, 2026
00a861b
Merge branch 'develop' into pre
im10furry Aug 12, 2026
3730dd7
perf(web): smooth streamed transcript interaction
im10furry Aug 12, 2026
97ffa16
perf(cli): streamline transcript tool state
im10furry Aug 12, 2026
ce0d2f6
perf(cli): index live tool progress
im10furry Aug 12, 2026
d8eceef
perf(cli): combine prompt status summaries
im10furry Aug 12, 2026
9393022
fix(cli): surface failed repl turns
im10furry Aug 12, 2026
0844053
perf(cli): reuse empty progress state
im10furry Aug 12, 2026
b64c4c6
perf(cli): streamline file completion scans
im10furry Aug 12, 2026
342d501
perf(cli): stabilize prompt queue props
im10furry Aug 12, 2026
76119e0
perf(cli): skip inactive completion refreshes
im10furry Aug 12, 2026
290ca07
perf(cli): limit background task refreshes
im10furry Aug 12, 2026
97d38e3
perf(cli): memoize running task panel
im10furry Aug 12, 2026
df78e99
fix(cli): recover prompt preparation failures
im10furry Aug 12, 2026
b0cc33e
fix(cli): report note persistence failures
im10furry Aug 12, 2026
74239fa
perf(cli): skip hidden selector measurements
im10furry Aug 12, 2026
81f8fc1
perf(cli): throttle status line usage updates
im10furry Aug 12, 2026
8ad2f47
fix(cli): cancel newly started requests reliably
im10furry Aug 12, 2026
252630d
perf(cli): bound live stream preview rendering
im10furry Aug 12, 2026
f02127a
fix(cli): refresh completion highlights on theme changes
im10furry Aug 12, 2026
e7f21b5
fix(cli): refresh completion help by suggestion type
im10furry Aug 12, 2026
4382f69
fix(cli): recover image paste staging failures
im10furry Aug 12, 2026
d12fe16
fix(cli): recover external editor launch failures
im10furry Aug 12, 2026
6f964eb
fix(cli): cancel deferred paste delivery on unmount
im10furry Aug 12, 2026
ccc91b6
fix(cli): cancel stale message selector forks
im10furry Aug 12, 2026
cd0a39e
fix(cli): complete manual Codex login checks
im10furry Aug 12, 2026
77aba9c
fix(cli): ignore stale model discovery results
im10furry Aug 12, 2026
66c253c
fix(cli): ignore stale connection test results
im10furry Aug 12, 2026
2c2e9cc
fix(cli): ignore stale Codex login checks
im10furry Aug 12, 2026
706fc63
fix(cli): show pending session recovery
im10furry Aug 12, 2026
c8ad0c4
fix(cli): ignore cancelled OAuth results
im10furry Aug 12, 2026
3b0eb26
fix(cli): ignore stale session clipboard results
im10furry Aug 12, 2026
59d5d62
fix(cli): ignore stale directory completions
im10furry Aug 12, 2026
029434a
fix(cli): tolerate unavailable prompt history
im10furry Aug 12, 2026
ef5c7ec
fix(cli): prevent duplicate external editor launches
im10furry Aug 12, 2026
691fca8
Merge pull request #217 from shareAI-lab/fix/cli-interaction-reliability
im10furry Aug 12, 2026
de43fdc
fix(cli): guard status connectivity checks
im10furry Aug 12, 2026
f00f90d
Merge pull request #218 from shareAI-lab/fix/cli-status-screen-lifecycle
im10furry Aug 12, 2026
0d19f85
fix(cli): guard console editor launches
im10furry Aug 12, 2026
5bff4ac
Merge pull request #219 from shareAI-lab/fix/cli-console-editor-lifec…
im10furry Aug 12, 2026
d44c2a3
fix(cli): guard open file editor launches
im10furry Aug 12, 2026
acadb20
Merge pull request #220 from shareAI-lab/fix/cli-open-file-editor-lif…
im10furry Aug 12, 2026
16f42cf
test(cli): wait for resume view transitions
im10furry Aug 12, 2026
019f0fb
test(cli): await agent view transitions
im10furry Aug 12, 2026
04056b6
test(cli): await open file view transitions
im10furry Aug 12, 2026
8519532
Merge pull request #222 from shareAI-lab/fix/cli-resume-cross-project…
im10furry Aug 12, 2026
07ab99e
Merge pull request #223 from shareAI-lab/test/cli-agents-view-transit…
im10furry Aug 12, 2026
64b4dc6
Merge pull request #224 from shareAI-lab/test/cli-open-file-view-tran…
im10furry Aug 12, 2026
0e0b346
fix(cli): guard notifications editor launches
im10furry Aug 12, 2026
dbb7c60
Merge pull request #221 from shareAI-lab/fix/cli-notifications-editor…
im10furry Aug 12, 2026
a9b1317
fix(cli): guard transcript editor launches
im10furry Aug 12, 2026
9ab7fde
Merge pull request #225 from shareAI-lab/fix/cli-transcript-editor-li…
im10furry Aug 12, 2026
51e24ef
fix(cli): guard task editor launches
im10furry Aug 12, 2026
8302f6a
Merge pull request #226 from shareAI-lab/fix/cli-tasks-editor-lifecycle
im10furry Aug 12, 2026
1b96d10
fix(cli): guard plan editor launches
im10furry Aug 12, 2026
53eb3a6
Merge pull request #227 from shareAI-lab/fix/cli-tasks-editor-lifecycle
im10furry Aug 12, 2026
0ca0948
fix(cli): guard help clipboard copies
im10furry Aug 12, 2026
5145a92
Merge pull request #228 from shareAI-lab/fix/cli-async-interaction-audit
im10furry Aug 12, 2026
c607a2f
fix(cli): guard transcript clipboard copies
im10furry Aug 12, 2026
486f879
Merge pull request #229 from shareAI-lab/fix/cli-transcript-clipboard…
im10furry Aug 12, 2026
a2c3d65
fix(cli): recover bug report browser failures
im10furry Aug 12, 2026
17541f3
Merge pull request #230 from shareAI-lab/fix/cli-bug-report-lifecycle
im10furry Aug 12, 2026
639eb0b
Merge pull request #231 from shareAI-lab/develop
im10furry Aug 12, 2026
e7fb15f
feat(ai): optimize prompt policies
im10furry Aug 12, 2026
78ab678
feat(auth): offer Codex recommended settings
im10furry Aug 12, 2026
83088c2
Merge branch 'feat/codex-oauth-recommended-settings' into beta
im10furry Aug 12, 2026
67075fc
Merge branch 'pre' into beta
im10furry Aug 12, 2026
c331c89
fix(cli): stabilize thinking stream rendering
im10furry Aug 12, 2026
f4dac21
Merge branch 'fix/cli-thinking-stream-rendering' into beta
im10furry Aug 12, 2026
4ac2244
feat(goal): add durable lifecycle controls
im10furry Aug 12, 2026
94f74d5
feat(voice): add experimental MiMo conversation
im10furry Aug 12, 2026
de374f3
feat(rollout): gate MCP sampling and store MiMo credentials
im10furry Aug 12, 2026
e443222
feat(runtime): unify agent orchestration and session controls
im10furry Aug 12, 2026
f80f4b5
Merge pull request #232 from shareAI-lab/feat/unified-agent-runtime-beta
im10furry Aug 12, 2026
e90cdcb
feat(cli): integrate coding workflow enhancements
im10furry Aug 12, 2026
26f4f54
Merge pull request #234 from shareAI-lab/feat/pre-to-beta-integration
im10furry Aug 12, 2026
7558add
feat(auth): add reusable OAuth model runtimes
im10furry Aug 12, 2026
9c46517
fix(cli): stabilize interactive lifecycle and race handling
im10furry Aug 12, 2026
6d59679
perf(cli,web): optimize rendering and state updates
im10furry Aug 12, 2026
0f0877e
fix(ai,client): dedupe streamed snapshots and bound retries
im10furry Aug 12, 2026
d1c08db
feat(cli,server): harden secrets handling and enforce quality gates
im10furry Aug 12, 2026
1b9475a
fix(security): address code review findings
im10furry Aug 12, 2026
22ded45
fix(core): bound project learning storage and tighten archive checks
im10furry Aug 12, 2026
5026744
refactor(engine,core): remove enforced verification system
im10furry Aug 12, 2026
201c459
Merge remote-tracking branch 'origin/beta' into gov/develop-merge
im10furry Aug 12, 2026
47a97b8
feat(cli): fuzzy completion, batched permission approvals, and single…
im10furry Aug 12, 2026
1d56bfd
fix(cli): anchor REPL output to the bottom of the viewport
im10furry Aug 13, 2026
ae3b186
fix(cli): keep live stream visible when completed messages overflow
im10furry Aug 13, 2026
3f9df1b
chore: untrack node_modules (accidentally committed symlink in merge)
im10furry Aug 13, 2026
ae82524
fix(ai): restore streaming for MiMo with file tools
im10furry Aug 13, 2026
43b92aa
feat(tools): multi-provider web search with automatic fallback
im10furry Aug 13, 2026
6a31d6a
fix(tools): allow proxy fake-ip range in WebFetch SSRF guard
im10furry Aug 13, 2026
059064e
fix(core): harden task persistence and coordination
im10furry Aug 13, 2026
e5ef6de
feat(cli): add F10 voice conversation shortcut
im10furry Aug 13, 2026
232f29a
feat: complete core extraction and runtime hardening
im10furry Aug 14, 2026
7d88655
fix(ci): isolate unit coverage and runner-only tests
im10furry Aug 14, 2026
7190773
fix(cli): stabilize Windows editor and statusline tests
im10furry Aug 14, 2026
c80cc62
fix(cli): resolve HOME-free Windows editor paths
im10furry Aug 14, 2026
cdc5718
fix(cli): normalize Windows editor home paths
im10furry Aug 14, 2026
5138939
ci: stabilize parallel workspace tests
im10furry Aug 14, 2026
2d4caa7
Merge pull request #236 from shareAI-lab/develop
im10furry Aug 14, 2026
a23b428
test(cli): isolate image paste clipboard fallback
im10furry Aug 14, 2026
a7cbf2e
feat(cli): polish TUI interaction, status chrome, and completion
im10furry Aug 15, 2026
5fe4e8a
style(cli): format files that failed CI prettier check
im10furry Aug 15, 2026
386a874
feat(cli): simplify permissions and retain thinking
im10furry Aug 17, 2026
ab03acd
fix(permissions): auto-approve edit mode asks
im10furry Aug 17, 2026
629eae5
Merge pull request #237 from shareAI-lab/beta
im10furry Aug 17, 2026
f95e159
merge: integrate interaction review into beta
im10furry Aug 17, 2026
463cc63
fix(build): align npm dependency overrides
im10furry Aug 17, 2026
b945ef8
fix(cli): stabilize completion enter behavior
im10furry Aug 17, 2026
d714dcc
test(cli): wait for queued session messages
im10furry Aug 17, 2026
d6cab37
test(cli): wait for compose state before send
im10furry Aug 17, 2026
7906561
fix(ci): isolate shared webui test builds
im10furry Aug 17, 2026
da5b8db
test(ci): stabilize interactive integration tests
im10furry Aug 17, 2026
3486a46
test(cli): avoid transient compose render assertion
im10furry Aug 17, 2026
d88b6ed
test(cli): assert persisted session message
im10furry Aug 17, 2026
3812c01
test(cli): await session editor input readiness
im10furry Aug 17, 2026
e998019
test(daemon): allow slow client startup
im10furry Aug 17, 2026
1bd46e9
test(daemon): allow full smoke flow to settle
im10furry Aug 17, 2026
b46007c
test(daemon): isolate smoke workspace
im10furry Aug 17, 2026
12cfba1
test(daemon): isolate client workspace
im10furry Aug 17, 2026
94f918f
2.2.2
im10furry Aug 17, 2026
0074ab4
Merge pull request #239 from shareAI-lab/beta
im10furry Aug 17, 2026
879bb91
Release v3.0.0
im10furry Aug 17, 2026
44c106c
fix(runtime): restore OAuth tool execution and transcript visibility
im10furry Aug 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
42 changes: 0 additions & 42 deletions .eslintrc.cjs

This file was deleted.

11 changes: 11 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
* text=auto eol=lf

*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.wasm binary
*.zip binary
*.tgz binary
*.tar.gz binary
76 changes: 70 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CI

on:
push:
branches: [main]
branches: [develop, beta, main]
pull_request:
branches: [main]
branches: [develop, beta, main]

concurrency:
group: ci-${{ github.ref }}
Expand All @@ -19,7 +19,7 @@ jobs:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
env:
KODE_SKIP_BINARY_DOWNLOAD: "1"
KODE_SKIP_BINARY_DOWNLOAD: '1'
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout
Expand All @@ -28,21 +28,85 @@ jobs:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
bun-version: '1.3.14'

- name: Install
run: bun install
run: bun install --frozen-lockfile

- name: Dependency audit
if: runner.os == 'Linux'
run: bun run security:audit

- name: Format
run: bun run format:check
shell: bash

- name: Lint
run: bun run lint

- name: Typecheck
run: bun run typecheck

- name: Test
run: bun test
run: bun run test
env:
# Each file still runs in its own Bun process. Three workers shorten
# the CI critical path while remaining below the local default of four.
KODE_TEST_CONCURRENCY: '3'

- name: Unit coverage gate
if: runner.os == 'Linux'
run: bun run test:unit:coverage

- name: Build
run: bun run build

- name: Performance gates
if: runner.os == 'Linux'
run: bun run perf:gate

kode-agent-sdk:
name: Kode Agent SDK
runs-on: ubuntu-latest
timeout-minutes: 20
defaults:
run:
working-directory: kode-agent-sdk
services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_PASSWORD: testpass123
POSTGRES_DB: kode_test
ports:
- 5433:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.19.0'
cache: npm
cache-dependency-path: kode-agent-sdk/package-lock.json

- name: Install
run: npm ci

- name: Build
run: npm run build

- name: Unit tests
run: npm run test:unit
env:
POSTGRES_HOST: localhost
POSTGRES_PORT: 5433
POSTGRES_DB: kode_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: testpass123
149 changes: 80 additions & 69 deletions .github/workflows/dev-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,43 @@ on:

concurrency:
group: dev-release-${{ github.ref }}
cancel-in-progress: false
cancel-in-progress: true

jobs:
verify:
runs-on: ubuntu-latest
env:
KODE_SKIP_BINARY_DOWNLOAD: '1'
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.sha }}

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: '1.3.14'

- name: Install
run: bun install --frozen-lockfile

- name: Dependency audit
run: bun run security:audit

- name: Format
run: bun run format:check

- name: Lint
run: bun run lint

- name: Typecheck
run: bun run typecheck

- name: Test
run: bun run test

compute-version:
runs-on: ubuntu-latest
outputs:
Expand All @@ -17,11 +51,13 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.sha }}

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.18.1'
node-version: '20.19.0'

- name: Compute dev version
id: version
Expand All @@ -33,108 +69,83 @@ jobs:
echo "Dev version: ${DEV_VERSION}"

build-binaries:
needs: compute-version
needs: [verify, compute-version]
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
target: bun-linux-x64
asset: kode-linux-x64
- os: ubuntu-latest
target: bun-linux-arm64
asset: kode-linux-arm64
- os: macos-latest
target: bun-darwin-x64
asset: kode-darwin-x64
- os: macos-latest
target: bun-darwin-arm64
asset: kode-darwin-arm64
- os: windows-latest
target: bun-windows-x64
asset: kode-win32-x64.exe
runs-on: ${{ matrix.os }}
env:
KODE_SKIP_BINARY_DOWNLOAD: "1"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.sha }}

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.18.1'
node-version: '20.19.0'

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
bun-version: '1.3.14'

- name: Install
run: bun install

- name: Set package.json version (dev)
run: node -e "const fs=require('fs');const p=JSON.parse(fs.readFileSync('package.json'));p.version='${{ needs.compute-version.outputs.dev_version }}';fs.writeFileSync('package.json',JSON.stringify(p,null,2)+'\n')"

- name: Build binary
run: bun build src/entrypoints/index.ts --compile --target=${{ matrix.target }} --format=esm --outfile=${{ matrix.asset }}
run: bun install --frozen-lockfile

- name: Make binary executable
if: runner.os != 'Windows'
run: chmod +x ${{ matrix.asset }}
- name: Build Linux seccomp assets (Unix socket blocking)
if: runner.os == 'Linux'
run: node scripts/build-seccomp-assets.mjs --require --verbose

- name: Upload binary artifact
- name: Stage seccomp assets for publishing
if: runner.os == 'Linux'
run: |
set -euo pipefail
ARCH="$(node -p 'process.arch')"
mkdir -p "seccomp-assets/linux-${ARCH}"
cp "vendor/seccomp/${ARCH}/apply-seccomp" "seccomp-assets/linux-${ARCH}/apply-seccomp"
cp "vendor/seccomp/${ARCH}/unix-block.bpf" "seccomp-assets/linux-${ARCH}/unix-block.bpf"
chmod 755 "seccomp-assets/linux-${ARCH}/apply-seccomp" || true

- name: Upload seccomp assets artifact
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.asset }}
path: ${{ matrix.asset }}
name: seccomp-linux-${{ matrix.os }}
path: seccomp-assets/**
if-no-files-found: error

publish-npm:
needs: compute-version
runs-on: ubuntu-latest
env:
KODE_SKIP_BINARY_DOWNLOAD: "1"
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.18.1'
registry-url: 'https://registry.npmjs.org'

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install
run: bun install

- name: Set package.json version (dev)
run: node -e "const fs=require('fs');const p=JSON.parse(fs.readFileSync('package.json'));p.version='${{ needs.compute-version.outputs.dev_version }}';fs.writeFileSync('package.json',JSON.stringify(p,null,2)+'\n')"
run: node scripts/set-root-package-version.mjs
env:
DEV_VERSION: ${{ needs.compute-version.outputs.dev_version }}

- name: Typecheck
run: bun run typecheck
- name: Build (assets needed for standalone binary)
run: bun run build

- name: Test
run: bun test
- name: Ensure bundled ripgrep (current platform only)
run: bun run scripts/ensure-ripgrep.mjs --current-only

- name: Build (npm)
run: bun run build:npm
- name: Build binary
run: bun run build:binary

- name: Prepublish check
run: bun run scripts/prepublish-check.js
- name: Prepare release asset
id: asset
run: node scripts/prepare-release-asset.mjs

- name: "Publish npm (dist-tag: dev)"
run: npm publish --tag dev --access public --ignore-scripts
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Upload binary artifact
uses: actions/upload-artifact@v4
with:
name: ${{ steps.asset.outputs.asset }}
path: ${{ steps.asset.outputs.asset }}
if-no-files-found: error

prerelease:
needs: [compute-version, build-binaries, publish-npm]
needs: [compute-version, build-binaries]
runs-on: ubuntu-latest
permissions:
contents: write
Expand Down
Loading
Loading