Lots of memory changes mostly
This commit is contained in:
1 parent
29192320cd
commit
b450004d08
12 files changed
No files matched your search
@@ -0,0 +1,8 @@
|
||||
- [Runway v2 build plan](runway-v2-build-plan.md) — the milestone plan lives outside the repo; nothing is ported from v1.
|
||||
- [Runway commit style](runway-commit-style.md) — no AI attribution in commits, ever.
|
||||
- [Connor's timezone](connor-timezone.md) — US Eastern now, Denver historically; never hardcode a display zone.
|
||||
- [No Runway screenshots](runway-send-screenshots.md) — he runs it himself; report what the browser checks found in words.
|
||||
- [Connor's Baikal server](connor-baikal-server.md) — real CalDAV server, credentials, and the privacy caveat on its data.
|
||||
- [Milestone summaries](runway-milestone-summaries.md) — stop and summarise at the end of each Runway milestone.
|
||||
- [Connor's homelab deploy](connor-homelab-deploy.md) — the homelab is this machine; the stack is ROOT podman; Gitea runner needs docker.service.
|
||||
- [Verify before claiming](verify-before-claiming.md) — read whole outputs and exit codes, not tails.
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
name: connor-baikal-server
|
||||
description: "Connor's real Baikal CalDAV server and where its credentials live."
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: reference
|
||||
originSessionId: fa6a79f9-6d6e-4b4d-b1e7-f244f68e3d63
|
||||
modified: 2026-08-26T17:49:40.541Z
|
||||
---
|
||||
|
||||
Baikal (SabreDAV) at `https://baikal.rcjohnstone.com/dav.php/`, principal
|
||||
`/dav.php/principals/connor/`, calendar home `/dav.php/calendars/connor/`.
|
||||
Collections: personal, birthdays, workouts, trips, connor-chores, rachael-chores (+ inbox/outbox).
|
||||
|
||||
Credentials are in `rbw` (Bitwarden CLI): entry **"Calendar"** user `connor`, plus
|
||||
**"Calendar (Test Account)"** user `test` for destructive testing. `rbw get --full` is blocked by
|
||||
the sandbox classifier; `rbw get Calendar connor` piped straight into a curl config file works
|
||||
without printing the secret.
|
||||
|
||||
Connor authorised talking to this server directly. Real event data on it contains private
|
||||
content (Zoom passcodes, work meeting details, third-party email addresses) — scrub before
|
||||
committing anything derived from it. See [[runway-v2-build-plan]].
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
name: connor-homelab-deploy
|
||||
description: "Connor's homelab is this machine; its deployment config is ~/compose.yml and ~/Caddyfile, and the Gitea runner lives here too."
|
||||
metadata:
|
||||
type: reference
|
||||
---
|
||||
|
||||
The homelab **is** the dev machine (`mainframe`). `~/compose.yml` (~1,000 lines,
|
||||
~20 services) and `~/Caddyfile` are the live deployment, and `~` is itself a git
|
||||
repo. Secrets are `~/.env` with `SERVICE_THING` names, read as `${VAR}` in
|
||||
compose. `server.rcjohnstone.com` resolves here.
|
||||
|
||||
Gitea is `git.rcjohnstone.com`; SSH remotes are on **port 2222**
|
||||
(`ssh://connor@git.rcjohnstone.com:2222/connor/<repo>.git`). CI vars are
|
||||
`REGISTRY`/`USERNAME` with secret `DOCKER_PASSWORD`.
|
||||
|
||||
The Actions runner is `act_runner.service` — a **system** unit running as user
|
||||
`act_runner`, config `/etc/act_runner/act_runner.yaml`, state in
|
||||
`/var/lib/act_runner`. Ignore `~/.runner`; it is a stale registration of
|
||||
Connor's own. Labels are `ubuntu-latest`, `ubuntu-22.04`, `ubuntu-20.04`, each
|
||||
mapping to a `gitea/runner-images` container — the label says nothing about the
|
||||
host, which is Arch.
|
||||
|
||||
**It needs `docker.service` running.** The runner is configured for Docker, not
|
||||
podman, and dies on "Docker Engine socket not found" without it. It had
|
||||
crash-looped 59,927 times before 2026-08-28 because docker was inactive *and
|
||||
disabled* — so it does not survive a reboot unless enabled. Connor starts it by
|
||||
hand; that is how he has always done it.
|
||||
|
||||
**The stack runs in ROOT podman, not rootless.** Every service container
|
||||
(`connor_caddy_1`, `connor_authelia_1`, `connor_gitea_1`, ~40 of them) is
|
||||
`sudo podman`, project name `connor`, on the `connor_internal` network. Connor's
|
||||
own rootless podman holds only scratch containers. This matters because it is
|
||||
invisible from inside a script: anything that picks a runtime with
|
||||
`command -v podman` and runs as Connor will start a healthy container in the
|
||||
rootless namespace that Caddy cannot route to, then report success. Deploy units
|
||||
for this machine must be **system** units. A container started from a `oneshot`
|
||||
unit also needs `KillMode=process`, or systemd tears down the container with the
|
||||
unit's cgroup the moment `ExecStart` returns.
|
||||
|
||||
Caddy bind-mounts host directories, so a deploy that swaps a directory by
|
||||
renaming it is invisible until Caddy restarts — the mount holds the inode.
|
||||
Mount the parent of the directory being replaced.
|
||||
|
||||
Runway's own arrangement is in `~/docs/projects/runway/deploy/README.md`.
|
||||
See [[runway-v2-build-plan]] and [[verify-before-claiming]].
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: connor-timezone
|
||||
description: "Connor is in US Eastern time (America/Louisville), having previously lived in Denver."
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: user
|
||||
originSessionId: fa6a79f9-6d6e-4b4d-b1e7-f244f68e3d63
|
||||
modified: 2026-08-26T19:36:55.968Z
|
||||
---
|
||||
|
||||
Connor's current zone is **America/Louisville** (US Eastern). He used to be in
|
||||
Denver, which is why `America/Denver` dominates the historical data on his
|
||||
CalDAV server (258 of the `TZID` values in the corpus) with `America/Louisville`
|
||||
third at 34.
|
||||
|
||||
**Why it matters:** never hardcode a display zone. The old data being mostly
|
||||
Denver makes it a tempting default and it is now the wrong one. The display
|
||||
zone belongs to the reader, is a stored preference in Runway, and should be
|
||||
detected (system zone in the CLI, browser zone in the frontend) rather than
|
||||
assumed. Corrected once already after `runway-cli` shipped with a Denver
|
||||
default.
|
||||
|
||||
See [[runway-v2-build-plan]] and [[connor-baikal-server]].
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
name: runway-commit-style
|
||||
description: "Runway commits must carry no AI attribution — no Co-Authored-By, no session trailers."
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: feedback
|
||||
originSessionId: fa6a79f9-6d6e-4b4d-b1e7-f244f68e3d63
|
||||
modified: 2026-08-26T17:49:34.494Z
|
||||
---
|
||||
|
||||
Commits in `~/docs/projects/runway` are small (one per milestone), plainly worded, and authored
|
||||
as Connor Johnstone. **No `Co-Authored-By`, no `Claude-Session:` trailer, no AI attribution of
|
||||
any kind.**
|
||||
|
||||
**Why:** stated explicitly in the agreed build plan; it overrides the default Claude Code commit
|
||||
trailers.
|
||||
|
||||
**How to apply:** when committing in this repo, write the message body and stop — do not append
|
||||
the standard trailers. See [[runway-v2-build-plan]].
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: runway-milestone-summaries
|
||||
description: Stop at the end of each Runway milestone and summarise what was done before moving on.
|
||||
metadata:
|
||||
type: feedback
|
||||
---
|
||||
|
||||
At the end of every milestone in the Runway build, stop and give Connor a
|
||||
summary of what that milestone actually did — then wait, rather than rolling
|
||||
straight into the next one. He asked for this on 2026-08-27 after M15 went by
|
||||
with only a commit line.
|
||||
|
||||
**Why:** he approves milestone by milestone. The plan lives outside the repo and
|
||||
he is not reading the diff, so the summary is his only view of what changed and
|
||||
his only chance to redirect before the next milestone builds on it.
|
||||
|
||||
**How to apply:** cover what was built, what the tests and browser checks
|
||||
verified, anything that changed course from the plan, and how he can run it
|
||||
himself. Words, not screenshots — see [[runway-send-screenshots]]. Then stop.
|
||||
See [[runway-v2-build-plan]].
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: runway-send-screenshots
|
||||
description: Connor does not need Runway UI screenshots sent in-conversation; he runs it himself.
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: feedback
|
||||
originSessionId: fa6a79f9-6d6e-4b4d-b1e7-f244f68e3d63
|
||||
modified: 2026-08-27T00:52:30.624Z
|
||||
---
|
||||
|
||||
Do **not** routinely send UI screenshots for `~/docs/projects/runway`. Connor
|
||||
asked for them on 2026-08-26 while following along from his phone, and withdrew
|
||||
the request the same day once back at his desk: "The pictures are unnecessary."
|
||||
|
||||
**Why:** at his desk he runs the app himself, so a screenshot is a worse view of
|
||||
it than the real thing. Screenshots are still worth *taking* — `e2e/shoot.mjs`
|
||||
drives a real browser and asserts behaviour — but the images are for the loop,
|
||||
not for him.
|
||||
|
||||
**How to apply:** keep running the browser checks and report what they found in
|
||||
words. Tell him how to run and validate a milestone rather than showing him
|
||||
pictures of it. Send an image only if he asks, or if something is genuinely
|
||||
easier shown than described. See [[runway-v2-build-plan]].
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
name: runway-v2-build-plan
|
||||
description: Runway v2 is a from-scratch rewrite driven by a saved milestone plan (M1-M28) outside the repo.
|
||||
metadata:
|
||||
node_type: memory
|
||||
type: project
|
||||
originSessionId: fa6a79f9-6d6e-4b4d-b1e7-f244f68e3d63
|
||||
modified: 2026-08-26T17:49:32.075Z
|
||||
---
|
||||
|
||||
Runway v2 (`~/docs/projects/runway`) is a ground-up rewrite of `~/docs/projects/calendar`.
|
||||
The build plan lives OUTSIDE the repo at `~/.claude/plans/ok-i-ve-filled-it-optimized-meerkat.md`
|
||||
— milestones M1–M28 across 6 phases, one commit per milestone. `docs/legacy-audit.md` in the
|
||||
repo is the spec (77 features to build, 7 skipped, 2 done differently, with Connor's inline answers).
|
||||
|
||||
Core rule: **no code is ported from v1.** v1 is read only as a record of what went wrong.
|
||||
The one deliberate exception was M2, where the v1 `calendar-models` VEvent informed the new model.
|
||||
|
||||
See [[runway-commit-style]] and [[connor-baikal-server]].
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
name: verify-before-claiming
|
||||
description: "Read a tool's whole output before calling it clean; tail and grep have both produced false all-clears here."
|
||||
metadata:
|
||||
type: feedback
|
||||
---
|
||||
|
||||
Do not report a check as passing on the strength of a truncated view of its
|
||||
output.
|
||||
|
||||
**Why:** on 2026-08-28 I ran `cargo machete`, piped it through `tail`, saw its
|
||||
"how to ignore false positives" paragraph and `Done!`, and told Connor it was
|
||||
clean. That paragraph is what the tool prints *when it finds something*; two
|
||||
unused dependencies were above the cut. CI then failed on exactly the check I
|
||||
had claimed to make. The same day, a `grep` for `println!` matched the comment
|
||||
explaining the println rule, and a shape probe read an element with no case to
|
||||
change and reported "none" while proving nothing.
|
||||
|
||||
**How to apply:** capture the exit code, not just the text. Read the head of a
|
||||
finding-style tool's output, not the tail. When a check is meant to fail on
|
||||
something, confirm it can — and prefer measuring a real element or a real exit
|
||||
status over reading a token or a log line. See [[runway-milestone-summaries]].
|
||||
Reference in new issue
Block a user