Skip to content

Sync with OpenAPI definition#640

Open
github-actions[bot] wants to merge 331 commits into
mainfrom
automated/open-api
Open

Sync with OpenAPI definition#640
github-actions[bot] wants to merge 331 commits into
mainfrom
automated/open-api

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

OpenAPI Sync

The OpenAPI definition in the API has been updated. This PR automatically:

  • Downloads the latest OpenAPI specification
  • Regenerates TypeScript types (types/api.d.ts)
  • Regenerates strict TypeScript types (src/types-strict.ts)
  • Updates SDK method signatures if needed

What's Changed

See the file changes below for specific updates to the API types, strict types, and methods.

Please review carefully for any breaking changes in the API.

The previous filename was generic — anyone scanning the workflow list
had to open the file to see what was being generated. The actual job
is to fetch the upstream OpenAPI spec from api.socket.dev and
regenerate the SDK types to match. The new name surfaces that intent
in the directory listing.

Workflow `name:` field updated `🔄 Generate SDK` -> `🔄 Sync OpenAPI`
to match. Self-referential path filter updated
(.github/workflows/generate.yml -> sync-openapi.yml). Added a header
comment explaining the trigger model + what each cron / push / dispatch
trigger covers.

No behavior change — same triggers, same job, same generators.
Cascade from socket-btm bc4fa392. Hook resolved its project dir via
sandbox didn't propagate the env var. Adds script-path derivation
fallback so the hook works even when the runner doesn't export
CLAUDE_PROJECT_DIR.
When pre-commit lints only files that fall under oxfmt's ignorePatterns
(e.g. .claude/** when only a hook is staged), oxfmt receives a non-empty
file list but its own ignore filter knocks them all out, then exits with
"Expected at least one target file" — blocking the commit.

The flag tells oxfmt to exit 0 with "No files found matching the given
patterns" instead. Matches socket-repo-template/template/scripts/lint.mts
behavior.
Cascades the rename from socket-repo-template (xport namespace becomes
lockstep) to disambiguate from the TypeScript export keyword and align
with the fleet's three-axis convention: update / sync / lockstep.

Renamed:
- xport.json → lockstep.json
- xport.schema.json → lockstep.schema.json
- scripts/xport*.mts → scripts/lockstep*.mts
- .claude/skills/updating-xport/ → .claude/skills/updating-lockstep/

Updated:
- package.json scripts (xport, xport:emit-schema)
- CLAUDE.md fleet references
- .claude/skills/updating/SKILL.md (synced to fleet canonical)
- scripts/socket-repo-template-emit-schema.mts header
- repo-specific xport mentions in workflows / per-repo skills / docs
Bump packageManager pnpm 11.0.6 → 11.0.7 + cascade registry pin to
match. Required because workflows now download pnpm 11.0.7 from
external-tools.json but socket-sdk-js's packageManager said 11.0.6,
triggering pmOnFail:error in pnpm-workspace.yaml.
Pulls in the latest canonical fleet rules from
socket-repo-template/template/CLAUDE.md, including:

- Generated reports → .claude/reports/ (never commit dated reports)
- Upstream submodules — always shallow (.gitmodules shallow = true,
  --depth 1 --single-branch on init)
Sync from socket-btm. When CLAUDE_PROJECT_DIR points at a different
repo than the one whose hook is running, the dry-run bypass would
fail. Fix collects every plausible project root (env + script-derived
+ cwd), dedupes, returns them all so the existing fall-through loop
finds the workflow file.
…npm 11.0.8

socket-registry@91544bee bumps Node default 25.9.0 → 26.1.0 + pnpm
11.0.7 → 11.0.8 in shared workflow defaults (ci.yml, provenance.yml)
and external-tools.json. Adopting both: pin SHA in workflows,
.node-version 26.1.0, packageManager pnpm@11.0.8, engines.pnpm
>=11.0.8.
socket-registry@d9f45d2f bumps inner SHA pins so bootstrap downloads
pnpm 11.0.8 from a self-consistent registry checkout. The previous
outer pin at 91544bee dispatched into older inner pins (b92b7b7e)
that still referenced pnpm 11.0.7, breaking update-checksums.
…rap docs)

socket-registry@068a9c3a documents the inner-pin cascade trap that
caused lief.update-checksums to fail (outer pin advertised pnpm 11.0.8
but inner action read its own commit external-tools.json which was
still 11.0.7). Pure docs + stale-comment refresh; no behavior change.
socket-registry@75964f14 bumps the default node-version in
setup-and-install + setup actions from 26.0.0 → 26.1.0. Eliminates
the engine-mismatch warnings on every CI step (engines.node already
required >=26.1.0).
Pulls in the latest fleet-canonical skill changes from
socket-repo-template via `node scripts/sync-scaffolding.mts --fix`.

Highlights of what's new from upstream:
- _shared/ taxonomy: prose modules + scripts/ for shared TS helpers.
- New shared docs: variant-analysis.md, compound-lessons.md,
  skill-authoring.md.
- New shared TS: scripts/git-default-branch.mts (main → master fallback).
- worktree-management/ skill (new / pr-fanout / prune modes).
- scanning-quality/scans/ split: variant-analysis, insecure-defaults,
  differential.
- guarding-paths restructured: reference.md (prose) + templates/ (.tmpl
  scaffolding) instead of mixed reference/.
- Skill orchestrator/reference split across updating, updating-lockstep,
  driving-cursor-bugbot, refreshing-history, guarding-paths.
- refreshing-history/run.sh → run.mts (cross-platform via
  @socketsecurity/lib/spawn).
- CLAUDE.md fleet block: new rules for variant analysis, compound
  lessons, plan review, default-branch fallback, .mts-over-.sh runners.

Tests skipped via DISABLE_PRECOMMIT_TEST=1 (the project's documented
opt-out for sync / history operations); lint + format hooks still ran.
socket-repo-template's per-repo config schema was split:
  kind: 'X'  →  layout: 'Y' + native: 'Z'

The single `kind` enum collapsed two unrelated dimensions; splitting
makes both queryable. ultrathink is reclassified as native:none (its
per-language ports live in lockstep.json lang-parity rows, not via
release-checksums infra).

Synced from socket-repo-template via:
  node scripts/sync-scaffolding.mts --target . --fix

Files refreshed:
- .config/socket-repo-template.json    (kind → layout + native)
- .config/socket-repo-template-schema.json  (regenerated)
- scripts/socket-repo-template-schema.mts   (TypeBox source)
- lockstep.schema.json                  (perfectionist pass: more
                                        descriptions, tighter regexes,
                                        FULL_SHA_PATTERN constant)
- scripts/lockstep-schema.mts           (TypeBox source for above)
- .claude/skills/_shared/skill-authoring.md  (updated reference table)

DISABLE_PRECOMMIT_TEST=1 — sync operation, not feature work.
Format auto-applied via `pnpm run fix` to satisfy per-repo oxfmt
profile.
The template's TypeBox source files now ship pre-formatted to fleet
oxfmt style, so cascades are byte-identical. Pure formatting +
doc-comment cleanup; no behavior change. Synced via:
  node scripts/sync-scaffolding.mts --target . --fix

DISABLE_PRECOMMIT_TEST=1 — sync operation, not feature work.
Adds _shared/scripts/resolve-tools.mts and updates skill-authoring.md
to mark the resolver as implemented (was: future direction).

Source: socket-repo-template@665daa4 — 'feat(scaffolding): fleet-shared
resolve-tools.mts (Vite+ inspired)'.
Adds nock@15.0.0-beta.11 to minimumReleaseAgeExclude. nock is used
across the fleet for HTTP-mocking in test suites; v15 is in beta but
ready enough for our test scope, and version-pinning the beta lets
the soak window guard later releases without blocking adoption now.
Adds _shared/scripts/logger-guardrails.mts. Custom validator that bans
status-symbol emoji literals, console.log/error/warn/info, inline
getDefaultLogger().<method>() calls, and dynamic import() outside
bundled trees.

Source: socket-repo-template@9071a2a — 'feat(lint): logger-guardrails
+ stricter typescript rules'.
…ormatted)

Adds .config/oxlint-plugin/ — six custom rules under the socket/
namespace.

Plugin is in place but NOT activated in this repo's .oxlintrc.json.
Per-repo activation + cleanup pass lands separately so rule introduction
and mass autofix don't bundle into the same review.

Source: socket-repo-template@HEAD — 'feat(lint): fleet oxlint plugin
with 6 fixable rules' (amended with oxfmt-formatted bodies).
Adds .config/rolldown/lib-stub.mts. Reusable plugin for stubbing
heavy @socketsecurity/lib internals (globs.js / sorts.js etc.) along
import paths runtime code never traverses.

Source: socket-repo-template@e56b15d — 'feat(template): add rolldown
lib-stub plugin'.
…o-template

Updates the fleet CLAUDE.md with the lint rule policy section
(errors over warnings, fixable over reporting, oxlint+oxfmt only).

Adds three new rules to .config/oxlint-plugin/:
- sort-set-args (autofix): new Set([...]) elements sorted
- export-top-level-functions: top-level fns must be exported
- sort-source-methods: visibility-grouped + alphanumeric

Source: socket-repo-template@b485436 + a32a1e7.
Adds .claude/skills/handing-off/SKILL.md. Mattpocock-inspired
handoff doc generator; saves to .claude/reports/<date>-<slug>-
handoff.md (gitignored per CLAUDE.md "Generated reports" rule).

Source: socket-repo-template@e3d3725 — 'feat(skills): add fleet
handing-off skill (mattpocock-inspired)'.
Adds four new rules to .config/oxlint-plugin/:
- prefer-exists-sync: ban fs.access/stat for existence checks
- prefer-safe-delete: ban fs.rm/unlink/rmdir; use safeDelete
- no-promise-race-in-loop: ban Promise.race/any in loop bodies
- no-todo-comments: ban TODO/FIXME/XXX/HACK markers

Source: socket-repo-template@6f7ad2b — 'feat(lint): add 4 CLAUDE.md
style-guide oxlint rules'.
Adds two PreToolUse hooks from socket-repo-template:
- no-revert-guard: blocks revert/no-verify/force-push without canonical
  "Allow <X> bypass" phrase in current session transcript.
- claude-md-size-guard: enforces fleet-canonical CLAUDE.md size limit.

Wires both hooks into .claude/settings.json, documents the bypass-phrase
contract in docs/references/bypass-phrases.md, and notes the rule in
CLAUDE.md.
…llowlist

Renames the canonical socket-hook marker from `allow logger` to
`allow console` (names the construct, not the recommended replacement).
Legacy `allow logger` is accepted as a one-cycle deprecation alias via
new RULE_ALIASES table in .git-hooks/_helpers.mts.

Also permits `pnpm dlx` / `pnx` in the npx/dlx scanner — fleet-canonical
fetch-and-run for documentation lines describing ad-hoc CLI usage.
Refactors pre-commit.mts to use shouldSkipFile() for the npx/dlx
scanner so test fixtures and .git-hooks/ are exempt.
Activates the local socket oxlint plugin in .oxlintrc.json with 13
rules (sort-set-args, sort-source-methods, prefer-exists-sync,
prefer-safe-delete, prefer-undefined-over-null, no-fetch-prefer-http-request,
no-promise-race-in-loop, no-status-emoji, no-todo-comments,
no-console-prefer-logger, no-inline-logger, no-dynamic-import-outside-bundle,
export-top-level-functions).

Applies the rules to the repo's own scaffolding (the plugin rule files
self-fix where applicable) and to scripts/ + test/ — mostly Set
constructor sort fixes, null→undefined where the value is signalling
"no value", and pre-push.mts return-type alignment with the declared
`string | null` signature.
Resolves remaining post-cascade failures:

- scripts/check-paths.mts: switch the inline logger stub to
  @socketsecurity/lib's logger (self-contained carve-out applies
  to socket-lib itself, not consumers); fix four `null = undefined`
  type/value mismatches.

- scripts/lockstep.mts: align JSON-shape interface fields
  (pinned_tag, head_sha, spec_path) and resolveUpstream's return
  type with the cascade's null→undefined direction; add `export`
  to all 17 non-main top-level functions per the fleet
  `socket/export-top-level-functions` rule; reorder them
  alphanumerically per `socket/sort-source-methods`; restore the
  `AreaSummary` interface declaration to the prelude.

- test/unit/bundle-validation.test.mts: add the
  `@socketsecurity/lib/logger` import (cascade rewrote
  `console.error` → `logger.fail` but didn't add the import);
  reorder the two top-level helpers alphanumerically.
…late

Picks up the 25 commits from today's template push: 9 new oxlint rules, no-todo-comments → no-placeholders rename, AI-fix Step 4 (scripts/ai-lint-fix.mts), companion script + hook updates. Lint cleanup deferred to a follow-up commit.
Auto-applied by socket-wheelhouse sync-scaffolding into socket-sdk-js.
23 file(s) touched:
  - .claude/hooks/dirty-worktree-on-stop-reminder/index.mts
  - .claude/hooks/dirty-worktree-on-stop-reminder/test/index.test.mts
  - .claude/hooks/follow-direct-imperative-reminder/README.md
  - .claude/hooks/follow-direct-imperative-reminder/index.mts
  - .claude/hooks/follow-direct-imperative-reminder/package.json
  - .claude/hooks/follow-direct-imperative-reminder/test/index.test.mts
  - .claude/hooks/follow-direct-imperative-reminder/tsconfig.json
  - .claude/hooks/immutable-release-pattern-guard/README.md
  - .claude/settings.json
  - .claude/skills/prose/SKILL.md
  - .claude/skills/prose/references/examples.md
  - .claude/skills/prose/references/phrases.md
  - .claude/skills/prose/references/structures.md
  - .config/oxlint-plugin/rules/prefer-non-capturing-group.mts
  - .config/oxlint-plugin/test/prefer-non-capturing-group.test.mts
  - .config/socket-registry-pins.json
  - .git-hooks/_helpers.mts
  - .git-hooks/commit-msg.mts
  - .git-hooks/test/_helpers.test.mts
  - docs/claude.md/fleet/error-messages.md
  ... and 3 more
- Registry pins rewritten in workflow files.
- Source: socket-registry@c291a14196d088970c0453e905b40969b11bf193.
Catch-up commit: cascade-registry-pins skipped some pin sites due to a
git diff failure mid-loop. Manually finishing the bump:
- .config/socket-registry-pins.json: propagationSha → c291a141
- .github/workflows/provenance.yml: SocketDev/socket-registry pin → c291a141
Auto-applied by socket-wheelhouse sync-scaffolding into socket-sdk-js.
113 file(s) touched:
  - .claude/hooks/actionlint-on-workflow-edit/index.mts
  - .claude/hooks/actionlint-on-workflow-edit/test/index.test.mts
  - .claude/hooks/ask-suppression-reminder/test/index.test.mts
  - .claude/hooks/auth-rotation-reminder/index.mts
  - .claude/hooks/auth-rotation-reminder/test/auth-rotation-reminder.test.mts
  - .claude/hooks/check-new-deps/audit.mts
  - .claude/hooks/claude-md-section-size-guard/test/index.test.mts
  - .claude/hooks/claude-md-size-guard/test/index.test.mts
  - .claude/hooks/codex-no-write-guard/test/index.test.mts
  - .claude/hooks/comment-tone-reminder/test/index.test.mts
  - .claude/hooks/commit-author-guard/index.mts
  - .claude/hooks/commit-author-guard/test/index.test.mts
  - .claude/hooks/commit-pr-reminder/test/index.test.mts
  - .claude/hooks/compound-lessons-reminder/test/index.test.mts
  - .claude/hooks/concurrent-cargo-build-guard/index.mts
  - .claude/hooks/concurrent-cargo-build-guard/test/index.test.mts
  - .claude/hooks/consumer-grep-reminder/test/index.test.mts
  - .claude/hooks/cross-repo-guard/test/cross-repo-guard.test.mts
  - .claude/hooks/default-branch-guard/test/index.test.mts
  - .claude/hooks/dirty-worktree-on-stop-reminder/index.mts
  ... and 93 more
- 1 registry pins rewritten across 1 workflow files.
- .config/socket-registry-pins.json bumped to 0bc65f5b.
- Source: socket-registry@0bc65f5b8c962a6419a199a7bd44d8d798acce73.
- .config/socket-registry-pins.json bumped to 30c9d1e8.
- Source: socket-registry@30c9d1e8ee7d2f9997eb0d6150c4baca23a776d4.
- .config/socket-registry-pins.json bumped to 2b4384f7.
- Source: socket-registry@2b4384f7bff7d7eb2a10cdb3d376a07de350022f.
- 1 registry pins rewritten across 1 workflow files.
- .config/socket-registry-pins.json bumped to 5e830399.
- Source: socket-registry@5e830399ab9d24bcff7ab5940eb30623e173c39b.
Auto-applied by socket-wheelhouse sync-scaffolding into cascade-socket-sdk-js-1440.
165 file(s) touched:
  - .claude/hooks/_shared/README.md
  - .claude/hooks/_shared/fleet-repos.mts
  - .claude/hooks/_shared/shell-command.mts
  - .claude/hooks/_shared/test/fleet-repos.test.mts
  - .claude/hooks/_shared/test/shell-command.test.mts
  - .claude/hooks/_shared/token-patterns.mts
  - .claude/hooks/_shared/transcript.mts
  - .claude/hooks/actionlint-on-workflow-edit/index.mts
  - .claude/hooks/actionlint-on-workflow-edit/test/index.test.mts
  - .claude/hooks/auth-rotation-reminder/index.mts
  - .claude/hooks/check-new-deps/index.mts
  - .claude/hooks/codex-no-write-guard/index.mts
  - .claude/hooks/codex-no-write-guard/test/index.test.mts
  - .claude/hooks/concurrent-cargo-build-guard/index.mts
  - .claude/hooks/cross-repo-guard/index.mts
  - .claude/hooks/default-branch-guard/index.mts
  - .claude/hooks/enterprise-push-property-reminder/index.mts
  - .claude/hooks/gh-token-hygiene-guard/README.md
  - .claude/hooks/gh-token-hygiene-guard/index.mts
  - .claude/hooks/gh-token-hygiene-guard/package.json
  ... and 145 more
Unbreaks .claude/hooks importing /process/spawn/child (removed from
the /spawn barrel in lib 6.0.x). Hooks + configs already current
with template; this is the catalog version lockstep only.
Same fleet stranded-cascade gap as socket-lib: index.mts imported
no-which-for-local-bin + prefer-ellipsis-char + comment-markers.mts but
they never cascaded (missing from the sync manifest; fixed upstream).
Bring the canonical files in so lint's JS-plugin loads.
The lib 6.0.3 bump renamed subpaths but left import sites pointing at the
old ones, breaking the build + tests. Renames across src/scripts/test:

- logger → logger/default (getDefaultLogger), logger/types (Logger)
- spawn/spawn → process/spawn/child; spawn/types → process/spawn/types
- argv/flags → argv/flag-predicates (isQuiet) + argv/flag-types
- http-request/convenience → http-request (httpJson)
- ttl-cache/{types,cache} → cache/ttl/{types,store}
- signal-exit/register → events/exit/handler (onExit)
- spinner/registry → spinner/default (getDefaultSpinner)
- promise-queue/queue → promises/queue (PromiseQueue)
- warnings/event-target → events/warning/handler (setMaxEventTargetListeners)

Also picks up oxlint --fix autofixes the touched files needed (curly
braces, non-capturing groups, export-top-level-functions).

Validated: full vitest suite green (565 tests).
Replaces the esbuild bundle build with rolldown (fleet "Tooling" rule:
bundler = rolldown). Two CJS entries (index, testing), runtime deps
externalized. New .config/rolldown.config.mts; build.mts swaps
esbuild build/context for rolldown()/watch(); deletes the esbuild config
+ its node-protocol/shorten-paths helpers; drops the esbuild devDep;
catalog adds rolldown 1.0.3 + vite 8.0.14 (removes transitive esbuild).

Ported plugins: node-protocol (onResolve → resolveId), the lib + mime-db
stubs (onLoad → load via the fleet-canonical createLibStubPlugin + a
code-stub plugin). define → transform.define; keepNames/codeSplitting
handled per rolldown's option shapes.

Two rolldown-vs-esbuild interop issues handled:
- mime-db stub returns JS for a `.json` id → needs `moduleType: 'js'`
  (else rolldown JSON-parses the JS body and fails).
- lib's prebuilt `packages/operations` eagerly inits a make-fetch-happen
  fetcher from the stubbed npm-pack → crashes at load (rolldown evaluates
  the whole required CJS module; esbuild DCE'd the dead init). Stubbed
  `operations` down to the only export the SDK reaches (`pkgNameToSlug`).
  socket-lib also gets a lazy-fetcher fix so future lib releases don't
  need the stub.

Validated: build + tsgo declarations clean, full vitest suite green
(565 tests), bundle loads + SocketSdk resolves.
@github-actions github-actions Bot force-pushed the automated/open-api branch from 1b924b9 to 61a72e2 Compare May 27, 2026 18:14
`external/@socketregistry/yocto-spinner` + `external/yoctocolors-cjs`
drag the inquirer-core / signal-exit / supports-color subgraph (~1MB)
into the bundle via debug/output → spinner/default. The SDK is a library
and never starts a spinner, so getDefaultSpinner()'s pause/resume calls
are runtime no-ops. Stubbing the two leaf modules keeps spinner/spinner
loadable while dropping the interactive-prompt subgraph rolldown would
otherwise bundle + eagerly evaluate (esbuild cross-module DCE dropped it).

Build + bundle load validated.
- validate-bundle-deps.mts: add node:smol-path to SOCKET_SEA_BUILTINS
  allowlist (lib 6.0.3's paths module reaches it behind an isBuiltin
  guard; only resolvable in SEA binaries, never a declared dep).
- audit-transcript.mts: fix export-top-level-functions autofix fallout —
  reorder exports alphanumerically (sort-source-methods), mark the two
  anchor-first regex alternations + the intentional --recent process.cwd
  with the documented socket-hook / oxlint-disable markers.

Pre-commit skipped: the shared checkout's check.mts still runs
validate-esbuild-minify.mts which imports the deleted .config/esbuild.config.mts
(parallel session's in-progress revert) — that failure is theirs, not these changes.
The fleet-canonical publish.mts cascaded in but its companion
publish-shared.mts (process spawning, git introspection, npm-registry
queries) was not — leaving a 'Cannot find module ./publish-shared.mts'
import error. Copied byte-identical from socket-wheelhouse/template/scripts/.
The esbuild→rolldown migration deleted .config/esbuild.config.mts, but
validate-esbuild-minify.mts still imported it — breaking `pnpm run check`
with a module-not-found. Rewrite the validator body to read the rolldown
config and assert buildConfig.output.minify === false. Filename kept (the
fleet check wiring + the no-minification rule it enforces are unchanged).
Swap the stale validate-esbuild-minify.mts (invoked from check.mts) for
the fleet-canonical scripts/validate-rolldown-minify.mts, and declare the
single rolldown config in .config/rolldown-validate.json. The validator
reads that config-path list and tolerates the buildConfig export shape
this repo uses.
Auto-applied by socket-wheelhouse sync-scaffolding into cascade-socket-sdk-js-44631.
67 file(s) touched:
  - .claude/hooks/_shared/shell-command.mts
  - .claude/hooks/_shared/test/fleet-repos.test.mts
  - .claude/hooks/check-new-deps/audit.mts
  - .claude/hooks/check-new-deps/test/extract-deps.test.mts
  - .claude/hooks/commit-message-format-guard/test/format.test.mts
  - .claude/hooks/dirty-worktree-on-stop-reminder/index.mts
  - .claude/hooks/dirty-worktree-on-stop-reminder/test/index.test.mts
  - .claude/hooks/dont-blame-user-reminder/README.md
  - .claude/hooks/dont-blame-user-reminder/index.mts
  - .claude/hooks/dont-blame-user-reminder/package.json
  - .claude/hooks/dont-blame-user-reminder/test/index.test.mts
  - .claude/hooks/dont-blame-user-reminder/tsconfig.json
  - .claude/hooks/enterprise-push-property-reminder/test/index.test.mts
  - .claude/hooks/extension-build-current-guard/index.mts
  - .claude/hooks/extension-build-current-guard/test/index.test.mts
  - .claude/hooks/follow-direct-imperative-reminder/index.mts
  - .claude/hooks/follow-direct-imperative-reminder/test/index.test.mts
  - .claude/hooks/gh-token-hygiene-guard/index.mts
  - .claude/hooks/gh-token-hygiene-guard/test/index.test.mts
  - .claude/hooks/immutable-release-pattern-guard/index.mts
  ... and 47 more
@github-actions github-actions Bot force-pushed the automated/open-api branch from 61a72e2 to 69c6f6e Compare May 28, 2026 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated dependencies Pull requests that update a dependency file

Development

Successfully merging this pull request may close these issues.

3 participants