Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
a071fbb
Add notion datasource sync contract scaffold
schickling-assistant May 25, 2026
95b3fb3
fix notion datasource sync contracts
schickling-assistant May 25, 2026
5660df5
fix notion sync event family codecs
schickling-assistant May 25, 2026
7f412c7
Add notion datasource sync SQLite store
schickling-assistant May 25, 2026
0f3fb98
Add notion datasource sync planner foundation
schickling-assistant May 25, 2026
f2034de
Fix notion datasource sync milestone 2C blockers
schickling-assistant May 25, 2026
cfb9a57
Fix query absence evidence scoping
schickling-assistant May 25, 2026
6c9abde
Add datasource sync body workspace contracts
schickling-assistant May 25, 2026
3a6433a
Add Notion datasource gateway fake
schickling-assistant May 25, 2026
801e088
fix(notion-datasource-sync): harden 3b safety guards
schickling-assistant May 25, 2026
befc032
fix(notion-datasource-sync): harden gateway boundaries
schickling-assistant May 25, 2026
45a9bd3
Add notion datasource sync e2e harness
schickling-assistant May 25, 2026
2eebb29
Fix notion datasource sync E2E harness gating
schickling-assistant May 25, 2026
f67cb50
Add notion datasource store projections
schickling-assistant May 25, 2026
b711cee
Add Notion datasource live gateway adapter
schickling-assistant May 25, 2026
1fa497b
fix(notion-datasource-sync): harden milestone 4a projections
schickling-assistant May 25, 2026
491a072
Fix live Notion preflight capability gating
schickling-assistant May 25, 2026
61729b6
fix(notion-datasource-sync): fail closed on pruned schema writes
schickling-assistant May 25, 2026
460189d
Add filesystem workspace integration
schickling-assistant May 25, 2026
f21780f
Add notion datasource outbox executor
schickling-assistant May 25, 2026
c0bf43f
Harden local workspace materialization
schickling-assistant May 25, 2026
998fbb3
Fix notion datasource executor fencing
schickling-assistant May 25, 2026
8b26439
Fence legacy outbox running leases
schickling-assistant May 25, 2026
4440019
Add notion datasource one-shot sync orchestration
schickling-assistant May 25, 2026
ede8612
fix notion datasource one-shot blocked state
schickling-assistant May 25, 2026
e5a368e
Fix recurrent one-shot blocker projections
schickling-assistant May 25, 2026
f988609
Add notion datasource conflict user commands
schickling-assistant May 25, 2026
305452b
fix notion datasource conflict resolution fencing
schickling-assistant May 25, 2026
661eb4a
Add notion datasource CLI and watch daemon
schickling-assistant May 25, 2026
1f8f080
fix notion datasource watch cli runtime
schickling-assistant May 25, 2026
3806ef7
fix notion datasource cli numeric flags
schickling-assistant May 25, 2026
b2c985a
Wire notion datasource CLI to live runtime
schickling-assistant May 25, 2026
894c46e
Fix notion datasource CLI finalization
schickling-assistant May 25, 2026
db52ea3
Harden notion datasource fake e2e traceability
schickling-assistant May 25, 2026
e5f7e01
fix notion datasource traceability claims
schickling-assistant May 25, 2026
a22e9d1
Harden notion datasource CLI and live e2e
schickling-assistant May 25, 2026
9a4054e
fix(notion-datasource-sync): fail closed unsupported cli paths
schickling-assistant May 25, 2026
e47c6c3
Harden notion datasource sync e2e edge cases
schickling-assistant May 25, 2026
76423ac
test(notion-datasource-sync): tighten patch c review coverage
schickling-assistant May 25, 2026
a2642d6
Stabilize notion datasource sync E2E tests
schickling-assistant May 25, 2026
1c20429
test(notion-datasource-sync): prove body adapter fail-closed boundary
schickling-assistant May 25, 2026
467dbaa
Add realistic Notion datasource E2E matrix
schickling-assistant May 25, 2026
0c5dae2
test(notion-datasource-sync): finish live and resume e2e coverage
schickling-assistant May 25, 2026
16eb334
Add Notion datasource OTEL tracing
schickling-assistant May 25, 2026
076191d
fix(notion-datasource-sync): correlate otel cli runs
schickling-assistant May 25, 2026
8762bd6
refactor(notion-datasource-sync): group source modules
schickling-assistant May 26, 2026
e639331
fix(nix): refresh oxc config pnpm deps hash
schickling-assistant May 26, 2026
6669276
chore(docs): normalize vrs formatting
schickling-assistant May 26, 2026
779b88a
test(notion-datasource-sync): cover e2e edge cases
schickling-assistant May 26, 2026
b54918f
refactor(notion): centralize shared sync contracts
schickling-assistant May 26, 2026
9305204
chore(lint): drop notion-datasource-sync waiver and apply oxlint autofix
schickling-assistant May 26, 2026
363f341
docs(notion-datasource-sync): add JSDoc to ~383 internal exports
schickling-assistant May 26, 2026
ec891ed
fix(notion-datasource-sync): replace implicit boolean coercion with e…
schickling-assistant May 26, 2026
c65caa1
fix(notion-datasource-sync): hoist cli serviceNameForArgv past last e…
schickling-assistant May 26, 2026
bc633d4
refactor(notion-datasource-sync)!: convert multi-arg helpers to named…
schickling-assistant May 26, 2026
fc6372a
refactor(notion-datasource-sync)!: more named-args conversions (batch 2)
schickling-assistant May 26, 2026
d793d9b
Add datasource sync live E2E coverage
schickling-assistant May 26, 2026
0abd08e
fix: include projection state in observation keys
schickling-assistant May 26, 2026
64739d6
docs(notion-datasource-sync): add JSDocs to body adapters and scenari…
schickling-assistant May 26, 2026
76148ef
refactor(notion-datasource-sync)!: docs and named-args for gateway/no…
schickling-assistant May 26, 2026
5ef7dcf
refactor(notion-datasource-sync)!: named-args for live-notion testing…
schickling-assistant May 26, 2026
bf8f485
chore(notion-datasource-sync): clear remaining non-waiver lint warnings
schickling-assistant May 26, 2026
0d6562c
fix: preserve page property list metadata
schickling-assistant May 26, 2026
0638faf
docs(notion-datasource-sync): document Notion capability gaps
schickling-assistant May 26, 2026
56bf0c2
docs: add datasource sync usage guide
schickling-assistant May 26, 2026
1a1c362
test: expand live Notion demo showcase
schickling-assistant May 26, 2026
e5425a6
Merge remote-tracking branch 'origin/main' into schickling/2026-05-25…
schickling-assistant May 26, 2026
b1743df
docs: drop datasource sync e2e plan
schickling-assistant May 26, 2026
5e20e6a
docs: link datasource sync follow-up epic
schickling-assistant May 26, 2026
98e1d1d
feat: sync Notion data source metadata
schickling-assistant May 26, 2026
e2fb9bb
Merge remote-tracking branch 'origin/main' into schickling/2026-05-25…
schickling-assistant May 26, 2026
6fd4767
fix(nix): refresh oxc-config-plugin pnpm deps hash
schickling-assistant May 27, 2026
0a6c641
fix(nix): refresh stale pnpm-deps FOD hashes
schickling-assistant May 27, 2026
2d4f0cf
ci: run datasource sync live Notion tests
schickling-assistant May 27, 2026
c0ffd72
fix(lint): format, drop dead refs, add jsdoc, named args
schickling-assistant May 27, 2026
7119545
fix(nix): nixfmt notion-integration-test.nix
schickling-assistant May 27, 2026
db8da59
feat: add sync-first datasource adoption
schickling-assistant May 27, 2026
3376d7a
fix(lint): explicit boolean compare in cli main
schickling-assistant May 27, 2026
7ff472d
fix: harden datasource adoption previews
schickling-assistant May 27, 2026
2e23646
fix: stamp capability events with observation timestamp; lint
schickling-assistant May 27, 2026
2316e61
Merge remote-tracking branch 'origin/main' into schickling/2026-05-25…
schickling-assistant May 27, 2026
ac53059
docs: define datasource sqlite replica contract
schickling-assistant May 27, 2026
da261f7
feat: add datasource sqlite replica
schickling-assistant May 27, 2026
2ce60db
fix: harden datasource sqlite replica intents
schickling-assistant May 27, 2026
db5075a
fix: guard datasource replica mutations
schickling-assistant May 27, 2026
a716e48
Merge remote-tracking branch 'origin/main' into schickling/2026-05-25…
schickling-assistant May 27, 2026
1f98e21
feat: add typed datasource replica CDC tables
schickling-assistant May 27, 2026
7d0c229
chore: refresh FOD hashes and clear replica lint warnings
schickling-assistant May 27, 2026
8a82a92
fix: harden datasource replica cdc semantics
schickling-assistant May 27, 2026
0430ff3
feat: promote datasource replica cdc surfaces
schickling-assistant May 27, 2026
588edce
fix: harden datasource replica cdc settlement
schickling-assistant May 27, 2026
842b699
test: cover datasource replica CLI CDC settlement
schickling-assistant May 27, 2026
a9193b3
test: verify datasource sync live sqlite cdc
schickling-assistant May 27, 2026
7bb5cab
feat: support public sqlite row creates
schickling-assistant May 27, 2026
dbf767c
fix: surface ambiguous sqlite row creates
schickling-assistant May 27, 2026
389fafd
feat: promote datasource metadata cdc
schickling-assistant May 27, 2026
3ec8bf2
feat: promote datasource database metadata cdc
schickling-assistant May 27, 2026
67d2884
feat: support external file attachments in notion replica
schickling-assistant May 27, 2026
fccc985
feat: project notion view inventory
schickling-assistant May 27, 2026
d68b717
feat: support guarded sqlite relation writes
schickling-assistant May 27, 2026
5b743c6
fix: guard complex datasource replica cell edits
schickling-assistant May 27, 2026
8816357
feat: support guarded sqlite relation additions
schickling-assistant May 27, 2026
c918c70
fix: model remaining datasource replica guard surfaces
schickling-assistant May 28, 2026
3ae3c2c
test: cover canonical rows sqlite surface
schickling-assistant May 28, 2026
e835401
test: exercise live canonical rows cdc
schickling-assistant May 28, 2026
aba0782
feat: expose canonical rows replica surface
schickling-assistant May 28, 2026
3b3db19
Integrate datasource auto schema rows
schickling-assistant May 28, 2026
1ad33bd
test: cover self-contained sqlite storage contract
schickling-assistant May 28, 2026
aca327b
docs: update notion datasource sqlite contract
schickling-assistant May 28, 2026
7413fca
Finish self-contained notion datasource SQLite integration
schickling-assistant May 28, 2026
8b99a18
Restrict datasource sync to full replicas
schickling-assistant May 28, 2026
edc7922
docs: clarify datasource sync sqlite product contract
schickling-assistant May 28, 2026
4030df6
Add watch daemon cycle timeout coverage
schickling-assistant May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .github/workflows/ci.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 14 additions & 1 deletion .github/workflows/ci.yml.genie.ts
Original file line number Diff line number Diff line change
Expand Up @@ -630,12 +630,18 @@ const extraJobs: Record<string, any> = {
profile: 'namespace-profile-linux-x86-64',
runId: '${{ github.run_id }}',
}),
'timeout-minutes': jobTimeoutMinutes,
'timeout-minutes': 90,
defaults: bashShellDefaults,
env: {
...standardCIEnv,
NOTION_API_TOKEN: '${{ secrets.NOTION_API_TOKEN }}',
NOTION_TEST_PARENT_PAGE_ID: '${{ secrets.NOTION_TEST_PARENT_PAGE_ID }}',
NOTION_DATASOURCE_SYNC_PARENT_PAGE_ID:
'${{ secrets.NOTION_DATASOURCE_SYNC_PARENT_PAGE_ID || secrets.NOTION_TEST_PARENT_PAGE_ID }}',
NOTION_DATASOURCE_SYNC_E2E_LEDGER_PAGE_ID:
'${{ secrets.NOTION_DATASOURCE_SYNC_E2E_LEDGER_PAGE_ID }}',
NOTION_DATASOURCE_SYNC_DEMO_PAGE_ID:
"${{ github.event_name == 'workflow_dispatch' && (inputs.run_datasource_sync_demo == true || inputs.run_datasource_sync_demo == 'true') && secrets.NOTION_DATASOURCE_SYNC_DEMO_PAGE_ID || '' }}",
},
steps: [
...baseSteps,
Expand Down Expand Up @@ -689,6 +695,13 @@ export default ciWorkflow({
workflow_dispatch: {
inputs: {
...ciMeasurementBaselineWorkflowDispatchInputs,
run_datasource_sync_demo: {
description:
'Run the credentialed notion-datasource-sync demo showcase in the Notion integration lane. Requires NOTION_DATASOURCE_SYNC_DEMO_PAGE_ID.',
required: false,
default: false,
type: 'boolean',
},
debug_force_nix_diagnostics_failure: {
description:
'Temporary debug switch (#272): force post-validation failure to verify diagnostics artifact + summary',
Expand Down
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,20 @@ All notable changes to this project will be documented in this file.

### Added

- **@overeng/notion-datasource-sync**: Add the initial standalone Notion datasource sync package with VRS and developer-facing docs, Effect/Schema contracts, self-contained SQLite event/outbox/projection core, user-facing `<database-id>.sqlite` replica/API contract for local reads and guarded write intents, pure planner/guard/conflict logic, fake and live Notion gateways, real filesystem workspace materialization, sync-first remote adoption from existing Notion data sources and single-child database URLs with bounded dry-run previews for large databases, first-class data-source metadata title/description sync, NotionMD-backed `.nmd` body observation/materialization/push boundaries, one-shot and watch CLI surfaces, user conflict/delete/restore commands, OpenTelemetry instrumentation, an automated live Notion demo spanning multiple realistic data-source schemas including a 500-row high-cardinality surface, and broad unit/integration/E2E coverage for pagination, high-watermarks, schema safety, metadata safety, body safety, conflicts, tombstones, daemon restart/cancellation/backpressure, live fixture ledgers, and intentional fail-closed unsupported surfaces.
- **@overeng/notion-datasource-sync**: Promote explicit public SQLite row creation through the `changes` surface, with guarded create-page planning, local client request keys, returned `remote_page_id` settlement, effective read views for pending creates, direct private row-table insert blocking, fake/CLI E2E coverage, and disposable live Notion proof.
- **@overeng/notion-datasource-sync**: Promote public SQLite data-source metadata CDC for title/description through `changes`, projecting canonical metadata values into `<database-id>.sqlite`, computing expected post-write metadata hashes, and verifying settlement through fake/CLI and disposable live Notion coverage while keeping separate database metadata, files, views, relation/people writes, and schema migrations fail-closed.
- **@overeng/notion-datasource-sync**: Promote public SQLite database metadata CDC for title/description through `changes` with database authority, base-hash guards, post-write hash settlement, fake/CLI coverage, and disposable live Notion proof while keeping icon/cover/parent/trash/lock fail-closed.
- **@overeng/notion-datasource-sync**: Promote public SQLite external URL file attachments through explicit `changes` staging for empty `files` properties, with dry-run non-settlement, fake/CLI coverage, and disposable live Notion proof while keeping local uploads, signed Notion URLs, replacement/deletion, and non-empty preservation fail-closed.
- **@overeng/notion-datasource-sync**: Add read-only Notion UI view inventory diagnostics through `debug_*`, with fake and disposable live coverage for stable rerun hashes while keeping view write CDC and view-query membership semantics fail-closed.
- **@overeng/notion-datasource-sync**: Make auto-discovered Notion schema the default `sync --from-notion`/observation contract for canonical `rows`, projecting live property descriptors and values into `schema_properties`, private/debug diagnostics, and property columns without user schema JSON, with focused fake/local and disposable live coverage plus updated VRS/docs/demo guidance.
- **@overeng/notion-datasource-sync**: Promote guarded public SQLite relation removals, reorders, and additions when the relation base is fully paginated and every added target has already been observed through the same relation property, preserving existing related pages through replacement-shaped Notion writes with fake and disposable live E2E coverage while keeping unobserved relation targets and people writes fail-closed.
- **@overeng/notion-datasource-sync**: Add explicit public SQLite lifecycle fields for local file uploads and fail-closed `changes` entries for Notion UI view writes so remaining unpromoted file-upload and view writes are modeled without planning unsafe remote mutations.
- **@overeng/notion-datasource-sync**: Observe live data-source schema properties from the Notion gateway by default, record them as dedicated schema observation events, and populate scalar row cells from retrieved page property values without requiring CLI schema JSON injection.
- **@overeng/notion-datasource-sync**: Document the clean-break 1:1 canonical `<database-id>.sqlite` replica contract, including the writable `rows` surface, `schema` / `schema_properties` inspection views, public `changes` / `conflicts` / `sync_status`, read-only `debug_*`, private `_nds_*`, direct row mutation examples, fail-closed delete/internal-edit behavior, SQLite backup/copy semantics, and the multi-data-source demo model where each source is its own database-ID-named replica artifact.
- **@overeng/notion-datasource-sync**: Add clean-break self-contained SQLite E2E contract coverage for database-ID artifact naming, sidecar-free discovery, sqlite*master surface taxonomy, canonical `rows` mutation behavior, private `\_nds*\*` tamper fail-closed checks, and backup/copy portability.
- **@overeng/notion-datasource-sync**: Make full Notion database replicas the only user-facing product behavior for `<database-id>.sqlite`, reject CLI query-contract establishment and path overrides, keep row limits as dry-run-only previews, and update storage-contract tests plus docs/VRS/demo guidance so filtered/query-contract scans remain internal debug/test concerns only.
- **@overeng/notion-datasource-sync docs**: Clarify the product SQLite contract: `rows` is the primary writable API, `watch` must process local SQLite CDC, `changes` / `conflicts` / `sync_status` are public observability surfaces, `_nds_*` remains private state, and `<database-id>.sqlite` is always a full-database replica.
- **@overeng/react-inspector**: Lineage annotation namespace (#687). New `Lineage` module with `SourceOfTruth | Derived | Projection | Cache | Mirror | External | Computed` tagged union, plus composable companion annotations (`Authority`, `Freshness`, `ForeignKey`). All annotations are self-describing Effect Schemas with ergonomic `pipe`-style constructors (`Lineage.derivedFrom`, `Lineage.cache`, `Lineage.authority`, etc.). The schema-aware renderer surfaces a small superscript glyph next to annotated field names and a dedicated `LINEAGE` / `AUTHORITY` / `FRESHNESS` / `REF` block in the schema tooltip. `SchemaInfo` gains an optional `lineage: LineageBundle` field. Source-field path references in `Derived.from` carry `data-lineage-target` attributes for future jump-to-source wiring. Round-trip-tested via vitest.
- **@overeng/react-inspector**: Map/Set container labels (#686). `Schema.Map({key, value})` renders as `Map<K, V>(N)`, `Schema.Set(T)` as `Set<T>(N)`, plus the `Readonly*` variants. Detected via the `effect/annotation/TypeConstructor` annotation on `Declaration` ASTs.
- **@overeng/react-inspector**: Runtime tagged-union narrowing (#686). When a field's declared schema is `Schema.Union(A, B, C)` of `_tag`-discriminated variants and the runtime value carries a matching `_tag`, the inspector narrows the display (name, tooltip, container label, nested field resolution) to the matched variant. Narrowing happens on every path segment, not just the leaf, so nested fields under a tagged union resolve through the matched variant. `SchemaProvider` gains a `rootData` prop and the context exposes a new `getContextForPathWithValue(path, value)` method.
Expand Down Expand Up @@ -56,6 +70,15 @@ All notable changes to this project will be documented in this file.

### Fixed

- **@overeng/notion-datasource-sync**: Fail closed for direct public SQLite `people` and `files` current-state cell edits before visible replica mutation or CDC append; these surfaces must use deterministic user-identity pagination or explicit file staging/upload lifecycle before promotion.
- **@overeng/notion-datasource-sync**: Surface ambiguous public SQLite row-create outcomes as `needs_reconciliation` instead of leaving them as planned, with E2E coverage for the expired-running create crash window and no duplicate `createPage` retry.
- **@overeng/notion-datasource-sync**: Make live remote adoption reruns idempotent for unchanged capability/property observations, settle public SQLite page-property CDC writes against live Notion, and use lifecycle hashes for row archive/restore CDC so direct `<database-id>.sqlite` row edits do not replay stale archive intents.
- **@overeng/notion-datasource-sync**: Move public `<database-id>.sqlite` write capture to `changes` for cell and row changes while preserving guarded direct SQLite edits.
- **@overeng/notion-datasource-sync**: Extend the public SQLite CDC surface with typed body, metadata, schema, and conflict-resolution tables; promote row restore, guarded body pushes, and store-backed safe conflict-resolution choices into the guarded planner/outbox path; settle public CDC status from planner/outbox outcomes including the CLI `sync <workspace>` wiring path; validate body content hashes before planning remote writes; and keep public metadata/schema CDC, database metadata, files, views, and destructive schema migrations fail-closed until verified post-write reconciliation is modeled.
- **@overeng/notion-datasource-sync**: Harden `changes` correctness so repeated direct SQLite edits coalesce to the latest effective desired state, row lifecycle toggles cannot replay stale archive intents, queued changes remain visible to later scans, and invalid direct cell payloads fail before visible replica mutation.
- **@overeng/notion-datasource-sync**: Keep the public `<database-id>.sqlite` replica coherent after direct writable cell edits, reject computed/system cell mutations before visible state changes, use a weaker queued state instead of premature planned status for validated local changes, fail closed for invalid local changes, and align docs with the shipped replica schema and intent names.
- **@overeng/notion-cli**: Gate `db dump` live fixture tests on writable fixture configuration and provision shared Notion integration fixtures before reading `TEST_IDS`, avoiding accidental live API calls with empty IDs when only `NOTION_API_TOKEN` is present.
- **nix/oxc-config-plugin**: Refresh the pnpm dependency fixed-output hash so the devenv shell can realize the oxlint package used by `check:all`.
- **@overeng/tui-react**: Let Effect CLI own Ctrl-C entrypoint handling for `run(App, handler)`. Apps whose action schema includes `Interrupted` now dispatch it during normal Effect interruption finalization, map interrupt-only CLI exits to code 130, and suppress noisy interrupt-only error output in `runTuiMain`.
- **@overeng/megarepo**: Stop store repository discovery from walking internal scratch roots like `tmp` before scanning repos, yield during repository discovery so Effect interruption can propagate promptly, and tighten CLI OTel flush timing so interrupted TTY commands return quickly while still exporting traces.
- **@overeng/megarepo**: Improve `mr store gc --dry-run --output tty` progress UX with early phase updates, heartbeat refreshes, realtime worktree discovery/active-check counts, explicit interrupted output, exit code 130 for Ctrl-C, and more granular OTel spans for removal status checks. GC removal checks now use a single `git status --untracked-files=normal` dirty preflight before the upstream check, avoiding expensive recursive untracked-file enumeration while still failing closed for dirty worktrees.
Expand Down Expand Up @@ -84,6 +107,7 @@ All notable changes to this project will be documented in this file.

### Changed

- **@overeng/notion-effect-client / @overeng/notion-md**: Share canonical `.notion-md` object-store paths, sync-state paths, object refs, and storage-size thresholds from the NMD schema layer so local metadata decisions derive from one source of truth.
- **@overeng/notion-md**: Breaking CLI simplification: collapse the user-facing page workflow around `sync` and `status`; replace the old explicit `pull` / `push` entrypoints with `sync <page-id-or-url> <file.nmd>` for bootstrap and guarded `sync <file.nmd>` for reconciliation.
- **@overeng/notion-md**: Remove legacy compatibility paths for batch `push` and local-first `page_id: null` page creation; existing Notion pages must be materialized with `sync <page-id-or-url> <target>`.
- **@overeng/pty-effect/client**: `spawnDaemon` now delegates to `@myobie/pty.spawnDaemon` instead of duplicating the daemon spawn pipeline. The Bun-on-Node case is routed through upstream's new `launcher` option (still honors `NODE_BIN`). Eliminates a divergent in-house spawn path so consumers automatically inherit upstream improvements such as bundle-safe spawn (myobie/pty#38). Public API and `PtyDaemonSpec` schema unchanged.
Expand Down
5 changes: 5 additions & 0 deletions devenv.nix
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ let
"packages/@overeng/kdl-effect"
"packages/@overeng/megarepo"
"packages/@overeng/notion-cli"
"packages/@overeng/notion-datasource-sync"
"packages/@overeng/notion-effect-client"
"packages/@overeng/notion-effect-schema"
"packages/@overeng/notion-md"
Expand Down Expand Up @@ -159,6 +160,10 @@ let
path = "packages/@overeng/notion-cli";
name = "notion-cli";
}
{
path = "packages/@overeng/notion-datasource-sync";
name = "notion-datasource-sync";
}
{
path = "packages/@overeng/notion-effect-client";
name = "notion-effect-client";
Expand Down
6 changes: 3 additions & 3 deletions genie/ci-workflow/merge-queue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ export const mergeQueueAdmittedJob = ({
...jobOptions
}: MergeQueueAdmittedJobOptions): WorkflowJob => ({
if: nonScheduleRequiredGateIf,
'runs-on': Array.isArray(runsOn) ? [...runsOn] : runsOn,
'runs-on': Array.isArray(runsOn) === true ? [...runsOn] : runsOn,
permissions: mergeRequiredAdmissionPermissions(permissions),
steps: [
mergeQueueAdmissionStep({
Expand All @@ -216,7 +216,7 @@ export const mergeQueueAdmissionGateJob = ({
}: MergeQueueAdmissionGateJobOptions = {}): WorkflowJob => ({
name: 'mq/admission',
if: nonScheduleRequiredGateIf,
'runs-on': Array.isArray(runsOn) ? [...runsOn] : runsOn,
'runs-on': Array.isArray(runsOn) === true ? [...runsOn] : runsOn,
'timeout-minutes': timeoutMinutes,
permissions: defaultMergeQueuePermissions,
steps: [mergeQueueAdmissionStep(stepOptions)],
Expand Down Expand Up @@ -251,7 +251,7 @@ export const mergeQueueSemanticGateJob = ({
}: MergeQueueSemanticGateJobOptions): WorkflowJob => ({
name: requiredGateCheckName(name),
if: nonScheduleRequiredGateIf,
'runs-on': Array.isArray(runsOn) ? [...runsOn] : runsOn,
'runs-on': Array.isArray(runsOn) === true ? [...runsOn] : runsOn,
'timeout-minutes': timeoutMinutes,
permissions: defaultMergeQueuePermissions,
needs: [...needs],
Expand Down
2 changes: 1 addition & 1 deletion genie/ci-workflow/setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -676,7 +676,7 @@ export const standardSelfHostedDevenvTaskJob = ({
step,
...jobOptions
}: StandardSelfHostedDevenvTaskJobOptions): WorkflowJob => ({
'runs-on': Array.isArray(runsOn) ? [...runsOn] : runsOn,
'runs-on': Array.isArray(runsOn) === true ? [...runsOn] : runsOn,
defaults,
env,
steps: [
Expand Down
2 changes: 1 addition & 1 deletion genie/ci-workflow/shared.ts
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ export const cachixHostsFromBinaryCaches = (caches: readonly NixBinaryCache[]) =
...new Set(
caches.flatMap((cache) => {
const host = new URL(cache.uri).host
return host.endsWith('.cachix.org') ? [host] : []
return host.endsWith('.cachix.org') === true ? [host] : []
}),
),
]
Expand Down
Loading