Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
f89f8ed
fix(ci): add missing build:ci script
Shinrai Jul 19, 2026
62bbfa2
fix(ci): add ci:coverage script
Shinrai Jul 19, 2026
a1a638d
ci: skip the type-check step
Shinrai Jul 19, 2026
01166aa
fix(ci): add missing build:ci script (#14)
Shinrai Jul 19, 2026
751b422
chore: bump version to 1.1.1
cldmv-bot[bot] Jul 19, 2026
f642089
fix: self-reference workflow headers instead of pointing at .github's…
Shinrai Jul 19, 2026
6e8d89f
ci: add cla, release-notify, and scorecard workflows
Shinrai Jul 19, 2026
3f1c465
fix: self-reference workflow headers instead of pointing at .github's…
Shinrai Jul 19, 2026
937cac3
test: adopt @cldmv/vitest-runner for OOM-safe coverage
Shinrai Jul 19, 2026
c960055
test: raise coverage from ~36% to ~73% (CLI, commander, detect, insta…
Shinrai Jul 20, 2026
b370841
test: exclude Windows-only elevation helpers from coverage
Shinrai Jul 20, 2026
a2cb160
test: reach 100% coverage β€” inline slothlet so leaf execution attributes
Shinrai Jul 20, 2026
32b1838
test(runner): support `--` delimiter for forwarded Vitest args; fix U…
Shinrai Jul 20, 2026
8db1239
docs(link): correct v8-ignore comments β€” null spawn status is real, n…
Shinrai Jul 20, 2026
aacf4d3
docs(coverage): make v8-ignore comments honest about reachable guards
Shinrai Jul 20, 2026
17290dd
test(runner): guard VITEST_WORKERS + use win32 null device in cli-cov…
Shinrai Jul 20, 2026
dda18de
docs: correct v8-ignore comments β€” null spawn status is real, not imp…
Shinrai Jul 20, 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
9 changes: 8 additions & 1 deletion .configs/vitest.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,17 @@ export default defineConfig({
exclude: ["node_modules", "reference/**"],
environment: "node",
testTimeout: 30000,
server: { deps: { inline: [/@cldmv\/slothlet/] } },
coverage: {
provider: "v8",
include: ["src/**"],
exclude: ["**/*.json", "tests/**"],
exclude: [
"**/*.json",
"tests/**",
// Windows-only elevation helpers β€” cannot execute on the Linux coverage runner.
"src/api/link/elevate-windows.mjs",
"src/lib/elevate-windows-child.mjs"
],
reporter: ["text", "html", "json-summary", "json"]
}
}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/branch-retention.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/automation/branch-retention.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/branch-retention.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/core-cicd/ci.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/ci.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down Expand Up @@ -218,8 +218,14 @@ jobs:
upload_coverage_artifact: ${{ github.event.inputs.upload_coverage_artifact != 'false' }}

# ── Type check (runs inside the coverage-badge job) ────────────────────
# Skipped deliberately: git-embedded is a dynamic slothlet-composed API
# (self.* / context.* resolved at runtime). tsc can't statically type that
# surface, slothlet's typegen only emits an all-`any` structural interface
# (no real types), and a checkJs pass is ~260 untypeable dynamic-API errors β€”
# there is no meaningful JS type-check to run. ESLint is the static-analysis
# net. (Investigated 2026-07-19; revisit if the API gains real generated types.)
type_check_command: ${{ github.event.inputs.type_check_command || 'npm run test:types' }}
skip_type_check: ${{ github.event.inputs.skip_type_check == 'true' }}
skip_type_check: true

# ── PR coverage badge ─────────────────────────────────────────────────
# Injects a Shields.io badge + breakdown table directly into the PR body
Expand Down
60 changes: 60 additions & 0 deletions .github/workflows/cla.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/cla.yml
# @Date: 2026-07-19 00:00:00 -07:00 (1784523600)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
# @Copyright: Copyright (c) 2013-2026 Catalyzed Motivation Inc. All rights reserved.
#

# Individual repo: .github/workflows/cla.yml
#
# Per-CLA-version signing with per-repo override support. Each commit author
# must either:
# - Be in the org (silent pass via /orgs/CLDMV/members lookup)
# - Be in the exempt-bots list
# - Already have a signature record at the active (scope, version) in the
# central ledger repo (default: CLDMV/.cla-signatures)
# - Reply on this PR with the exact required text
#
# Default vs. override scope:
# - DEFAULT (this repo has NO root-level CLA.md): the bot uses the org-wide
# CLA at cla-versions/v<X.Y>.md in the ledger. Signing once covers every
# CLDMV repo that uses the default until the major.minor is bumped.
# - OVERRIDE (this repo HAS a root-level CLA.md): the bot enforces the
# consumer-repo text and reads the version from its header. Signatures
# live under signatures/<platform>/overrides/<owner>/<repo>/v<X.Y>/ and
# are scoped to this repo only.
#
# Required setup:
# - Bot App must have `Organization permissions β†’ Members: read` for the
# org-member exemption.
# - Bot App must have `Repository contents: write` on the ledger repo.
# - Optional `CLDMV_CLA_BOT_APP_CLIENT_ID` / `CLDMV_CLA_BOT_APP_PRIVATE_KEY`
# org secrets override the general bot identity for CLA actions only.
name: πŸ“œ CLA

on:
pull_request_target:
types: [opened, synchronize, reopened, ready_for_review]
issue_comment:
types: [created]

permissions:
contents: read
pull-requests: write
statuses: write
issues: write

jobs:
cla:
uses: CLDMV/.github/.github/workflows/reusable-cla.yml@v4
with:
cla_version: "1.0"
secrets:
BOT_APP_CLIENT_ID: ${{ secrets.CLDMV_BOT_APP_CLIENT_ID }}
BOT_APP_PRIVATE_KEY: ${{ secrets.CLDMV_BOT_APP_PRIVATE_KEY }}
CLA_BOT_APP_CLIENT_ID: ${{ secrets.CLDMV_CLA_BOT_APP_CLIENT_ID }}
CLA_BOT_APP_PRIVATE_KEY: ${{ secrets.CLDMV_CLA_BOT_APP_PRIVATE_KEY }}
TAGGER_NAME: ${{ secrets.CLDMV_BOT_NAME }}
TAGGER_EMAIL: ${{ secrets.CLDMV_BOT_EMAIL }}
4 changes: 2 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/security/codeql.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/codeql.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dependabot-auto-merge.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/automation/dependabot-auto-merge.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/dependabot-auto-merge.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/dependency-review.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/security/dependency-review.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/dependency-review.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/hotfix-redirector.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/release-flow-v4/hotfix-redirector.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/hotfix-redirector.yml
# @Date: 2026-05-22 00:00:00 -07:00 (1779778800)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/hotfixes-release.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/release-flow-v4/hotfixes-release.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/hotfixes-release.yml
# @Date: 2026-05-22 00:00:00 -07:00 (1779778800)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/automation/labeler.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/labeler.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/master-commit-audit.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/release-companions/master-commit-audit.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/master-commit-audit.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/next-release.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/release-flow-v4/next-release.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/next-release.yml
# @Date: 2026-05-22 00:00:00 -07:00 (1779778800)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/next-reset.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/release-flow-v4/next-reset.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/next-reset.yml
# @Date: 2026-05-22 00:00:00 -07:00 (1779778800)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pr-title-normalizer.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/release-flow-v4/pr-title-normalizer.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/pr-title-normalizer.yml
# @Date: 2026-05-22 00:00:00 -07:00 (1779778800)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/core-cicd/publish.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/publish.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
37 changes: 37 additions & 0 deletions .github/workflows/release-notify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/release-notify.yml
# @Date: 2026-07-19 00:00:00 -07:00 (1784523600)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
# @Copyright: Copyright (c) 2013-2026 Catalyzed Motivation Inc. All rights reserved.
#

# Individual repo: .github/workflows/release-notify.yml
#
# Fires on `release: published` and dispatches the release announcement to
# any enabled webhook. No config file β€” each channel is just a secret:
#
# DISCORD_RELEASES_PUBLIC_WEBHOOK / DISCORD_RELEASES_PRIVATE_WEBHOOK
# SLACK_RELEASES_PUBLIC_WEBHOOK / SLACK_RELEASES_PRIVATE_WEBHOOK
# GENERIC_RELEASES_PUBLIC_WEBHOOK / GENERIC_RELEASES_PRIVATE_WEBHOOK
#
# Visibility is determined automatically from the repo: GitHub `public` β†’
# PUBLIC, `private` or `internal` β†’ PRIVATE. Set the org-level secret in
# CLDMV for the default URL; set a repo-level secret with the same name to
# override (or to an empty string to mute that channel for this repo).
name: πŸ“£ Release Notify

on:
release:
types: [published]

permissions:
contents: read

jobs:
notify:
# Defensive: skip untagged releases (mirrors Batch 1.2's filter)
if: github.event.release.tag_name != ''
uses: CLDMV/.github/.github/workflows/reusable-release-notifier.yml@v4
secrets: inherit
61 changes: 61 additions & 0 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/scorecard.yml
# @Date: 2026-07-19 00:00:00 -07:00 (1784523600)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
# @Copyright: Copyright (c) 2013-2026 Catalyzed Motivation Inc. All rights reserved.
#

# Individual repo: .github/workflows/scorecard.yml
#
# OpenSSF Scorecard β€” scans the repo against ~18 security best-practice checks
# and produces a 0-10 score. Thin caller: the steps and the SHA-pinned
# scorecard-action version live in reusable-scorecard.yml@v4, so the action
# version can't drift in this copy (it just calls the org reusable). Triggers
# stay here, per OpenSSF's recommended setup.
#
# NOTE: this MUST stay a thin caller. OSSF Scorecard's publish step verifies
# the analysis job and allows only a fixed set of steps; the inline form used
# our checkout-code composite, which trips "job has unallowed step" -> publish
# HTTP 400. The reusable uses actions/checkout directly, which passes.
name: πŸ”¬ OpenSSF Scorecard

on:
branch_protection_rule:
schedule:
- cron: "32 7 * * 1" # weekly Monday 07:32 UTC
push:
branches: [master, main]
workflow_dispatch:

# Caller must grant what the reusable needs β€” notably id-token: write for the
# OpenSSF transparency-log publish.
#
# No workflow-level `permissions:` here β€” grant on the `analyze` job below
# instead. scorecard-action's publish step verifies that write permissions
# were granted JOB-scoped, not workflow-wide (matching OSSF's own example:
# https://github.com/ossf/scorecard-action#example-workflow). A workflow-level
# grant satisfies GitHub's own reusable-workflow permission rules fine, but
# still trips scorecard-action's own check β€” the rejection ("workflow
# verification failed: global perm is set to write: permission for X is set
# to write") means "granted globally," not "forbidden."
#
# Do NOT add security-events: write here while publish_results: true below.
# scorecard-action's publish step rejects submissions from a workflow whose
# token has security-events write access (it verifies the caller can't have
# tampered with results before they hit the public transparency log). That
# trade-off means the reusable's own SARIF-to-Security-tab upload step has no
# permission to run in this configuration; the public OpenSSF badge is the
# thing actually enabled here, so this repo takes that trade-off. Only add
# security-events: write back (job-scoped) if publish_results is set to false
# instead.
jobs:
analyze:
permissions:
id-token: write
contents: read
actions: read
uses: CLDMV/.github/.github/workflows/reusable-scorecard.yml@v4
with:
publish_results: true # set false for private repos / to skip the public badge
4 changes: 2 additions & 2 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/automation/stale.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/stale.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tag-health.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/release-companions/tag-health.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/tag-health.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/update-major-version-tags.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/core-cicd/update-major-version-tags.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/update-major-version-tags.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/v4-bootstrap.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/release-flow-v4/v4-bootstrap.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/v4-bootstrap.yml
# @Date: 2026-05-26 00:00:00 -07:00 (1780124400)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/welcome.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#
# @Project: @cldmv/.github
# @Filename: /examples/individual-repo-workflows/automation/welcome.yml
# @Project: @cldmv/git-embedded
# @Filename: /.github/workflows/welcome.yml
# @Date: 2026-05-20 00:00:00 -07:00 (1779606000)
# @Author: Nate Corcoran <CLDMV>
# @Email: <Shinrai@users.noreply.github.com>
Expand Down
Loading
Loading