Commit Graph
262 Commits
Author SHA1 Message Date
Renovate Bot 9e749cce2b chore(deps): lock file maintenance flake inputs
CI / flake (push) Skipped
renovate/stability-days Updates have not met minimum release age requirement
CI / flake (pull_request) Successful in 4m28s
2026-08-17 00:02:26 +00:00
renovate-bot 1766fb7b3f Merge pull request 'chore(deps): lock file maintenance flake inputs' (#92) from renovate/lock-file-maintenance-flake-inputs into main
CI / flake (push) Successful in 7m14s
2026-08-17 00:14:19 +01:00
Renovate Bot dba73e1199 chore(deps): lock file maintenance flake inputs
CI / flake (push) Skipped
renovate/stability-days Updates have not met minimum release age requirement
CI / flake (pull_request) Successful in 9m17s
2026-08-16 23:04:32 +00:00
renovate-bot e9835372cd Merge pull request 'chore(deps): update gitea actions to 13d8dd5' (#91) from renovate/gitea-actions into main
CI / flake (push) Successful in 3m58s
2026-08-13 16:05:40 +01:00
Renovate Bot bd613ef07f chore(deps): update gitea actions to 13d8dd5
CI / flake (push) Skipped
renovate/stability-days Updates have not met minimum release age requirement
CI / flake (pull_request) Successful in 4m13s
2026-08-13 15:01:13 +00:00
lyrathorpe c5b41ba6fd Merge pull request 'feat(claude): WSP local build memory, and structural terseness rules for the Soviet Engineer style' (#90) from feat/claude-wsp-build-memory-and-terseness into main
CI / flake (push) Successful in 4m23s
Reviewed-on: #90
2026-08-13 13:59:37 +01:00
Emma Thorpe 7041dfebfa fix(claude): make the Soviet Engineer style enforce terseness structurally
CI / flake (pull_request) Successful in 1m16s
CI / flake (push) Skipped
The style asked for terseness in tonal terms only, so a dry register wrapped in
headers, tables and a full status recap each turn passed its self-check while
being exactly the verbose output the style exists to prevent.

Add explicit limits: a default length ceiling, headers only for four or more
items, report the delta rather than the accumulated state, and state a caveat
once. Replace the self-check with one that tests length and form rather than
tone.
2026-08-13 13:23:58 +01:00
Emma Thorpe 4d6ad47837 docs(claude): record how to build and test core-services-cloud locally
The repo documents its own build and test commands, but assumes Windows and
PowerShell. This captures only the deltas that make them run on this machine:
dotnet from nixpkgs, artifactory credentials sourced per command because shell
state does not persist between tool calls, and a curl check that distinguishes
an auth failure from a code failure, since a rejected token surfaces as a
NuGet error that reads like a network fault.

Also records the two Docker Desktop leftovers that break the component test
environment, and the unleash registration a component test canary needs.
2026-08-13 13:23:58 +01:00
lyrathorpe f471d226e0 Merge pull request 'feat(work): headless Secret Service for gcx keychain tokens' (#89) from feat/gcx-secret-service into main
CI / flake (push) Successful in 3m58s
Reviewed-on: #89
2026-08-11 15:09:26 +01:00
Emma ThorpeandClaude Opus 5 10f713103c feat(work): headless Secret Service for gcx keychain tokens
CI / flake (pull_request) Successful in 3m57s
CI / flake (push) Skipped
gcx stores its OAuth access and refresh tokens in the system keychain
unconditionally -- its config file keeps only opaque `keychain:gcx:v2:...`
handles -- and exposes no plaintext fallback. With nothing owning
org.freedesktop.secrets on this headless WSL box, `gcx login` authenticates
against Grafana and then dies writing its config: "The name is not activatable".

Add services.headlessSecretService: gnome-keyring as a systemd --user service,
unlocking the login keyring at start. home-manager's own services.gnome-keyring
does not fit here on two counts -- it is WantedBy graphical-session-pre.target,
which never activates without a desktop session, and it passes no --unlock, so
writes would block on a GUI prompter that does not exist.

Only the secrets component is started. The ssh component is deliberately off: it
would claim SSH_AUTH_SOCK and displace services.ssh-agent, breaking SSH auth and
signed commits.

The unlock password defaults to a random one generated on first activation under
$XDG_DATA_HOME. The passwordFile option is the seam for supplying it from an
agenix secret instead, once that lands.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 15:03:18 +01:00
lyrathorpe cc6cb24c78 Merge pull request 'feat(work): install gcx on the work profile' (#88) from feat/gcx-work-profile into main
CI / flake (push) Successful in 3m58s
Reviewed-on: #88
2026-08-11 14:30:25 +01:00
Emma Thorpe 240facdbbb feat(work): install gcx on the work profile
CI / flake (push) Skipped
CI / flake (pull_request) Successful in 3m57s
gcx is the Grafana Cloud CLI (dashboards, datasources, SLOs, synthetic
monitoring, alerts), used against the Citrix Grafana stack.

Pull it from nixpkgs-unstable via the existing overlay rather than the pinned
channel: 26.05 ships 0.2.14, which predates the stacks/contexts configuration
model and the agento11y commands, so the current tooling and docs do not apply
to it.
2026-08-11 14:24:52 +01:00
renovate-bot c1456decaf Merge pull request 'chore(deps): lock file maintenance flake inputs' (#87) from renovate/lock-file-maintenance-flake-inputs into main
CI / flake (push) Successful in 4m22s
2026-08-10 00:07:11 +01:00
Renovate Bot e06495ae69 chore(deps): lock file maintenance flake inputs
CI / flake (pull_request) Successful in 5m7s
CI / flake (push) Skipped
renovate/stability-days Updates have not met minimum release age requirement
2026-08-09 23:01:49 +00:00
lyrathorpe 6868182ef5 Merge pull request 'feat(darwin): install mole' (#86) from feat/mole-macos into main
CI / flake (push) Successful in 4m19s
Reviewed-on: #86
2026-08-07 11:40:58 +01:00
lyrathorpe 90a57ab73b feat(darwin): install mole
CI / flake (push) Skipped
CI / flake (pull_request) Successful in 4m24s
useful to clean up caches
2026-08-07 11:35:06 +01:00
lyrathorpe 75f4e22624 Merge pull request 'feat: add darktable to all systems' (#85) from feat/darktable-install into main
CI / flake (push) Successful in 4m8s
Reviewed-on: #85
2026-08-07 11:16:17 +01:00
lyrathorpe cf96fec63e feat: add darktable to all systems
CI / flake (push) Skipped
CI / flake (pull_request) Successful in 3m54s
so i can edit photos wherever i have a gui
2026-08-07 11:11:55 +01:00
lyrathorpe 3cdf4d4e54 Merge pull request 'chore(claude): require ticket-scoped conventional commits on every commit' (#84) from chore/claude-memory-commit-conventions into main
CI / flake (push) Successful in 4m35s
Reviewed-on: #84
2026-08-06 16:57:27 +01:00
Emma Thorpe f61a206977 style(claude): apply prettier formatting to the git conventions memory
CI / flake (push) Skipped
CI / flake (pull_request) Successful in 1m6s
treefmt runs prettier over markdown in this repository and the CI
formatting check failed on the two preceding commits. Prettier prefers
underscores for emphasis and requires blank lines around fenced code
blocks.

No wording changes.
2026-08-06 16:54:16 +01:00
Emma Thorpe 1d5a5adbcc chore(claude): exempt repos without an issue tracker from the ticket scope
CI / flake (push) Skipped
CI / flake (pull_request) Failing after 1m8s
The previous commit required a ticket scope on every commit in every
repository. This repository has no Jira project, so the rule as written
would either block a commit or invite a fabricated WSP number.

Record the exception: in personal repositories the scope is the area of
the change (claude, deps, hosts) and conventional form still applies.
The ticket requirement is scoped to the Jira-backed work repositories
that enforce it in CI.
2026-08-06 15:20:53 +01:00
Emma Thorpe 4029866ed4 chore(claude): require ticket-scoped conventional commits on every commit
The git conventions memory said to match the repository's existing log
style. Several repositories (multicluster, core-services-cloud) have
histories dominated by bare "WSP-1234: summary" subjects, so matching
them produced commits that were not in conventional form. A related
failure was scope decay within a session: the first commit was correct
and later ones degraded to bare "test:" or "refactor:" subjects. Both
required commit history to be rebased by hand.

- Make "<type>(<TICKET-ID>): <summary>" mandatory on every commit and
  explicitly override repository log style. Style matching now applies
  to branch names only.
- Describe how to establish the real ticket ID (named in the request,
  extracted from the branch, or taken from existing commits on the
  branch) and require asking rather than guessing when none is
  available. Replace the literal WSP-1234 examples with <TICKET-ID> so
  the placeholder cannot be committed verbatim.
- Record scope decay across a session as a named failure mode.
- Cover merge commits, preferring rebase and requiring an explicit
  message when a merge commit is unavoidable.
- Add a pre-push verification grep that must return no output.
- Note that a clean git log does not prove a subject was correct when
  written, because rebasing replaces it; compare author and committer
  dates instead.

Update the MEMORY.md index entry to match.
2026-08-06 15:20:16 +01:00
renovate-bot 66b27517ba Merge pull request 'chore(deps): lock file maintenance flake inputs' (#83) from renovate/lock-file-maintenance-flake-inputs into main
CI / flake (push) Successful in 5m13s
2026-08-03 00:08:39 +01:00
Renovate Bot 6b43e76457 chore(deps): lock file maintenance flake inputs
CI / flake (push) Skipped
renovate/stability-days Updates have not met minimum release age requirement
CI / flake (pull_request) Successful in 5m50s
2026-08-02 23:02:21 +00:00
renovate-bot cbf2fdac42 Merge pull request 'chore(deps): lock file maintenance flake inputs' (#82) from renovate/lock-file-maintenance-flake-inputs into main
CI / flake (push) Successful in 4m2s
2026-07-27 05:05:54 +01:00
Renovate Bot 1fdd048eed chore(deps): lock file maintenance flake inputs
renovate/stability-days Updates have not met minimum release age requirement
CI / flake (push) Skipped
CI / flake (pull_request) Successful in 4m8s
2026-07-27 04:01:34 +00:00
renovate-bot 9b72a81d43 Merge pull request 'chore(deps): lock file maintenance flake inputs' (#81) from renovate/lock-file-maintenance-flake-inputs into main
CI / flake (push) Successful in 5m1s
2026-07-27 04:06:30 +01:00
Renovate Bot 2f0302d66e chore(deps): lock file maintenance flake inputs
CI / flake (push) Skipped
renovate/stability-days Updates have not met minimum release age requirement
CI / flake (pull_request) Successful in 4m36s
2026-07-27 03:01:35 +00:00
renovate-bot 256a9a9745 Merge pull request 'chore(deps): lock file maintenance flake inputs' (#80) from renovate/lock-file-maintenance-flake-inputs into main
CI / flake (push) Successful in 6m50s
2026-07-27 01:10:14 +01:00
Renovate Bot b746d58812 chore(deps): lock file maintenance flake inputs
CI / flake (pull_request) Successful in 6m46s
CI / flake (push) Skipped
renovate/stability-days Updates have not met minimum release age requirement
2026-07-27 00:02:59 +00:00
renovate-bot 67963ed0e0 Merge pull request 'chore(deps): lock file maintenance flake inputs' (#79) from renovate/lock-file-maintenance-flake-inputs into main
CI / flake (push) Successful in 6m1s
2026-07-27 00:09:18 +01:00
Renovate Bot 7bcc5feb35 chore(deps): lock file maintenance flake inputs
CI / flake (push) Skipped
renovate/stability-days Updates have not met minimum release age requirement
CI / flake (pull_request) Successful in 6m46s
2026-07-26 23:02:17 +00:00
lyrathorpe 9759cb70cf Merge pull request 'fix: skip commitizen's stale py_3_13 invalid-command test' (#78) from fix/commitizen-py313-invalid-command-test into main
CI / flake (push) Successful in 3m58s
Reviewed-on: #78
2026-07-21 11:26:21 +01:00
Emma Thorpe 4d27b29233 fix: skip commitizen's stale py_3_13 invalid-command test
CI / flake (pull_request) Successful in 4m4s
CI / flake (push) Skipped
commitizen 4.13.9 ships per-Python-minor golden files for its CLI
regression tests. The py_3_13 golden was captured against an early 3.13
whose argparse did not quote invalid choices. CPython later backported
quoting into the 3.13.x line, and nixos-26.05 now ships 3.13.14, so the
golden no longer matches argparse's output:

  -cz: error: ... invalid choice: 'x' (choose from init, commit, ...)
  +cz: error: ... invalid choice: 'x' (choose from 'init', 'commit', ...)

This fails commitizen's checkPhase and breaks the home-manager closure.
The package itself is unaffected. Deselect just that test via an overlay
until nixpkgs updates the fixture (or the 3.13.x revert lands upstream).
2026-07-21 10:53:49 +01:00
lyrathorpe dbc30b4b0e Merge pull request 'docs(memory): record WSP Jira transition field + ADF quirks' (#77) from docs/jira-tooling-transition-adf-quirks into main
CI / flake (push) Successful in 4m36s
Reviewed-on: #77
2026-07-21 10:34:56 +01:00
Emma ThorpeandClaude Opus 4.8 86ef677f2f docs(memory): record WSP Jira transition field + ADF quirks
CI / flake (push) Skipped
CI / flake (pull_request) Successful in 1m6s
Add to jira-tooling memory:
- per-issue-type transition required fields (Story Cancelled needs
  Resolution + Justification; Epic Cancelled needs neither)
- cancel/won't-do resolution IDs (Won't Fix 10068, Canceled 10070,
  Obsolete 10073)
- customfield_10070 (Justification) requires ADF, not a plain string,
  despite its textarea schema

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 10:32:14 +01:00
renovate-bot a65771ccac Merge pull request 'chore(deps): update gitea actions to 3d3c42e' (#76) from renovate/gitea-actions into main
CI / flake (push) Successful in 5m7s
2026-07-20 17:05:46 +01:00
Renovate Bot 89e55f4365 chore(deps): update gitea actions to 3d3c42e
CI / flake (pull_request) Successful in 4m24s
CI / flake (push) Skipped
renovate/stability-days Updates have not met minimum release age requirement
2026-07-20 16:01:03 +00:00
renovate-bot fee2f66385 Merge pull request 'chore(deps): lock file maintenance flake inputs' (#75) from renovate/lock-file-maintenance-flake-inputs into main
CI / flake (push) Successful in 3m49s
2026-07-20 00:05:56 +01:00
Renovate Bot 72770a4ddb chore(deps): lock file maintenance flake inputs
renovate/stability-days Updates have not met minimum release age requirement
CI / flake (pull_request) Successful in 4m8s
2026-07-19 23:01:34 +00:00
renovate-bot 6d9e4443e1 Merge pull request 'chore(deps): update gitea actions to 630ae54' (#74) from renovate/gitea-actions into main
CI / flake (push) Successful in 3m53s
2026-07-15 14:05:29 +01:00
Renovate Bot 7d504e68be chore(deps): update gitea actions to 630ae54
renovate/stability-days Updates have not met minimum release age requirement
CI / flake (pull_request) Successful in 4m11s
2026-07-15 13:01:08 +00:00
lyrathorpe 432a00fb35 Merge pull request 'fix(shell): don't exec tmux during VS Code's shell-env probe' (#73) from fix/vscode-shell-env-tmux-guard into main
CI / flake (push) Successful in 3m37s
Reviewed-on: #73
2026-07-14 16:48:15 +01:00
Emma Thorpe 2125dd7aac fix(shell): don't exec tmux during VS Code's shell-env probe
CI / flake (pull_request) Successful in 3m46s
VS Code on macOS resolves the shell environment at startup by running an
interactive login shell with stdout piped and no controlling terminal.
The order-200 auto-tmux block treated that probe as a normal interactive
shell and ran `exec tmux new-session`, which fails without a tty ("open
terminal failed: not a terminal") and exits non-zero. VS Code then reports
"Unable to resolve your shell environment: Unexpected exit code from
spawned shell (code 1)".

Gate the exec on a real terminal (-t 1) and skip it when
VSCODE_RESOLVING_ENVIRONMENT is set. Real terminals still land in tmux;
the integrated terminal was already exempt via TERM_PROGRAM.
2026-07-14 16:43:44 +01:00
lyrathorpe 0ff75654ce Merge pull request 'docs(claude/memory): capture PR-review comment-style feedback' (#72) from docs/claude-memory-pr-comment-style into main
CI / flake (push) Successful in 3m42s
Reviewed-on: #72
2026-07-14 16:42:21 +01:00
Emma Thorpe 51df3473ca docs(claude/memory): capture PR-review comment-style feedback
CI / flake (pull_request) Successful in 58s
Add two memories and correct one existing, from a review of PR comments
across multicluster and unified-helm over the past two months:

- code_comment_style: no Jira/ticket IDs in code comments by default,
  keep comments concise and about the non-obvious why, and use # (not
  Helm template) comments where they must reach the rendered manifest.
- copilot_review_false_positives: verify Copilot blocking claims against
  the spec and live config before acting; records two Terraform FPs.
- workflow_review_and_comments: drop the now-contradicted 'one-liner +
  WSP ticket reference' guidance, which reviewers repeatedly strip.
2026-07-14 16:40:22 +01:00
lyrathorpe 6ea5183f0e Merge pull request 'fix(darwin): uninstall virtualbox' (#71) from fix/remove-virtualbox into main
CI / flake (push) Successful in 3m42s
Reviewed-on: #71
2026-07-14 16:27:42 +01:00
lyrathorpe 00ad68a5be fix(darwin): uninstall virtualbox
CI / flake (pull_request) Successful in 3m36s
not used, currently broken
2026-07-14 16:23:50 +01:00
lyrathorpe bd309f38a2 Merge pull request 'fix(asahi): set hardware.asahi.enable explicitly' (#70) from fix/asahi-explicit-enable into main
CI / flake (push) Successful in 3m52s
Reviewed-on: #70
2026-07-14 16:12:24 +01:00
Emma Thorpe 50e2b68a23 fix(asahi): set hardware.asahi.enable explicitly
CI / flake (pull_request) Successful in 4m1s
Upstream will stop defaulting hardware.asahi.enable to true and currently emits an evaluation warning to that effect. Set it explicitly on the lyrathorpe-mbp (MBP-Asahi) host to silence the warning and be robust to the future default change. Verified the warning no longer appears in the host toplevel eval.
2026-07-14 16:08:15 +01:00