Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
225 commits
Select commit Hold shift + click to select a range
f7959a5
fix(teams): register literal Graph subscription resources
tbiyss Oct 12, 2026
c99eb2d
fix: honor explicit readable secrets in strict egress mode
tbiyss Oct 22, 2026
2e26b81
fix: restore Composio Workbench processing
tbiyss Oct 23, 2026
6fb6d23
fix: restore Composio Workbench processing on beta
tbiyss Oct 23, 2026
ac13327
fix: allow admins to use shared Slack controls and question forms
tbiyss Oct 23, 2026
85f0d84
fix: let admins resolve shared run decision buttons
tbiyss Oct 23, 2026
f1247b5
docs: record admin control regression evidence
tbiyss Oct 23, 2026
73501e1
fix: integrate admin access to shared Slack controls
tbiyss Oct 23, 2026
197b3cc
docs: adopt TypeScript for new application code
tbiyss Oct 23, 2026
2dd0a07
docs: integrate TypeScript development policy
tbiyss Oct 23, 2026
5cdabc8
feat: provide current-model shortcut defaults for new installations
tbiyss Oct 23, 2026
de4d023
Merge current-model shortcut defaults into beta
tbiyss Oct 23, 2026
4686e84
feat: add per-harness default effort settings
tbiyss Oct 23, 2026
47725e3
feat: integrate harness default effort settings
tbiyss Oct 23, 2026
fb06087
fix: harden the admin web and Slack control surfaces (audit batch 1)
tbiyss Oct 25, 2026
5f40146
merge: land security hardening batch 1 on beta
tbiyss Oct 25, 2026
9e877a9
fix: make Admins-only access evict seeded members and apply the model…
tbiyss Oct 25, 2026
1634374
fix: key login backoff on the declared proxy header only and cap tota…
tbiyss Oct 25, 2026
79df51b
merge: refresh login limiter branch against beta (keep both doc secti…
tbiyss Oct 25, 2026
8e25548
fix: keep admins on the guest list when a channel is narrowed to Admi…
tbiyss Oct 25, 2026
59b370b
feat(slack): open, work in and archive Slack code channels
tbiyss Oct 25, 2026
6df98f3
merge: land security hardening batch 3 (login backoff behind a proxy)…
tbiyss Oct 25, 2026
e39fc06
merge: refresh access consistency branch against beta (keep both doc …
tbiyss Oct 25, 2026
e4206b9
test: web eviction keeps admins on the guest list
tbiyss Oct 25, 2026
41913bf
merge: land security hardening batch 4 (access policy and runtime con…
tbiyss Oct 25, 2026
7e9cc55
fix: refuse sensitive roots as channel work folders and protected nam…
tbiyss Oct 25, 2026
dd90698
fix: allow shared custom work folders and a lenient in-channel export…
tbiyss Oct 25, 2026
1b34301
merge: refresh work-folder boundary branch against beta (keep both do…
tbiyss Oct 25, 2026
3a61e86
merge: land security hardening batch 2 (work-folder boundary and prot…
tbiyss Oct 25, 2026
d66e56a
fix(auth): serve sign-in assets before authentication
tbiyss Oct 25, 2026
a5405d6
feat(auth): add individual admin accounts and passkey sign-in
tbiyss Oct 25, 2026
bd1eac0
fix(auth): sign in with a passkey without username entry
tbiyss Oct 25, 2026
13ae39a
fix(ssh): match container history to the verified author role
tbiyss Oct 25, 2026
226f278
Merge fix/ssh-author-runtime into beta
tbiyss Oct 25, 2026
41c8f89
feat(slack): show running effort and live phase in Stop label
tbiyss Oct 25, 2026
85a5c15
Merge running effort and live phase labels
tbiyss Oct 25, 2026
9311ced
Link dashboard passkeys to existing admin users
tbiyss Oct 25, 2026
f2f9808
Record passkey acceptance and isolate continuation fixture
tbiyss Oct 25, 2026
330e748
Version login scripts with the rendered sign-in page
tbiyss Oct 25, 2026
b7f0f07
feat(slack): accept /status-cg as an alias of /status
tbiyss Oct 25, 2026
30b9c96
Merge Slack code channels into beta
tbiyss Oct 25, 2026
51c856e
docs: separate the code channels changelog entry
tbiyss Oct 25, 2026
7e8f985
fix(slack): count the origin's channel-scoped skills for a code channel
tbiyss Oct 25, 2026
895e76c
Merge code channel scoped-skills fix into beta
tbiyss Oct 25, 2026
ce3ffbe
feat: link shared workspace setup to its established conversation
tbiyss Oct 26, 2026
d5adb04
Merge linked working-folder setup into beta
tbiyss Oct 26, 2026
a839279
fix: preserve linked workspace authorization and separation state
tbiyss Oct 26, 2026
03116e0
Merge linked workspace verification fixes into beta
tbiyss Oct 26, 2026
3e75f86
feat: allow optional password and Slack code admin sign-in
tbiyss Oct 28, 2026
2144dc3
docs: record password and Slack sign-in verification
tbiyss Oct 28, 2026
5465e19
fix: reject stale bootstrap password verification and complete contro…
tbiyss Oct 28, 2026
6ad6f67
test: isolate web security runtime and record final auth regression
tbiyss Oct 28, 2026
27f04ee
docs: record reviewed candidate coverage
tbiyss Oct 28, 2026
f2e530d
chore: patch documentation dependencies required by CI audit
tbiyss Oct 28, 2026
6fc36d7
merge: preserve current main approval policy in admin sign-in candidate
tbiyss Oct 30, 2026
3be38e5
test: verify domain approval with linked admin authentication
tbiyss Oct 30, 2026
f3594d5
fix: allow Composio Remote Bash processing
tbiyss Nov 1, 2026
8047493
Merge Composio Remote Bash admission into beta
tbiyss Nov 1, 2026
6edc4f0
fix: price Terra usage and refresh history on upgrade
tbiyss Nov 1, 2026
c783478
Merge Terra pricing correction into beta
tbiyss Nov 1, 2026
fea57b8
Archive Slack channels after bot removal and suspend workspace updates
tbiyss Nov 3, 2026
273fdbe
Merge channel archival on bot removal into beta
tbiyss Nov 3, 2026
5bad019
Adjust free registration caps and cost history window
tbiyss Nov 2, 2026
fdd8763
Cap Free active conversations and align plan documentation
tbiyss Nov 3, 2026
918234c
Merge Free plan limits and cost history into beta
tbiyss Nov 3, 2026
70a8f5c
docs: publish VPS sizing and hosting recommendations
tbiyss Nov 3, 2026
1731d79
Merge public VPS sizing documentation into beta
tbiyss Nov 3, 2026
4610c69
docs: record public VPS guide publication checks
tbiyss Nov 3, 2026
7b9b01d
Merge public VPS sizing documentation into beta
tbiyss Nov 3, 2026
4a51680
docs: add Contabo hosting option to GitHub and public guides
tbiyss Nov 3, 2026
fe95e3b
Merge Contabo hosting documentation into beta
tbiyss Nov 3, 2026
be28b51
docs: record Contabo guide publication validation
tbiyss Nov 3, 2026
cec0569
Merge Contabo hosting documentation into beta
tbiyss Nov 3, 2026
5a14b02
Apply Free cost history across operational reporting views
tbiyss Nov 3, 2026
a359860
Merge verified Free cost history reporting fixes into beta
tbiyss Nov 3, 2026
7241ce6
fix: honor readable variable visibility in agent output
tbiyss Nov 3, 2026
91325f8
fix(skills): reconcile generated protocol dependencies after packaging
tbiyss Nov 3, 2026
883b772
fix(slack): preserve native list message references and URL fields
tbiyss Nov 3, 2026
4362c0c
Limit active conversation threads per channel each month
tbiyss Nov 3, 2026
157eaf6
Merge per-channel Free conversation allowances into beta
tbiyss Nov 3, 2026
830e5b6
fix(slack): preserve archival and reconcile bot membership before pro…
tbiyss Nov 3, 2026
b3a1e34
fix(slack): retry membership preparation after transient store failures
tbiyss Nov 3, 2026
18df009
Merge archival ordering and membership recovery fixes into beta
tbiyss Nov 3, 2026
1ebfb73
docs(skills): require catalog authoring and verified repository writes
tbiyss Nov 3, 2026
7952166
Merge catalog-first skill authoring guidance into beta
tbiyss Nov 3, 2026
76f7cb8
fix: refuse a run capability once its conversation has no live work
tbiyss Nov 3, 2026
c155c28
feat: channel-level user API tokens for the run API
tbiyss Nov 3, 2026
83f7d3b
merge: land run capability liveness on beta
tbiyss Nov 3, 2026
ec7b777
merge: refresh channel API tokens branch against beta (keep both doc …
tbiyss Nov 3, 2026
02209b6
feat: user-level skill catalog tokens; catalog tokens never reach per…
tbiyss Nov 3, 2026
38d8342
merge: land channel-level user API tokens on beta
tbiyss Nov 3, 2026
7296d1f
merge: refresh user skill tokens branch against beta (migration renum…
tbiyss Nov 3, 2026
da8bf4e
merge: land user-level skill catalog tokens on beta
tbiyss Nov 3, 2026
efa23ca
merge: bring company domain auto-approval from main to beta
tbiyss Nov 3, 2026
4b6598f
merge: retain current beta additions with domain approval
tbiyss Nov 3, 2026
0d44429
docs: record beta domain approval integration checks
tbiyss Nov 3, 2026
2919560
test: adapt domain approval browser fixture to beta identity boot
tbiyss Nov 3, 2026
8a11f1d
fix: complete Slack Connect sessions after reply delivery
tbiyss Nov 3, 2026
de0ff81
fix: ship import-safe Slack app manifest and installer guidance
tbiyss Nov 3, 2026
52ed607
fix: align shipped Slack manifest with current skill
tbiyss Nov 3, 2026
45cba08
fix: label catalog-owned skills as gateway-owned
tbiyss Nov 4, 2026
534c839
fix: delete Slack threads without posting a report
tbiyss Nov 4, 2026
c62efa1
fix: warn and continue for invalid skill folder grants
tbiyss Nov 4, 2026
87a0836
Merge fix: continue with valid skill folder grants
tbiyss Nov 4, 2026
edc1fce
feat: approve channel SSH egress through worker approval cards
tbiyss Nov 4, 2026
6294779
docs: describe worker-approved SSH egress control
tbiyss Nov 4, 2026
75f25d4
fix: expose missing skill manifests in library diagnostics
tbiyss Nov 4, 2026
3a0b84b
Merge fix: library diagnostics for missing skill manifests
tbiyss Nov 4, 2026
90ce914
fix: accept public IP destinations for channel SSH egress
tbiyss Nov 4, 2026
f81d193
fix: charge Claude turns their session delta with per-model components
tbiyss Nov 4, 2026
4d06471
Merge fix: charge Claude turns their session delta with per-model com…
tbiyss Nov 4, 2026
4e44217
test: pin the scratch runtime root before web-security saves settings
tbiyss Nov 4, 2026
a3b188c
Merge test: pin the scratch runtime root before web-security saves se…
tbiyss Nov 4, 2026
6ca265b
feat: let a skill declare its preferred model and swap the turn to it
tbiyss Nov 4, 2026
961747f
Merge feat: model-specific skills with per-channel engine/model swap …
tbiyss Nov 4, 2026
313f383
feat: let create_skill and update_skill set a skill's preferred model
tbiyss Nov 4, 2026
6f0a84e
Merge feat: preferred-model argument on create_skill / update_skill
tbiyss Nov 4, 2026
b0747c8
fix(slack): show user request above fork source link
tbiyss Nov 5, 2026
98b4ca3
Merge fix: show fork request above source link
tbiyss Nov 5, 2026
e0f89a9
merge: refresh pending Slack code sign-in against current beta
tbiyss Nov 5, 2026
e73fa93
feat: use Slack email for password and code sign-in
tbiyss Nov 5, 2026
640e198
docs: record email sign-in acceptance evidence
tbiyss Nov 5, 2026
27b3066
fix: release skill publication recovery pins after successful publish
tbiyss Nov 5, 2026
baa6cb4
Merge fix: recover automatic skill publication pins
tbiyss Nov 5, 2026
a4e85be
fix: harden rootless Podman system service setup
tbiyss Nov 5, 2026
0e37169
fix: align DM egress policy and accept HTML attachments
tbiyss Nov 5, 2026
ae5103e
fix: suppress reminders for checked Slack threads
tbiyss Nov 5, 2026
718dd2b
Merge fix: suppress reminders for checked Slack threads
tbiyss Nov 5, 2026
2a4ac55
Merge remote-tracking branch 'origin/beta' into fix/slack-email-signin
tbiyss Nov 5, 2026
730dcbd
Merge pull request #207 from makeitfutureDev/fix/password-slack-login
makeitfutureDev Nov 5, 2026
1b02369
fix: queue Slack forks behind active source turns
tbiyss Nov 5, 2026
4c84202
fix: preserve queued fork history and recovery handoff
tbiyss Nov 5, 2026
3adb3cb
Merge fix: queue Slack forks behind busy source turns
tbiyss Nov 5, 2026
73885e6
merge: refresh gateway-owned terminology against beta
tbiyss Nov 5, 2026
170ab68
merge: clarify gateway-owned skill terminology
tbiyss Nov 5, 2026
6adfd67
docs: explain Enterprise organization controls and monthly spending l…
tbiyss Nov 5, 2026
d4cc37c
docs: describe monthly spending admission in channel settings
tbiyss Nov 5, 2026
8536a6d
feat: add admin-managed monthly channel USD budgets
tbiyss Nov 5, 2026
800a794
feat: expose skill model swap in Teams and Google Chat settings
tbiyss Nov 5, 2026
b19d147
Merge feat: skill model swap in Teams and Google Chat settings
tbiyss Nov 5, 2026
7c51a61
feat: reserve organization controls for Enterprise
tbiyss Nov 5, 2026
fd3bce9
merge: preserve current beta features with Enterprise gates
tbiyss Nov 5, 2026
6d56f12
feat: show a skill's preferred model on every skill listing
tbiyss Nov 5, 2026
5e7ba6a
Merge feat: preferred model on skill listings
tbiyss Nov 5, 2026
ca8ba08
feat: show engine status bars in SSH sessions
tbiyss Nov 5, 2026
f0b8af8
Merge feat: SSH engine status bars
tbiyss Nov 5, 2026
5a67a73
merge: retain latest beta features with Enterprise controls
tbiyss Nov 5, 2026
f9a9f2a
Merge feat: Enterprise organization controls
tbiyss Nov 5, 2026
347f56a
merge: consolidate channel budgets with Enterprise spending policy
tbiyss Nov 5, 2026
9eb63db
fix: preserve spending refusal contracts across queued runs
tbiyss Nov 5, 2026
5d3b10e
merge: complete monthly channel USD budget management
tbiyss Nov 5, 2026
6e30713
fix: honor explicit readable secrets in strict egress mode
tbiyss Oct 22, 2026
85ece8a
fix: report strict withholding after automatic visibility changes
tbiyss Nov 5, 2026
7b66f50
test: provide budget status callback in folder save fixture
tbiyss Nov 5, 2026
e463357
merge: reconcile original readable secrets branch after beta refresh
tbiyss Nov 5, 2026
06f4157
merge: honor explicit readable secrets in strict egress mode
tbiyss Nov 5, 2026
af3b38f
merge: refresh Teams Graph subscription selectors against beta
tbiyss Nov 5, 2026
3752e0f
test(teams): preserve legacy selector metadata on renewal
tbiyss Nov 5, 2026
4a4680a
merge: register literal Teams Graph subscription selectors
tbiyss Nov 5, 2026
66226ec
fix: detect Codex tool process resource exhaustion
tbiyss Nov 5, 2026
1d4b5cb
Merge branch 'fix/codex-resource-exhaustion' into beta
tbiyss Nov 5, 2026
da7c898
docs: research note and design proposal for channel-to-channel agent …
tbiyss Sep 28, 2026
1a64fcc
docs(agent-mail): gate sends on the requester's own access and the so…
tbiyss Nov 6, 2026
d450675
chore: bundle official Make CLI and refresh runtime pins
tbiyss Nov 6, 2026
6fa2636
chore(deps): refresh supported dependencies and security fixes
tbiyss Nov 6, 2026
127678b
docs: clarify Make placeholder acceptance and SDK runtime requirement
tbiyss Nov 6, 2026
d681e60
test: keep current-day usage fixture within today at midnight
tbiyss Nov 6, 2026
c984a4d
chore: adopt Node 24 LTS for channel images
tbiyss Nov 6, 2026
afa6260
fix(container): seed writable XDG state directories for CLIs
tbiyss Nov 6, 2026
c39b705
merge: refresh dependencies and ship Make CLI on Node 24
tbiyss Nov 6, 2026
abd4703
chore: align runtime and deployment tooling on Node 24
tbiyss Nov 6, 2026
023aaef
merge: align runtime gates and deployments on Node 24
tbiyss Nov 6, 2026
f13898b
feat(agent-mail): let a channel's agent message another channel's age…
tbiyss Nov 6, 2026
832f711
docs(agent-mail): align the design note with the shipped phase one
tbiyss Nov 6, 2026
4f7b519
Merge remote-tracking branch 'origin/beta' into feat/agent-mail
tbiyss Nov 6, 2026
741cd2c
merge: channel-to-channel agent mail on the requester's own access
tbiyss Nov 6, 2026
7d0c5d2
docs(controls): document send_agent_message in the control reference
tbiyss Nov 6, 2026
62a1754
merge: document send_agent_message in the control reference
tbiyss Nov 6, 2026
7cc101b
fix: enforce Enterprise organization policy management
tbiyss Nov 6, 2026
73ffa61
Merge remote-tracking branch 'origin/beta' into fix/enterprise-policy…
tbiyss Nov 6, 2026
a744e2d
test: qualify browser document in policy acceptance
tbiyss Nov 6, 2026
10c819a
fix: accept Sunday seven in cron schedules
tbiyss Nov 6, 2026
7f2cc87
Merge Sunday cron alias fix into beta
tbiyss Nov 6, 2026
5efcd43
chore: prepare 0.7.0 stable promotion candidate
tbiyss Nov 6, 2026
83ead5a
Merge Sunday cron fix into stable candidate
tbiyss Nov 6, 2026
64a2969
Merge stable candidate metadata into beta
tbiyss Nov 6, 2026
66cf358
test: stabilize legacy passkey identity linking browser flow
tbiyss Nov 6, 2026
a393ec0
test: restore authenticated dashboard browser fixtures
tbiyss Nov 6, 2026
7c2845f
Merge stable passkey browser acceptance fixture
tbiyss Nov 6, 2026
8583697
Merge authenticated browser acceptance fixtures into beta
tbiyss Nov 6, 2026
9ce5b09
fix: keep user editor checkboxes within form width
tbiyss Nov 6, 2026
f298e84
Merge remote-tracking branch 'origin/beta' into fix/user-editor-mobil…
tbiyss Nov 6, 2026
c10018b
Merge user editor checkbox layout fix into beta
tbiyss Nov 6, 2026
a5ff27b
fix: retain canonical user identity in secret reveal audits
tbiyss Nov 6, 2026
536af3f
chore: select 0.6.5 and require owner request for 0.7
tbiyss Nov 6, 2026
8473b46
Merge requested 0.6.5 release version into beta
tbiyss Nov 6, 2026
9d4508a
Merge remote-tracking branch 'origin/beta' into fix/secret-reveal-use…
tbiyss Nov 6, 2026
f69c376
Merge canonical secret reveal audit identity fix into beta
tbiyss Nov 6, 2026
b7949ee
fix: enforce entitlement on every domain policy enable request
tbiyss Nov 6, 2026
2442cab
fix: include derived next runs in schedule listings
tbiyss Nov 6, 2026
6965641
Merge reviewed schedule listing next-run fix
tbiyss Nov 6, 2026
d29d0d2
Merge reviewed auto-approval enable entitlement fix
tbiyss Nov 6, 2026
fe1f1e3
Merge reviewed 0.6.5 acceptance fixes into beta
tbiyss Nov 6, 2026
85007a1
fix(auth): revoke target identity proofs during recovery
tbiyss Nov 6, 2026
7d369c2
test(api): always mutate the rejected token
tbiyss Nov 6, 2026
565200d
Merge recovery proof revocation fix for acceptance
tbiyss Nov 6, 2026
9550639
Merge deterministic invalid-token test for acceptance
tbiyss Nov 6, 2026
0d10712
Merge reviewed recovery and deterministic token-test fixes into beta
tbiyss Nov 6, 2026
b12c47a
fix(docs): ship the handbook favicon
tbiyss Nov 6, 2026
e15a23c
Merge reviewed handbook favicon fix into beta
tbiyss Nov 6, 2026
f24af20
fix: clarify direct-host network policy in MCP description
tbiyss Nov 6, 2026
00107ae
Merge reviewed network policy description clarification into beta
tbiyss Nov 6, 2026
255cfa6
Fix agent directory refresh time after spring DST gap
tbiyss Nov 6, 2026
24e8db2
Merge reviewed agent directory DST rearm fix into beta
tbiyss Nov 6, 2026
2b62a68
fix: continue Slack agent after secret server approval
tbiyss Nov 6, 2026
23dcbfd
Merge reviewed secret server approval continuation into beta
tbiyss Nov 6, 2026
8fc2214
Redact hidden proxy placeholders in background job logs
tbiyss Nov 6, 2026
7c8aab3
Merge reviewed background placeholder redaction fix into beta
tbiyss Nov 6, 2026
c3ea82f
Preserve container job exit codes in completion audit
tbiyss Nov 6, 2026
cb41bac
Merge reviewed background exit code audit fix into beta
tbiyss Nov 6, 2026
c67df2e
fix: format background continuation errors for chat
tbiyss Nov 6, 2026
b1e8299
fix: redact decoded continuation errors before bounding
tbiyss Nov 6, 2026
a92ab85
Merge reviewed background continuation notice fix into beta
tbiyss Nov 6, 2026
ae6efff
fix: distinguish shell task lifecycle from agent progress
tbiyss Nov 6, 2026
2c44e6c
Merge reviewed shell-task progress fix into beta
tbiyss Nov 6, 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
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ body:
id: node
attributes:
label: Node version
description: Output of `node --version`. The supported minimum is 22.13.
description: Output of `node --version`. The supported minimum is 24.0.0.
validations:
required: true
- type: dropdown
Expand Down Expand Up @@ -93,5 +93,5 @@ body:
required: true
- label: This is not a security vulnerability.
required: true
- label: I am running a supported Node version (>= 22.13) on Linux (systemd + rootless Podman).
- label: I am running a supported Node version (>= 24.0.0) on Linux (systemd + rootless Podman).
required: true
5 changes: 2 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@ jobs:
matrix:
# Linux only: ChannelGate runs under systemd with rootless Podman, so there is no macOS leg.
os: [ubuntu-latest]
# 22.13 is the exact supported minimum (node:sqlite is stable from 22.13 — see
# package.json engines); 24 is the current LTS line. Node 20 cannot run the app at all.
node: ["22.13", "24"]
# Exercise the exact supported floor and the current Node 24 LTS patch.
node: ["24.0.0", "24"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
persist-credentials: false
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: "22.13"
node-version: "24"
cache: npm
- run: node scripts/check-release-candidate.mjs
- run: npm ci
Expand Down
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ post/edit the reply in the thread (degraded to the surface's capabilities) → u
## Where things live

- `src/start.js` + `src/platform-gate.js` + `src/server.js` — entry and boot. `start.js` checks the
Node floor (≥ 22.13, `node:sqlite`) with NO static imports, the gate refuses every non-Linux
Node floor (≥ 24.0.0, `node:sqlite`) with NO static imports, the gate refuses every non-Linux
host with one plain line, then `server.js` boots in this order: `.env`, the legacy-layout
migration FIRST, the runtime root + database + singleton lock, settings over env, the skills
catalog, hardening, the container CLI probe (FATAL without one), the MCP socket, Express,
Expand Down Expand Up @@ -249,7 +249,7 @@ post/edit the reply in the thread (degraded to the surface's capabilities) → u
idle reaper), exec (session-leader helpers so a later exec can signal the whole tree),
credentials, the per-channel HOME volume and the mounts, the operator's VS Code lease
(`npm run vscode -- <channel>`).
- `containers/` — the runtime image: `Containerfile` (`node:22-bookworm-slim`, the `agent` user
- `containers/` — the runtime image: `Containerfile` (`node:24-bookworm-slim`, the `agent` user
at the daemon's real uid/gid, tini, a root-owned toolchain under `/opt/channelgate`),
`versions.json` (`imageSpecVersion` + every pin: Claude Code, Codex, `mcp-remote`, `vercel`,
`supabase`, Playwright + `agent-browser` with Chromium, Python with OpenCV and faster-whisper;
Expand Down
256 changes: 256 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

27 changes: 24 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ trailer on each commit *is* that acceptance (CLA Section 7). Participation is go

## Set up

Requirements: Node **>= 22.13** (the floor is exact — `node:sqlite` is stable from 22.13 and the
daemon refuses to boot below it), Git, and Linux — the daemon refuses to boot anywhere else.
Requirements: Node **>= 24.0.0** (use the current Node 24 LTS release; `nvm use` reads
the repository's `.nvmrc`), Git, Linux, and the container runtime described in [INSTALL.md](./INSTALL.md).

```bash
git clone <your fork> && cd <checkout>
Expand All @@ -26,6 +26,27 @@ database) lives outside the repository under the gateway runtime root, not in th
`INSTALL.md` covers a full working install; the tests below need neither Slack credentials nor a
running daemon.

## TypeScript for new code

TypeScript is the default for new backend and browser modules, Node scripts, and tests. Use strict
type checking and explicit types at module boundaries. Validate external inputs at runtime; types
do not replace the existing authorization checks, schemas, or adapter validation. Do not suppress
type errors with blanket `any` annotations or disabled checking.

Adopt TypeScript incrementally. Existing JavaScript files can receive focused maintenance fixes;
when substantially extending a module, migrate it or extract the new implementation into a typed
module. A feature does not require a rewrite of unrelated JavaScript. Shell and Python helpers
keep their appropriate language.

The current daemon and tooling execute JavaScript directly. Before adding the first executable
TypeScript module, include the mixed JavaScript/TypeScript build and execution support in that
change, with reproducible checks on the supported Node versions. Cover test discovery, browser
assets, container helper staging, installation/update/release paths, and the existing static and
security checks wherever affected. Type checking must run in CI. Do not introduce a `.ts` file
that these paths cannot execute, ship, or check; do not raise the Node minimum implicitly. This
policy establishes the language choice; it does not claim that runtime TypeScript support has
already shipped.

## Run the checks

```bash
Expand All @@ -45,7 +66,7 @@ Tests must leave no scratch directories behind. Create temp directories with `te
exit-handler cleanup, and `npm test` also runs `scripts/test-scratch-sweep.mjs` first to sweep
anything a crashed run left in the system temp dir.

Every one of these must pass before you open a pull request. CI runs the suite on Node 22.13 and 24
Every one of these must pass before you open a pull request. CI runs the suite on the exact Node 24.0.0 minimum and current Node 24
on ubuntu-latest.

## Branches and review
Expand Down
Loading
Loading