Commit Graph

86 Commits

Author SHA1 Message Date
a29e0708e8 new conventions 2026-09-14 06:13:22 -03:00
37c4d588ea Merge branch 'main' into docgen-graphgen 2026-09-13 21:41:29 -03:00
160ee31b8c docgen: drop the superseded first pass, port the style harvester
The IR supersedes both intermediate designs (requirements D6, D7):
station/tools/docgen and the graph model that briefly lived in graphgen.
Shipping them beside atlas2/docgen would mean two graph models, which is the
thing the architecture argues against.

Carried across rather than lost:
  - style/extract.py and tokens.py, the offline theme harvester (R31). Rewritten
    to emit a *theme* — a slot-to-hex binding — rather than a whole style file,
    since what harvesting recovers is which colour a slot should be, not what a
    kind should look like.
  - graphgen/README.md, rewritten for what graphgen actually is now: the
    schema explorer. It fixes the blank station-index entry at run.py:304.

Two bugs found while doing it:
  - Canvas and ink are the two lightness extremes, not the two most common
    values. In a Graphviz SVG every label carries a fill, so the ink outnumbers
    the canvas 87 to 43 and the old rule produced a theme whose text was
    invisible against its own background.
  - A name defined in both branches of an if/else produced a duplicate id, which
    failed validation on docgen's own source. Disambiguated by line.
2026-09-13 21:41:29 -03:00
358b98f826 site emitter 2026-09-12 07:08:00 -03:00
7cb892ccfe add cases for code, dbs, and outline notebook generation 2026-09-12 06:50:05 -03:00
542d704da4 docgen iter 2 2026-09-12 06:42:49 -03:00
49a9f8ee57 sanitized rig 2026-09-12 02:44:40 -03:00
966f8fc821 attemp to develop rig in spr without an actual use case 2026-08-26 07:27:12 -03:00
83b6cbebe3 init rig 2026-08-20 11:24:42 -03:00
a65c92257d Stop build.py sweeping secrets and bytecode into gen/
gen/<room>/ is the docker build context and soleprint/Dockerfile is `COPY . .`,
so anything reaching gen/ reaches an image layer — and registry.mcrn.ar is
public-read. station/tools/tester/.env has been gitignored since the last
incident, but .gitignore does not bind shutil: copy_path() called
shutil.copytree() with no ignore=, so the key was copied into every built room.
Verified extractable from soleprint_localtest-soleprint:latest (built 8 days
ago) at /app/station/tools/tester/.env.

ctrl/deploy.sh's --exclude='.env' is why this looked handled; it only covers the
rsync path, not the build-and-push path.

Two layers now:
  - copy_path()/merge_into() filter .env, __pycache__, *.pyc, .git, node_modules
    and virtualenvs out of bulk directory copies. Single-file copies named by a
    caller are untouched, so cfg/<room>/.env.example still ships.
  - soleprint/.dockerignore repeats the rule at the docker boundary and is
    copied into the context beside the Dockerfile. Follows the convention
    soleprint/atlas/.dockerignore already set (.env, .env.*, !.env.example).

Runtime is unaffected: no Dockerfile COPYs a .env, and the room compose files
supply it with `env_file: - .env`, read from the host at run time.

The key itself still needs rotating — it remains in git history.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 02:59:26 -03:00
78595f1bd9 Declare pass-through words PHONY in the Makefile
`make build ctrl` ran the build and then printed "make: 'ctrl' is up to date."
The empty rule from $(eval $(ARGS):;@:) is not enough when the word names a real
directory — and cfg, ctrl, docs, gen and init all exist at this level. Only
.PHONY stops make consulting the filesystem.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 02:55:06 -03:00
9bcd439266 Normalise line endings to LF
spr had no .gitattributes at all, despite shipping ctrl/*.sh and generating
gen/<room>/ctrl/*.sh. A checkout on Windows/WSL rewrites those to CRLF, and a
shell script with CRLF fails as `bad interpreter: /usr/bin/env bash^M` — which
reads as a broken installer rather than a line-ending problem.

Copied verbatim from rig/.gitattributes and deliberately duplicated rather than
shared: rig/ has to carry its own so it survives being handed over alone.

No tracked file in either repo currently has CRLF, so `git add --renormalize .`
rewrote nothing. Landing it now, while that is true, keeps it off the diff of
whatever lands next.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 02:55:06 -03:00
74f03566f1 Ignore client rigs at the repo root, before rig's tree lands
A rig is a copy of rig/ renamed after the environment it models, so its k8s
files spell out a real architecture — the one thing that must not be committed
here. rig/.gitignore already refuses them, but only within rig/: a copy is a
SIBLING of rig/, where that file has no reach. spr had no rule at all, so the
first `git add -A` after the fold would have committed one.

Anchored at the root, and the negation names the full path because `*-rig/` is
unanchored and would otherwise match rig/sample-rig too.

Verified both ways: a file under client-rig/ is ignored, one under
rig/sample-rig/ is not.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 02:54:45 -03:00
2d9bc9289c updates 33.2 112 2026-08-11 07:30:27 -03:00
910927993e updates 33.1 139 2026-08-10 09:19:19 -03:00
9a6337e493 updates 33.1 84 2026-08-10 05:36:32 -03:00
0b04516cbb updates 33.1 56 2026-08-10 03:44:50 -03:00
ef63b02554 update 33.1 50 2026-08-10 03:23:30 -03:00
33f0559268 updates 33.1 23 2026-08-10 01:35:13 -03:00
dfb1991ae3 updates 33.1 8 2026-08-10 00:32:47 -03:00
9fc4c23143 update docs 2026-05-06 12:04:19 -03:00
973f0a01c9 update sample app 2026-05-06 11:59:42 -03:00
38c2cfe50f untrack sample .env files, add .env.example placeholders
Live .env files (with real OAuth secrets) were tracked. Replaced with .env.example
templates. Existing .env files kept on disk so the sample still runs.

NOTE: prior history (8c5deb7, 88c2860) on gitea/main still contains the leaked
GOOGLE_CLIENT_SECRET. Rotate the credential in Google Cloud Console and decide
whether to rewrite history.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 05:33:34 -03:00
5f9cac1947 add fixture-invoicing example, sample-room wrap, kind cluster support
- examples/fixture-invoicing/: FastAPI + Vue + Postgres demo (4-entity invoice fixture)
- cfg/sample/: wraps the fixture (managed.repos points at examples/)
- ctrl/kind-{up,down,status}.sh + per-room k8s render in soleprint/ctrl/k8s/
- build.py: relative repo paths, resilient rmtree, optional k8s render hook
- cfg/.gitignore: stop ignoring sample/ and standalone/ template rooms

Manifests render cleanly but kind cluster has not been run end-to-end yet.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 05:30:52 -03:00
b886455431 untrack cfg/amar/ (already gitignored, has its own repo)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 05:06:48 -03:00
ec3391fe72 bootstrap datagen and graphgen 2026-04-16 18:59:30 -03:00
a80b72a9b1 updated docs 2026-04-14 10:32:05 -03:00
2e5a304181 wizard 2026-04-12 12:34:25 -03:00
54e7cfebd9 proper bootstrap script 2026-04-12 09:26:57 -03:00
def1b95bab remove local cfgs 2026-04-12 05:52:46 -03:00
3e625c2a27 tester fully decoupled 2026-04-12 05:50:08 -03:00
85a856b7ac updated modelgen, decoupling tester 2026-04-12 03:07:25 -03:00
af06309dad ai vein 2026-02-23 04:20:22 -03:00
a1141759a5 modelgen update 2026-02-09 17:55:07 -03:00
b2bd2245cb update gen script 2026-02-04 09:17:33 -03:00
0d2862c633 modelgen completed 2026-02-04 09:04:13 -03:00
buenosairesam
b233cd049a updated docs 2026-01-27 09:51:42 -03:00
buenosairesam
d783bb3a61 updated docs 2026-01-27 09:50:03 -03:00
buenosairesam
9eb720f90b fix: jinja2 template syntax in artery index 2026-01-27 09:38:56 -03:00
buenosairesam
fbe10a96d3 fix: rename VNC to VPN vein 2026-01-27 09:24:20 -03:00
buenosairesam
69121eb0c1 fix: pass rooms and depots to artery template to fix 500 error 2026-01-27 09:24:05 -03:00
buenosairesam
55d68ed371 Improve soleprint docs: bilingual EN/ES, system pages, architecture cleanup 2026-01-27 09:24:05 -03:00
buenosairesam
88c286029c Add /spr/ route for soleprint index, fix sidebar system labels 2026-01-27 09:24:05 -03:00
buenosairesam
5603979d5c Add session cookie for browser-isolated OAuth sessions 2026-01-27 09:24:05 -03:00
buenosairesam
2babd47835 homogeineze sidebar conf 2026-01-27 09:24:05 -03:00
buenosairesam
027f73794d added sample both local docker and system ngins options 2026-01-27 09:24:05 -03:00
buenosairesam
8c5deb74e8 fixed network issue with multiple managed rooms 2026-01-27 09:24:05 -03:00
buenosairesam
dd47f9c66f env merge fix 2026-01-27 09:24:05 -03:00
buenosairesam
e1f81889fc tuning the sidebar 2026-01-27 09:24:05 -03:00
buenosairesam
fecb978a5f updated sidebar 2026-01-27 09:24:05 -03:00