sjel.toml
Rama main · réplica de lectura del repositorio original.
# Sjel platform manifest v1. Facts that are true of Sjel itself, on every machine.
#
# What is NOT in here, and why: this file is tracked and shared, so anything that
# differs between two installations cannot live here. Multi-host operation proved that
# the hard way: node-local capabilities and state mounts cannot share a tracked value,
# and `git pull` must never depend on hiding local manifest edits. A tracked file
# that every machine is expected to edit is a design bug, not a workflow.
#
# So machine-local configuration lives in two places instead:
#
# sjel.local.toml — `overlay`: where THIS machine's private overlay is.
# Gitignored, written by tools/install.sh. The one
# bootstrap fact, because you need it to find the rest.
# <overlay>/config/machine.toml — os, container_runtime, `capabilities`, and the
# [[state_mount]] registry. One overlay is one
# deployment instance, so that file has exactly one
# machine to describe.
#
# See schemas/machine.toml.example.
[platform]
name = "sjel"
# Shipped DEFAULT only — a fresh install with no sjel.local.toml resolves here.
# Do not edit this to point at your own overlay; run tools/install.sh, which writes
# sjel.local.toml. tools/lib/paths.sh prefers that file and falls back to this value,
# which is also what keeps a fresh clone working: CI has no sjel.local.toml and resolves
# this default instead.
overlay = "~/.sjel-overlay"
# [upstream] cooldown_min_days / cooldown_max_days stood here until 2026-09-02, when Q74
# deleted the adoption hold. All three readers went with it in the same change:
# tools/agentbox's host-install gate, renovate.json5's minimumReleaseAge restatement, and
# this file's own claim to be their one home. There is no replacement value, because there is
# nothing to wait out (CONTRIBUTING.md#patch-first).
#
# [audit] expiry_warn_days stood here too, and had one reader: tools/audit's expiry clock, which
# warned before an osv-scanner.toml ignoreUntil lapsed. osv-scanner enforces those dates itself
# and names a lapsed entry under `unused ignores`, so the pre-warning was the only thing Sjel
# added and the only thing given up. A manifest key with no reader is the decay this file's own
# header argues against, which is why both blocks are deleted rather than left as history.
[release]
# Which tags are release tags (CONTRIBUTING.md#the-release-line). Six call sites across bash and
# TypeScript ask git "what version is this checkout" — tools/update.sh, tools/repos.ts and
# tools/doctor.ts, twice each — and every one of them used a bare `git describe --tags`. That
# answers with ANY reachable tag, so an archive marker, a vendor tag or a nightly silently
# becomes the reported version. The pattern lives here rather than in a shell library because
# the two TypeScript callers exec bun directly and never source one.
tag_glob = "v[0-9]*"