Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: Start9Labs/start-technologies

Tags

start-wrt/v1.0.0

Toggle start-wrt/v1.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #3462 from Start9Labs/fix/shared-host-ssl-ca-selector

fix(ui): show certificate authority selector when any shared-host binding adds SSL

start-sdk/v2.0.3

Toggle start-sdk/v2.0.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(build): move per-product build scripts out of start-core (#3453)

Each product's cross-compile script now lives in its own project dir:
startbox/start-container under projects/start-os/build/, build-cli.sh,
build-registrybox.sh, and build-tunnelbox.sh under their projects'
build/, and build-backup-fs.sh/build-pi-beep.sh next to the crates they
build. The shared builder-alias.sh moves to the top-level build/ (shared
build infra). Scripts now cd to the repo root once and source
build/builder-alias.sh from there.

build-ts.sh and build-manpage.sh stay in start-core since they drive its
own export_* tests. Each moved script is an explicit prereq of its
binary rule (previously covered implicitly via CORE_SRC), and
builder-alias.sh joins CORE_SRC. No CI paths: changes needed - every
destination is already covered by existing globs.

start-cli/v1.0.2

Toggle start-cli/v1.0.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(build): move per-product build scripts out of start-core (#3453)

Each product's cross-compile script now lives in its own project dir:
startbox/start-container under projects/start-os/build/, build-cli.sh,
build-registrybox.sh, and build-tunnelbox.sh under their projects'
build/, and build-backup-fs.sh/build-pi-beep.sh next to the crates they
build. The shared builder-alias.sh moves to the top-level build/ (shared
build infra). Scripts now cd to the repo root once and source
build/builder-alias.sh from there.

build-ts.sh and build-manpage.sh stay in start-core since they drive its
own export_* tests. Each moved script is an explicit prereq of its
binary rule (previously covered implicitly via CORE_SRC), and
builder-alias.sh joins CORE_SRC. No CI paths: changes needed - every
destination is already covered by existing globs.

start-wrt/v0.1.0-beta.4

Toggle start-wrt/v0.1.0-beta.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(fmt): normalize formatting — one config per language, reproduci…

…ble rustfmt (#3437)

* chore(fmt): one config per language + reproducible rustfmt

Our rustfmt.toml uses nightly-only options (group_imports,
imports_granularity) but nothing pinned the nightly, so output drifted
between contributors — and CI never even checked Rust formatting. Configs
were also duplicated and partial. Consolidate to one config per language
and make the output reproducible:

- rustfmt: single root rustfmt.toml (was 5 duplicate copies + ~14 crates
  with none). Runs in start9/fmt-env — start9/cargo-zigbuild (the same image
  the Rust build uses) plus the pinned nightly + rustfmt component
  (build/fmt/fmtenv.Dockerfile) — via build/fmt/run-fmt.sh, which runs it
  --user so output stays host-owned. FMT_NATIVE=1 runs on the host against
  the same pinned toolchain (read from the Dockerfile ARG — one source of
  truth for the version).
- prettier: single root .prettierrc.json (was 3-4 drifted copies, incl.
  container-runtime on double quotes). One repo-wide pass with a hardened
  .prettierignore (excludes .sqlx cache, the generated exver.ts parser,
  conformance vectors, locales, snapshots/fixtures, proxy.pac,
  patch-db/client).
- taplo: single root taplo.toml over all TOML (was one stray copy), pinned
  via @taplo/cli. Only rustfmt needs the container; prettier and taplo run
  natively.
- CI `make format-check` now covers rustfmt (previously unchecked) + taplo.
- Remove the dead husky v4 / lint-staged pre-commit hook (no lint-staged
  config existed).

Per-project `<project>-format` targets are kept (routed through the same
tools/config). The formatting content itself lands in the next commit.

* style: apply repo-wide formatting

Mechanical output of `make format` using the configs from the previous
commit (rustfmt in the pinned-nightly container, prettier and taplo). No
behavior changes.

* chore: ignore the repo-wide reformat in git blame

start-sdk/v2.0.2

Toggle start-sdk/v2.0.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #3436 from Start9Labs/ci/skip-builds-on-doc-only-c…

…hanges

ci: skip binary/image builds on doc-only changes

start-cli/v1.0.1

Toggle start-cli/v1.0.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
ci: skip startos-iso image build on non-image PRs (#3438)

* ci: skip startos-iso image build on non-image PRs

The startos-iso image matrix (ISO/squashfs/img across 9 platforms, ~2h
wall-clock once the emulated riscv builds are counted) ran on every PR
that touched the start-os tree, including pure Rust/web changes. But the
image job only repackages the already-compiled binary, so a change that
compiles and passes tests cannot affect image assembly.

Add a PR-only `changes` gate that inspects the PR's changed files and
runs the image matrix only when the change touches image-assembly inputs
(packaging, image recipe, systemd units, apt/**, shared build/**) — what
the image target pulls in beyond the binary. Pure code/web/docs PRs now
stop at compile + Automated Tests (~33m) and get full image coverage on
the push to master; packaging PRs still build images pre-merge.
push/dispatch/release always build images (the guard is bypassed there).

start-wrt already gates its slow OpenWrt image to workflow_dispatch, so
only startos-iso needed this. Documented the new image-gate ↔ build.mk
coupling in AGENTS.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

* chore(start-sdk): sync package-lock.json to 2.0.2

package.json and the CHANGELOG were bumped to 2.0.2 but package-lock.json
was left at 2.0.1, so `npm --prefix projects/start-sdk ci` (the format
job's lockfile-drift gate) fails. Sync the lockfile.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>

---------

Co-authored-by: Matt Hill <[email protected]>
Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]>

start-sdk/v2.0.1

Toggle start-sdk/v2.0.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(sdk): bundle eslint + typescript-eslint so the published lint gat…

…e runs (#3397)

2.0.0 shipped lint.mjs (the type-aware build gate s9pk.mk runs as
`node node_modules/@start9labs/start-sdk/lint.mjs`) plus
eslint.config.base.mjs, but only @start9labs/start-core was in
bundleDependencies. npm never packs node_modules except bundleDependencies,
and it won't bundle a package that is only a devDependency — so the published
tarball omitted eslint / typescript-eslint and every consumer's lint step
crashed with ERR_MODULE_NOT_FOUND (and would break package CI via s9pk.mk).

Move eslint + typescript-eslint from devDependencies into dependencies and add
them to bundleDependencies, so the lint toolchain ships inside the SDK's own
node_modules — as lint.mjs already documented. typescript stays a peer resolved
from the consumer (guaranteed present: s9pk.mk runs tsc via `npm run check`
before the lint step), keeping the ~24MB compiler out of the tarball.

Verified end-to-end: packed the built dist, installed the tarball into a scratch
consumer — clean file passes, a Promise-in-template literal is caught with exit 1.

Ships as 2.0.1; bumps the package-template pin to match.

start-sdk/v2.0.0

Toggle start-sdk/v2.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix: unbreak CI — drop make -t-incompatible dist co-target + repair g…

…etServiceInterface call site (#3393)

* fix: revert start-core/SDK dist co-target — it breaks CI's make -t flow

#3391's grouped `dist/package.json dist/node_modules/.package-lock.json &:`
co-target (to force a rebuild when the bundled node_modules is missing) is
incompatible with the ISO build's "Prevent rebuild of compiled artifacts"
step, which runs `make -t compiled-<arch>.tar` to mark the downloaded
artifacts current. `make -t` reaching the group via `dist/package.json`
touches only that target, NOT the grouped sibling stamp — so the stamp stays
missing and `make startos-iso` re-runs `make -C start-core dist`, which
cascades into a web-UI rebuild that reads an empty config.json and fails
(`Unexpected end of file in JSON`). Restore the plain single-target rule,
which `make -t` suppresses cleanly. Keeps the projects/start-sdk ls-files
dead-edge fix.

* fix: repair SystemForEmbassy call to removed getServiceInterface helper

#3392 removed util.getServiceInterface from start-core but left this legacy
call site using it, breaking the container-runtime tsc build on master.
Reconstruct the same filled-interface lookup inline from the retained
effects.getServiceInterface + effects.getHostInfo + utils.filledAddress.

start-cli/v1.0.0

Toggle start-cli/v1.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(release): give the SDK npm release a GitHub release + OTP prompt (

#3395)

* chore(release): create a GitHub release for the SDK and prompt for the npm OTP

Bring the start-sdk (npm) release into line with the os/cli/deb flows:

- create-gh-release and notes now support the npm kind, and the sdk
  release pipeline runs create-gh-release between tag and push so every
  idempotent step precedes the one irreversible one (npm publish).
- gh auth is now a pre-check requirement for every project (it was
  gated behind non-npm); npm now needs it to cut its GitHub release.
- Switch the release tag/release scheme from <project>_v<version> to
  <project>/v<version>.
- Prompt for the npm OTP at publish time (after the build, so it can't
  expire) when OTP is unset and stdin is a tty; OTP=… still skips.

* docs: require reading CONTRIBUTING.md before any code change

Add the rule to the root AGENTS.md alongside the existing "read down
into what you touch" guidance, and note it is hierarchical like AGENTS.md
(read any nested CONTRIBUTING.md on the way down too).

v0.4.0-beta.9

Toggle v0.4.0-beta.9's commit message

Verified

This commit was signed with the committer’s verified signature.
MattDHill Matt Hill
fix(tunnel): show Root CA trust steps only when web init generated th…

…e cert

`start-tunnel web init` always printed the Root CA and a "follow
instructions to trust your Root CA" line pointing at a docs anchor that
doesn't exist — even when the user supplied their own certificate, where
there's nothing to trust. Now the Root CA block is shown only when init
generated the cert, and the link points at the StartTunnel docs section
that actually covers it. CLI output only; no API or DB changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>