Commit Graph
147 Commits
Author SHA1 Message Date
pnokerandClaude Code 0a0ea41142 ci(native): move opc-ua off the driver native matrix after the runner oom
The opc-ua driver (Eclipse Milo + netty + jaxb universe) exhausts the
16GB hosted runner during the native-image analysis step even with
-J-Xmx10g; it builds fine on larger local machines. Its native image has
never shipped, so dropping it from the matrix removes nothing users
already have. It stays on the JVM line with dnp3/ble/opc-da until the
heap cap is property-driven or a larger runner hosts the job.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-17 01:20:24 +08:00
pnokerandClaude Code 9832bd6b4a feat(native): onboard the jserialcomm serial driver batch
Batch 3 joins the native line: modbus-rtu, serial, mbus, dlt645, dlms
and zigbee - the jSerialComm serial family. jSerialComm ships no
native-image configuration of its own, so DriverNativeRuntimeHints
registers the embedded per-platform JNI libraries as resources and the
SerialPort JNI surface explicitly (string-based references keep
non-serial drivers unaffected). The tracing snapshots carry the early
boot surface only - serial paths open on device access and stay covered
by the explicit registrations. zigbee is best-effort: no radio hardware
locally, gRPC registration and scheduling are the acceptance line.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-14 01:34:47 +08:00
pnokerandClaude Code b73e4cfa35 feat(native): onboard the database and messaging driver batch
Batch 2 joins the native line: mysql, postgresql, sqlserver, oracle,
redis and kafka - database dialects and messaging clients, all pure
Java. DriverNativeRuntimeHints gains the four JDBC dialect driver
constructors (string-based TypeReferences; each class exists only on
its own driver's classpath and native-image ignores hints for absent
classes). Same generated shape as the previous batches: targets, matrix
entries, compose blocks and per-driver agent snapshots.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-14 01:21:49 +08:00
pnokerandClaude Code 61420025e7 feat(native): onboard the protocol sdk driver batch
Batch 1b joins the native line: knx, bacnet-ip, melsec, plcs7, lorawan,
opc-ua, lwm2m and iec61850 - pure-Java protocol SDKs (calimero,
bacnet4j, iot-communication, milo, leshan, openiec61850). iec61850's
GOOSE raw-ethernet paths stay untested on native and are validated in
TCP mode only, as flagged in the CI matrix comment. Same shape as batch
1a: native targets, matrix entries, compose overlay blocks behind the
native-drivers profile, and per-driver agent snapshots.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-14 01:15:18 +08:00
pnokerandClaude Code 691d8a6ade feat(native): onboard the pure java protocol driver batch
Batch 1a joins the native line: tcp-udp, listening-virtual, can,
ethernet-ip, fins, http, snmp, iec104 and coap - pure-Java protocol
stacks with no JNI dependencies. Native targets mirror the jar line's
directory layout (listening-virtual keeps its TCP/UDP EXPOSEs), the CI
matrix gains the nine entries, and the compose overlay defines the nine
services behind the native-drivers profile with keys matching
docker-compose.yml so overlay semantics hold (the pilot keys are renamed
to the short main-compose form for the same reason).

Each driver carries a tracing-agent snapshot per the dual-track policy:
RuntimeHints covers the shared SDK surface, snapshots carry the
logback/logstash parsing depth and per-protocol reflective access.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-14 01:01:31 +08:00
pnokerandClaude Code 0664fef7e2 ci(native): fan driver native builds out as a matrix
A serial driver loop cannot fit the 360-minute GitHub job cap once the
later batches join. Add a build-native-drivers matrix job (one driver
per job, fail-fast off, max-parallel five, its own gha cache scope) that
pins the NATIVE_SERVICE build arg to the matrix service, and gate the
release job on it.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-14 00:27:08 +08:00
pnokerandClaude Code 98c0f8a6c3 fix(ci): sync the mockito integrity pin and document the insight rpc
The mockito jar sha1 pin still targeted the pre-upgrade artifact while
the build resolves 5.24.0, so every CI run failed the agent-integrity
check even after refetching. Re-pin to the 5.24.0 jar sha1 verified
against Maven Central metadata.

Document the InsightApi.Invoke RPC in the dc3-api-data README so the
proto-to-documentation guard passes.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-09 00:25:11 +08:00
pnokerandClaude Code b588204110 feat(cli): adopt the remaining guardian tests and auth store fix
adopts the remaining uncommitted work from the parallel session:
five new guardian test files (client-errors, device-import-template,
entity-id-guard, jwt-guard, option-hygiene) that lock in the error
taxonomy, id encoding, and cli option hygiene; an attachment file
cleaner in the agentic service; attachment controller and service
tests; a salt-type fix in the auth store; ci workflow typecheck step;
and the cli test report. 818 tests total across 37 files.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-06 21:26:15 +08:00
pnokerandClaude Code e1edbbcdc3 docs(cli): sync readme with new commands and fix documentation drift
adds the provider model and attachment command groups to the readme
with usage examples for every subcommand, documents device
import-template and alert point-profile, corrects the point history
option name from --count to --limit, fixes the mcp example key from
transport to type, adds config profile create/delete to the multi-
profile section, and aligns the test suite with the updated command
surface. also updates ci to run typecheck alongside tests.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-06 13:43:30 +08:00
pnoker a104968761 ci: resolve maven settings and extract the mockito pin
The e2e job now runs with empty MVN_SETTINGS so make test-e2e resolves artifacts from public repositories instead of silently inheriting the local Aliyun mirror, and the mockito agent integrity steps extract the version from the pom with help:evaluate (pinned to the official 5.23.0 sha1) so the guard follows the build instead of drifting from it.
2026-10-03 13:42:37 +08:00
pnokerandClaude Code b88435f5df ci(release): put only the current version block in the release body
The release job concatenated the whole dc3/doc/CHANGE.md (236KB) into
the release_notes output; passing it as the action's body input needs
an INPUT_BODY env var beyond the 128KB MAX_ARG_STRLEN limit, so the
runner died with "Argument list too long" while spawning node for the
action — the last failure before the first successful release. Extract
just the current version's block (as the backfill tool does): 17KB.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-23 09:57:02 +08:00
pnokerandClaude Code ea492eb80c ci(native): raise the build-native timeout to 240 minutes
The first gateway compile took ~20 min on the 4-core hosted runner —
six services with sequential pushes come to ~140 min, past the
120-minute limit. The run would die to the job timeout, not to a
build failure.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-23 01:31:31 +08:00
pnokerandClaude Code 5e75605cf2 ci(docker): disable provenance attestations for Aliyun ACR
The first-ever published build-backend run pushed fine to Docker Hub
but Aliyun ACR rejected the image index: "denied: unknown manifest
class for application/vnd.oci.empty.v1+json" — buildx attaches SLSA
provenance attestations by default and ACR cannot accept them. This
workflow never reached the push step before (startup_failure since
a58064cc5), so the dc3-docker fix (provenance: false) was never
mirrored here. Disable provenance on the backend loop, the native
loop and the web build.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-23 00:54:33 +08:00
pnokerandClaude Code e6eeb8a537 ci(test): stop mockito agent jars from killing the forks on runners
Three consecutive fresh-cache runs failed the same way: the mockito
javaagent jar under ~/.m2 is corrupt ("Error opening zip file") and the
surefire/failsafe forks die during VM init. The artifact on Central is
intact (sha1 verified from three networks), so the corruption happens
in transit on hosted runners.

Two mitigations: -T 1 overrides the .mvn/maven.config parallel build
for CI test runs (the resolver part-file race under -T 1C is the prime
suspect), and a pre-step verifies the jar's sha1 and refetches it via
curl when corrupt before the forks ever load it.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-22 02:14:27 +08:00
pnokerandClaude Code ed308e7605 ci(release): grant the reusable verify workflows the permissions they need
Every Docker Images run since a58064cc5 failed as startup_failure before
any job started: the workflow-level permissions grant (contents: read)
is below what the reusable test.yml declares (contents + pull-requests),
and GitHub refuses to start a caller that under-grants its callees. Add
pull-requests: read to the workflow-level grant — job-level grants
(actions: write on build jobs, contents: write on the release job) stay
as they are.

Isolated by bisection on a probe branch: reusable call + permissions
reproduces startup_failure in 0s; either alone succeeds.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-22 01:48:49 +08:00
pnokerandClaude Code e01ed11500 fix(release): read the release version from a parentless root pom
tag.sh and the docker-ci validate step extract the release identity
with an awk range over the <parent> block, but the root pom carries
its own coordinates without a <parent> — both read an empty version
and refused to run. That is why every release since a58064cc5 was
backfilled through the API and never exercised this pipeline. Fall
back to the first <version> element (the project's own coordinates),
matching how changelog.py resolves the version.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-22 01:19:33 +08:00
pnokerandClaude Code f78bc54963 ci(native): publish the native service set from docker-ci
Add a build-native job to the v* release pipeline: the six native
services (dc3-center/* + dc3-gateway) build via the native-builder
Dockerfile stage and publish alongside the jar images with the
-native tag suffix (latest-native / series-native / version-native)
to Docker Hub and Aliyun, same image names as the jar variants.

amd64 only for now — native-image under QEMU needs ~13GB RSS and
OOMs the 16GB hosted runners; arm64 native images wait for native
arm64 runners. The release job now gates on build-native so a broken
native pipeline is loud instead of silently shipping jar-only.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-22 00:35:09 +08:00
pnokerandClaude Code 41350a73df docs(brand): reposition IoT DC3 — Connect the Physical World to AI
Adopt the dc3.site canonical slogan across every surface: the platform
is an open-source Industrial IoT Runtime for Physical AI. Hero taglines
and tech-tag strips in all seven language banners regenerate from the
new copy (MCP tool gateway / safe / controllable / traceable replace
the edge-cloud and SENSE-DECIDE-ACT strips); READMEs follow — badge
line gains the live demo and industry-demo links, the AI section
rewrites around the MCP tool gateway loop (OAuth client registration,
per-tool authorization, audit trail), and the intro names the core
decoupling: drivers push normalized point data to the bus, applications
consume through one unified API. AGENTS.md carries the same one-paragraph
positioning for AI assistants.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-20 10:04:37 +08:00
pnoker 4428b1ceb8 ci: drop one-off mockito diagnostic step
The forced re-download proved the javaagent failure is not a corrupted
cache: freshly downloaded jars fail identically, so the diagnostic step
served its purpose and the investigation moves to an issue.
2026-09-19 19:25:24 +08:00
pnoker 4a9a65e258 ci: fix e2e ratchet baseline and purge corrupted cached jars
The e2e suite runs the verify lifecycle too, so its shallow checkout
also needs the origin/main baseline for spotless ratchetFrom. Unit,
integration and coverage jobs additionally restore a maven cache that
contains a truncated mockito jar from an earlier failed run; the
restore-key fallback keeps resurrecting it and -U never re-downloads a
file that already exists, so drop implausibly small jars before the
build.
2026-09-19 19:25:24 +08:00
pnoker a5fe1549d9 ci: run spotless and checkstyle through the verify lifecycle
The mixed 'initialize spotless:check' direct-goal invocation resolves
inter-module jars from remote repositories instead of the reactor and
fails within seconds on a clean cache — Backend CI on main has been red
since early September because of it. Both checks already bind to the
verify phase, so a plain skipped-tests verify run executes them with
normal reactor resolution (verified against an empty local repository).
2026-09-19 19:25:24 +08:00
pnoker 5009ee744b ci: fetch main baseline for the spotless ratchet in shallow checkouts
ratchetFrom origin/main (38204bf7d) needs an origin/main ref that the
default depth-1 PR checkout does not provide, so compile, Unit tests
and Integration tests all failed within seconds on the first PR since.
Fetch the main tip right after checkout in every affected job; the
ratchet only diffs the working tree against that one commit.
2026-09-19 19:25:24 +08:00
pnokerandClaude Code 77b32e30db build(dependabot): target main for update PRs
develop is no longer the integration target (main is the only active
line). Route all four ecosystems to main so updates are proposed against
the active branch; the develop branch is kept as an archive.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-03 12:56:00 +08:00
pnoker 52260f7bd3 build(ci): inline codeql paths-ignore in workflow
The config file only carried two paths-ignore entries, which the init action accepts directly as inputs; folding them into codeql.yml removes the separate .github/codeql directory without behavior change.
2026-09-03 09:03:48 +08:00
pnoker 66aab58f20 build: standardize repository tooling and quality gates 2026-09-02 20:51:10 +08:00
pnoker d4302a541f build: declare mybatis-plus-spring and add cli ci workflow
- dc3-common-auth imports com.baomidou.mybatisplus.spring.service
  directly since the 3.5.17 split but never declared the artifact;
  out-of-reactor consumers hit FileNotFoundException at boot. Manage
  it in the root BOM alongside the existing entry.
- ci-cli.yml gates dc3-cli (lint, test, build, help smoke) on PRs
  touching dc3-cli/**
- adapt AuthenticGatewayFilterTest to the extended constructor
2026-09-01 22:03:15 +08:00
pnoker 8594ad849e docs(brand): translate the svg and generator comments to english
- translate the banner template documentation and protocol-mesh comments in the eight localized banners, the template, and the social preview
- keep the localized tagline copy inside the comment blocks (it documents the LANGS table values)
- verified: all nine svg files parse as xml and the template placeholders remain intact
2026-08-25 16:13:46 +08:00
pnoker 769d1cb977 style: apply repository-wide formatting
- expand single-line Javadocs to multi-line blocks, rewrap Markdown prose, and reflow POM, YAML, and TypeScript formatting
- formatting only: no Java code lines changed, no build-file semantics changed
- verified: backend compile and check_documentation.py pass, pnpm check and pnpm lint:check pass, and the dc3 YAML files parse
2026-08-25 13:35:00 +08:00
pnoker b26c0000be feat(release): add release backfill tool and docs-linked release footer 2026-08-19 17:02:35 +08:00
pnoker 2426d1b47f ci(docs): enforce documentation consistency 2026-08-19 00:06:14 +08:00
pnoker 21017f0155 style(brand): refine repository artwork 2026-08-18 23:16:34 +08:00
pnoker fd159b7a36 fix(database): repair and validate PostgreSQL initialization 2026-08-18 08:15:12 +08:00
pnoker dabd5d9718 feat(brand): add multilingual banners with dc3 protocol mesh to readmes 2026-08-14 19:26:07 +08:00
pnoker a58064cc5c ci(release): verify releases before publishing artifacts 2026-08-12 01:04:49 +08:00
pnokerandClaude Fable 5 c8e65ceafa ci(web): widen deploy-pages tolerance for Pages queue stalls
The first deploy after enabling the demo.dc3.site custom domain landed in
deployment_queued and was cancelled by the Pages backend. Bump error_count
(10→20) and timeout (10m→15m) so transient queue stalls can ride through
instead of aborting.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 21:37:57 +08:00
Henry ZhangandClaude Fable 5 7802eeb999 feat(web): static mock demo deployable to demo.dc3.site (#199)
* feat(web): complete static mock demo for GitHub Pages

- register core/dashboard/dictionary handlers + seed data (driver/device/
  profile/point, dictionaries, dashboard stats/topology/alerts)
- fix router-guard timing: pre-seed auth at main.ts top level before router
  install, since the initial navigation runs as a microtask ahead of the
  async mock-chunk import
- hide agentic assistant in mock mode (its chat streams over raw fetch and
  bypasses the axios adapter)
- assetUrl helper for subpath-safe public assets
- GitHub Pages deploy workflow + public/CNAME (demo.dc3.site)
- unit tests covering the mock adapter

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(web): commit mock core handler skipped by core.* gitignore

The repo-root `core.*` rule (meant for JVM crash dumps) silently skipped
dc3-web/src/mock/handlers/core.ts during `git add`, so the PR build failed
type-check with "Cannot find module './handlers/core'". Force-add the file
and add a negation exception so it can't be dropped again.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test(web): drop `as never` cast in mock-adapter test

The AI guardrail forbids double-assertion / never-cast type laundering.
Use the real AxiosRequestConfig type and a single boundary cast to R
(the interceptor unwraps the envelope) instead of `request(config as never)`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 21:18:10 +08:00
Henry Zhang d06abff597 chore(docs): move docs site to standalone pnoker/iot-dc3-docs repo (#177)
* chore(docs): move docs site to standalone pnoker/iot-dc3-docs repo

The VitePress docs site now lives in pnoker/iot-dc3-docs and serves docs.dc3.site from there. Remove the in-repo docs/ and all docs-only build/deploy wiring so nothing dangles.

- delete docs/ (source moved to pnoker/iot-dc3-docs)

- delete .github/workflows/docs.yml (deploy owned by iot-dc3-docs)

- drop npm /docs dependabot block; clean codeql/.gitignore docs paths

- remove Makefile docs-* targets

- relocate AI testing policy into dc3-web/tests/ so the required Web guardrail test is self-contained (was reading ../docs/...)

- rewire README image refs (7 READMEs) and in-repo doc links (README.ai.md, AGENTS.md, dc3/doc/README.md) to https://docs.dc3.site / the new repo

dc3/doc/{TITLE,CHANGE,USAGE}.md STAY - release tooling (make changelog, docker-ci) regenerates them; the docs repo snapshots them.

* fix(docs): repair pre-existing broken doc links found during migration

- 8 READMEs: /en|zh/introduction/technology-stack -> /en|zh/development/technology-stack (page lives under development/, not introduction/)

- dc3-web/tests/README.md: ../docs/test-debugging.md (missing) -> https://docs.dc3.site/en/frontend/test-debugging
2026-08-06 14:54:17 +08:00
Henry ZhangandClaude Fable 5 7c76f19c1c build(deps): bump pnpm/action-setup to v6.0.10 (#171)
pnpm/action-setup was pinned to a commit running on the deprecated Node.js 20 runtime (GitHub forces Node 24 and emits a warning). Bump to v6.0.10 (0977fd9) which runs natively on Node 24, removing the deprecation warning. Updates docs.yml (1) + ci-web.yml (2).

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 10:15:59 +08:00
pnoker 4cd16d23d1 Merge remote-tracking branch 'origin/develop' into chore/promote-develop-main-2 2026-08-03 20:24:41 +08:00
Henry Zhang 8ec3d38043 ci(backend): run backend CI on every PR (fix required-checks BLOCKED) (#155)
ci-backend.yml ignored dc3-web paths on pull_request, so npm-only
dependabot PRs never triggered backend CI — but compile/Unit/Integration/
coverage are required status checks, leaving those PRs perpetually
BLOCKED (had to --admin merge). Drop the pull_request paths-ignore so
every PR runs backend CI; keep it on push (a dc3-web-only push still
skips backend CI, which is fine — the PR already ran it).
2026-08-03 14:23:49 +08:00
dependabot[bot] f817ce4e28 build(deps): bump actions/setup-node from 6.5.0 to 7.0.0 (#153)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.5.0 to 7.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/249970729cb0ef3589644e2896645e5dc5ba9c38...820762786026740c76f36085b0efc47a31fe5020)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-03 13:32:43 +08:00
dependabot[bot] 7cf76107c9 build(deps): bump actions/setup-java from 4.8.0 to 5.7.0 (#152)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.8.0 to 5.7.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/c1e323688fd81a25caa38c78aa6df2d33d3e20d9...b6effb05e454b25005698d916606bdc6ffcbf961)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 5.7.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-03 13:32:38 +08:00
dependabot[bot]andHenry Zhang ba2c522280 build(deps): bump actions/upload-pages-artifact from 3.0.1 to 5.0.0 (#135)
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3.0.1 to 5.0.0.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/56afc609e74202658d3ffba0e8f6dda462b719fa...fc324d3547104276b827a68afc52ff2a11cc49c9)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Henry Zhang <pnokers@icloud.com>
2026-08-03 12:22:35 +08:00
dependabot[bot]andHenry Zhang 344e1b1072 build(deps): bump docker/metadata-action from 5.10.0 to 6.2.0 (#130)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.10.0 to 6.2.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/c299e40c65443455700f0fdfc63efafe5b349051...dc802804100637a589fabce1cb79ff13a1411302)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Henry Zhang <pnokers@icloud.com>
2026-08-03 12:22:30 +08:00
dependabot[bot]andHenry Zhang 9b61f5720a build(deps): bump softprops/action-gh-release (#134)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from c12583777ecdfd3be55c69cf75464299dc01057e to 3d0d9888cb7fd7b750713d6e236d1fcb99157228.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/c12583777ecdfd3be55c69cf75464299dc01057e...3d0d9888cb7fd7b750713d6e236d1fcb99157228)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 3d0d9888cb7fd7b750713d6e236d1fcb99157228
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Henry Zhang <pnokers@icloud.com>
2026-08-03 12:05:49 +08:00
dependabot[bot]andHenry Zhang 02b8bf95af build(deps): bump ossf/scorecard-action (#131)
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 99c09fe975337306107572b4fdf4db224cf8e2f2 to 4eaacf0543bb3f2c246792bd56e8cdeffafb205a.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](https://github.com/ossf/scorecard-action/compare/99c09fe975337306107572b4fdf4db224cf8e2f2...4eaacf0543bb3f2c246792bd56e8cdeffafb205a)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-version: 4eaacf0543bb3f2c246792bd56e8cdeffafb205a
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Henry Zhang <pnokers@icloud.com>
2026-08-03 12:05:45 +08:00
Henry Zhang 8a333a2791 chore(ci): route dependabot PRs to develop (#151)
dependabot.yml had no target-branch, so updates targeted the default
branch (main). main is the release branch and was red — compiler fixes
lived only on develop — which left every open dependabot PR BLOCKED.
Set target-branch: develop on all five ecosystems so upgrades land on
the integration branch first, get validated, then promote to main.
2026-08-03 11:52:54 +08:00
dependabot[bot] ac39d9d60f build(deps): bump actions/checkout from 4.3.1 to 7.0.0 (#103)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.3.1 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/34e114876b0b11c390a56381ad16ebd13914f8d5...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-19 21:07:39 +08:00
dependabot[bot] c13feb0b7a build(deps): bump docker/login-action from 3.7.0 to 4.4.0 (#106)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.7.0 to 4.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/c94ce9fb468520275223c153574b00df6fe4bcc9...af1e73f918a031802d376d3c8bbc3fe56130a9b0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-19 21:07:34 +08:00
dependabot[bot] 583bd4993f build(deps): bump docker/setup-qemu-action from 3.7.0 to 4.2.0 (#105)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.7.0 to 4.2.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/c7c53464625b32c7a7e944ae62b3e17d2b600130...96fe6ef7f33517b61c61be40b68a1882f3264fb8)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-19 21:07:29 +08:00