clone

a personal forge on plain git: static pages, stacked-diff reviews, signed local ci, repo sites and releases

A restored identity.db from litestream is the git user's alone

cat committed 1283f9e
forge restore moved litestream's copy of identity.db into place with whatever mode litestream gave it; forge identity restore made it 600 first, and now identity_pick does too. Scenario: a stand-in litestream writes the file readable by anyone, and the restored one is 600.
commit
1283f9e0f1748aa765dd47489ae9a95fe74249d1
parent
3e6ffab7b6c67950bc8c4dc702a6e0d275ddd489
author
cat <admin@dev.site>
ci
✓ passed in 115s, signed by cat
kind
fix risk score 1.1 of 3, Jev's estimate
review
#30 Security: sign-in, invites, owner pages, lake, caps and the edge
ci attestation
forge-attestation 1
type ci
commit 1283f9e0f1748aa765dd47489ae9a95fe74249d1
tree fa935637f46bfd1922e31ab558d4ba42dfed759f
script .forge/ci 8d2000a416f8160bcf710d98b72af9eb76287f58
result pass
exit 0
started 2026-10-19T08:02:13Z
duration 115s
runner (not shown here; refs/notes/ci has it)
system Darwin 25.5.0 arm64
env host
log sha256:534ead1c5a82f591db37f1ce6c4afa724115a9665887d196966fab19e3ccb7df 326 lines
|pushed wip/i18n
|7230645 running .forge/ci: greet.sh: say what it is
|  | sh: /bin/sh
|  | ok   greet
|7230645 pass in 0s, signed
|pushed main
|remote: review #4: /dami/greet/reviews/4/
|pushed wip/i18n
|25d5d21 running .forge/ci: wave at the world
|  | sh: /bin/sh
|  | FAIL greet : got 'hello, world o/', want 'hello, world'
|25d5d21 fail in 0s, signed
|forge: 1 commit(s) did not pass
|remote: review #6: /dami/greet/reviews/6/
|pushed ana/wave
|e96bc06 running .forge/ci: update the test for the wave
|  | sh: /bin/sh
|  | ok   greet
|e96bc06 pass in 0s, signed
|remote: review #6: /dami/greet/reviews/6/
|pushed ana/wave
|warning: You appear to have cloned an empty repository.
|site home: deployed be3ccbc -> /sites/ana/dotfiles/home/
|created ana/notes
|remote: review #1: /ana/notes/reviews/1/
|pushed ana/todo
|landing #1 A todo list: ana/todo -> main
|244c0e6 running .forge/ci: web, server and Python versions of greet
|  | sh: /bin/sh
|  | ok   greet
|244c0e6 pass in 0s, signed
|pushed main
|1bac811 running .forge/ci: messages: notes for the later regions
|  | sh: /bin/sh
|  | ok   greet
|1bac811 pass in 0s, signed
|remote: review #7: /dami/greet/reviews/7/
|pushed dami/regions
|created dami/forge
|warning: You appear to have cloned an empty repository.
|site guide: mkdir -p guide/fonts && cp site/assets/fonts/*.woff2 guide/fonts/
|site guide: deployed 9d60294 -> /sites/dami/forge/guide/
|(node:95047) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built ana/dotfiles in 0s -> /var/folders/b4/mv8w4c8j0zj0_mldppxdbdw00000gn/T/forge-ci.hUmi5V/wt/demo/root/.forge/www
|(node:95232) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built ana/notes in 1s -> /var/folders/b4/mv8w4c8j0zj0_mldppxdbdw00000gn/T/forge-ci.hUmi5V/wt/demo/root/.forge/www
|(node:95419) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built dami/forge in 1s -> /var/folders/b4/mv8w4c8j0zj0_mldppxdbdw00000gn/T/forge-ci.hUmi5V/wt/demo/root/.forge/www
|(node:95599) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built dami/greet in 1s -> /var/folders/b4/mv8w4c8j0zj0_mldppxdbdw00000gn/T/forge-ci.hUmi5V/wt/demo/root/.forge/www
|(node:96318) ExperimentalWarning: stripTypeScriptTypes is an experimental feature and might change at any time
|(Use `node --trace-warnings ...` to show where the warning was created)
|built - in 1s -> /var/folders/b4/mv8w4c8j0zj0_mldppxdbdw00000gn/T/forge-ci.hUmi5V/wt/demo/root/.forge/www
|235 of 235 pages render the same without 11ty
|guide: 8 files, links ok
|ok

Signature: good, cat

2 files changed, +28 -0
Mbin/forge2++
Atest/scenarios/identity-restore-mode.sh26++++++++++++++++++++++++++
M bin/forge +2 -0
A test/scenarios/identity-restore-mode.sh +26 -0