Skip to content

Commit 17aa709

Browse files
committed
Merge remote-tracking branch 'origin/claude/discovery-index-cloudflare-container' into claude/discovery-index-cloudflare-container
2 parents 12713cd + fae69c7 commit 17aa709

525 files changed

Lines changed: 6218 additions & 34289 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/contributing-to-loopover/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ Run the matching command(s) and **commit the regenerated file(s)** — CI fails
202202
| A Cloudflare binding/var in `wrangler.jsonc` | `npm run cf-typegen` | `worker-configuration.d.ts` |
203203
| Drizzle schema (`src/db/schema.ts`) | `npm run drizzle:generate` | the new `migrations/NNNN_*.sql` |
204204
| Added a raw-SQL migration | (none — just author it) | next **contiguous** `migrations/NNNN_snake.sql` |
205-
| `src/selfhost/**` (or a few other scanned files — see `scripts/gen-selfhost-env-reference.mjs`'s `DEFAULT_SOURCE_ROOTS`) adding/removing an `env.SOMETHING` read | `npm run selfhost:env-reference` | `apps/loopover-ui/src/lib/selfhost-env-reference.ts` — the doc cites the file only (not `file:line`, deliberately, so an unrelated line shift elsewhere in the file never makes this go stale) |
205+
| `src/selfhost/**` (or a few other scanned files — see `scripts/gen-selfhost-env-reference.ts`'s `DEFAULT_SOURCE_ROOTS`) adding/removing an `env.SOMETHING` read | `npm run selfhost:env-reference` | `apps/loopover-ui/src/lib/selfhost-env-reference.ts` — the doc cites the file only (not `file:line`, deliberately, so an unrelated line shift elsewhere in the file never makes this go stale) |
206206
| CLI command surface | `npm run command-reference` | the generated command-reference doc |
207207
| UI files (`apps/loopover-ui/**`) | `npm --workspace @loopover/ui run format` | formatted files |
208208

@@ -221,9 +221,9 @@ npm audit --audit-level=moderate # the dependency-review job's local eq
221221

222222
`npm run test:ci` runs, and must pass, **all of**: `actionlint`, `db:migrations:check`,
223223
`db:schema-drift:check`, `selfhost:env-reference:check`, `selfhost:validate-observability`,
224-
`cf-typegen:check`, `build:mcp:check`, `build:miner:check`, `typecheck`, `test:coverage`, `test:engine-parity`, `test:live-gate-parity`, `test:driver-parity`, the
225-
`@loopover/engine` workspace's own test run, `test:workers`, `test:mcp-pack`,
226-
`test:miner-pack`, `rees:test`, `ui:openapi:check`, `ui:openapi:settings-parity`,
224+
`cf-typegen:check`, `typecheck`, `test:coverage`, `test:engine-parity`, `test:live-gate-parity`, `test:driver-parity`, the
225+
`@loopover/engine` workspace's own test run, `test:workers`, `build:mcp`, `test:mcp-pack`,
226+
`build:miner`, `test:miner-pack`, `rees:test`, `ui:openapi:check`, `ui:openapi:settings-parity`,
227227
`ui:version-audit`, `docs:drift-check`, `manifest:drift-check`, `engine-parity:drift-check`,
228228
`command-reference:check`, `ui:lint`, `ui:typecheck`, `ui:test`, `ui:build`. If any step fails, fix it
229229
and re-run — do not push a red tree. (Full per-check table in `reference.md`; check `package.json`'s

.claude/skills/contributing-to-loopover/reference.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ jobs run only if their path filter matched; on push to `main`, everything runs.
4040
| mcp → pack | tarball hygiene | `npm run test:mcp-pack` | unexpected/forbidden file or stale README in the npm tarball |
4141
| miner → build | miner engine/pkg build | `npm run build:miner` | `@loopover/{engine,miner}` build error |
4242
| miner → pack | tarball hygiene | `npm run test:miner-pack` | unexpected/forbidden file in the miner npm tarball |
43+
44+
`packages/loopover-{miner,mcp}` are `.ts`-only in git: editing their `bin`/`lib` source means editing `.ts`
45+
and nothing else — the compiled `.js`/`.d.ts` these two `build` commands produce is gitignored, never
46+
committed, and never something a PR needs to touch. Tests (in-process imports and the CLI-harness
47+
subprocess spawns alike) run straight off the `.ts`; `build:mcp`/`build:miner` above exist only to
48+
validate the real publishable artifact still compiles and packs cleanly.
49+
4350
| rees → test | review-enrichment-service's own suite | `npm run rees:test` | any failing test under `review-enrichment/` |
4451
| ui → openapi drift | spec check | `npm run ui:openapi:check` | committed `openapi.json` is stale (run `npm run ui:openapi`) |
4552
| ui → openapi settings-parity | schema/type structural diff | `npm run ui:openapi:settings-parity` | `RepositorySettingsSchema` (src/openapi/schemas.ts) is missing a field the `RepositorySettings` type has |
@@ -60,7 +67,7 @@ jobs run only if their path filter matched; on push to `main`, everything runs.
6067
Every `vitest.config.ts` in the repo (root, `vitest.workers.config.ts`, and every workspace with its own
6168
config) wires this as `globalSetup`, so it runs once before any test file regardless of how vitest was
6269
invoked — including a direct `npx vitest run test/unit/<file>.test.ts`, which this doc's own §6 ("Iterate,
63-
then verify") recommends for fast iteration. `scripts/check-node-version.mjs`'s `pretest*` hooks
70+
then verify") recommends for fast iteration. `scripts/check-node-version.ts`'s `pretest*` hooks
6471
(`package.json`) only cover 5 high-traffic npm script names (`test`, `test:ci`, `test:coverage`,
6572
`test:workers`, `ui:test`) as a genuinely-faster fail there (before npm even spawns vitest) — they are a
6673
nicety on top of the globalSetup guarantee, not a substitute for it. An earlier version of this guard was

.dockerignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ dist-ssr
1212
coverage
1313
.git
1414
.claude
15-
# The self-host bundle's only entry point is src/server.ts (scripts/build-selfhost.mjs) and `npm ci`
15+
# The self-host bundle's only entry point is src/server.ts (scripts/build-selfhost.ts) and `npm ci`
1616
# only ever sees the root package*.json (copied before the rest of the tree) — the loopover-ui
1717
# workspace app and the test suite are never read during the image build, so keep both out of the
1818
# build context entirely (measured: ~11MB of this repo's ~22MB tracked-file footprint).
@@ -26,7 +26,7 @@ auth.json
2626
**/auth.json
2727
# The review-enrichment service (REES) is a separate Railway service with its own Dockerfile — keep it out of
2828
# the engine image. EXCEPT analyzer-metadata.json: the main engine's own code (src/review/enrichment-analyzers-
29-
# taxonomy.ts) imports it directly, so excluding it wholesale breaks `scripts/build-selfhost.mjs`'s esbuild
29+
# taxonomy.ts) imports it directly, so excluding it wholesale breaks `scripts/build-selfhost.ts`'s esbuild
3030
# bundle (module resolution failure at build time, not a runtime gap -- caught by the "build + boot smoke test"
3131
# workflow, which is path-gated and doesn't run on every PR).
3232
review-enrichment

.github/workflows/ci-duration-report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
- name: Pull ci.yml run stats
3434
env:
3535
GITHUB_TOKEN: ${{ github.token }}
36-
run: node scripts/ci-duration-report.mjs --days=7 --output=ci-duration-report.json
36+
run: node --experimental-strip-types scripts/ci-duration-report.ts --days=7 --output=ci-duration-report.json
3737
- name: Write summary
3838
run: |
3939
node <<'NODE'

0 commit comments

Comments
 (0)