Skip to content

ci: run type check, lint and builds on push and PR - #20

Open
245678000000 wants to merge 1 commit into
CometixSpace:mainfrom
245678000000:ci/add-github-actions
Open

ci: run type check, lint and builds on push and PR#20
245678000000 wants to merge 1 commit into
CometixSpace:mainfrom
245678000000:ci/add-github-actions

Conversation

@245678000000

Copy link
Copy Markdown

Summary

There is no automation in the repo today, but it does take outside PRs, so every contributor has to assert by hand that they ran the gate.

Two jobs, both ubuntu-latest / Node 22:

Job Steps
Cursor++ pnpm install --frozen-lockfilecheck-typeslint → production esbuild
installer npm cinpm run build

Steps are split rather than folded into pnpm run package so a failure names itself in the job list. pnpm is set up before setup-node because setup-node's cache: pnpm needs pnpm on PATH to locate the store.

test:server is deliberately left out — and here is why

I tried to wire it in first, and it fails on a clean runner. 5 of the 38 test files read the developer's machine:

  • agentOrchestrator.integration, autoSummarize, chatSummary, providerRuntime — these reach loadSqlite3() in Cursor++/src/server/database/sqlite.ts, which does createRequire(...)('@vscode/sqlite3') against an installed Cursor app. No Cursor on the runner, so: Failed to load @vscode/sqlite3. Tried 6 paths. CURSOR_APP_ROOT re-points the lookup but cannot conjure a Cursor install.
  • protocol.test.ts:232 — asserts the preamble contains <user_rules, but that block only appears when the real ~/.ccursor/knowledge-base.json has entries. On a clean $HOME it is absent.

Failing run for the record: 331182302635 failed | 32 passed | 1 skipped (38).

That is worth knowing on its own: the suite passing locally is partly a property of a dev box that has Cursor installed and a populated ~/.ccursor. I did not try to fix it here — whether those five should be mocked, gated behind an env flag, or kept as local-only integration tests is your call. The workflow carries a comment with the diagnosis and the one-step diff to add once they are decoupled. Happy to take that on as a follow-up if you tell me which direction you want.

Test plan

Ran on a real runner via a throwaway PR on my fork — both jobs green: 33118498445.

Action majors verified against their current releases before pinning (checkout@v7, setup-node@v7, pnpm/action-setup@v6); pnpm/action-setup tolerates this repo having no root package.json because version: is given explicitly.

The repo has no automation, but it does take outside PRs, so every
contributor has to assert by hand that they ran the gate.

Two jobs, both on ubuntu-latest / Node 22:

  extension  pnpm install --frozen-lockfile, check-types, lint,
             production esbuild
  installer  npm ci, npm run build

The steps are split rather than folded into `pnpm run package` so a
failure names itself in the job list. pnpm is set up before setup-node
because setup-node's `cache: pnpm` needs pnpm on PATH to locate the
store.

test:server is deliberately not wired up yet. 5 of the 38 test files
read the developer's machine and cannot pass on a clean runner:
agentOrchestrator.integration, autoSummarize, chatSummary and
providerRuntime go through loadSqlite3(), which createRequire's
@vscode/sqlite3 out of an installed Cursor; protocol.test.ts:232 asserts
a <user_rules> block that only exists when the real
~/.ccursor/knowledge-base.json has entries. The workflow carries a
comment with the details and the one-step diff to add once those are
decoupled.
Rogers-F added a commit to Rogers-F/CCursor that referenced this pull request Aug 29, 2026
- §4 步 0-8 全量实现: leading 提取 / 预算反推 (targetFloor−leading−reserve,
  clamp[min(8K,5%w), 60K]) / 可行性检查 (B 模式降级 → disabled 拒动) /
  原子组划分 (v2 谓词: [user]|[纯文本 assistant]|[assistant(tool_use)+连续 results]) /
  o200k 计价 (前沿豁免 + 图片原子 1.6K + 渲染后实测 + 输入侧字段级省略) /
  尾向组边界扫描 (×1.15 安全边际) / 单组超预算兜底 / 违约就地升级链
  (占位线减半→预算减半→B 模式) / 占位替换 (骨架+locator+blobId+头尾预览
  175/75 tok 封顶) / 锚点保底 (真 user 回溯, 计入预算重扫, 不入 archive) /
  切分后孤儿断言 (O(n) 配对闭包, 违规回退最近安全组边界)
- CompactionPlan 增 elidedOriginals / mode / anchorBlobId / diagnostics;
  createCompactionArtifacts: 占位 blob 进 nextRootBlobIds, 原文 blobId 并入
  archive.summarizedMessages, 锚点 blobId 排除
- 两路接入: inline 与 summarizeAction 均传 {contextTokenLimit},
  compactedTokenDetails 改 o200k 实测重置; 会话级 in-process 互斥锁
  (inline tryAcquire 跳过计数 / summarizeAction 等待后重评估)
- constants.ts: 旧四常数标 @deprecated, 新参数集中定义; usage.ts 增共享
  computeAutoCompactTriggerReserveTokens (窗口−min(40K,15%×窗口))
- 测试: §8 CometixSpace#1-CometixSpace#10/CometixSpace#12/CometixSpace#13/CometixSpace#20-#29/#32 共 33 例 (compactionBudget.test.ts);
  autoSummarize 3 个条数断言改预算断言; compactionRepair 集成测试改预算语义
  + providerOptions 端到端存续断言
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant