Skip to content

Instantly share code, notes, and snippets.

View sini's full-sized avatar

Jason Bowman sini

  • San Francisco, CA, USA
View GitHub Profile
@sini
sini / matrix-homeserver-spec.md
Last active October 7, 2026 02:56
Matrix homeserver for json64.dev on the axon cluster (DRAFT spec)

Matrix homeserver for json64.dev on the axon cluster

DRAFT design spec, 2026-10-07, rev 2. Status: server_name (json64.dev) and kanidm OIDC login are ruled by the owner. The remaining choices are reversible defaults, marked [default]. Not built. Companion: matrix-xmsg bot spec.

1. Goal

A federated Matrix homeserver for the owner's own use and the @genie support bot:

@sini
sini / matrix-xmsg-spec.md
Last active October 7, 2026 02:32
matrix-xmsg — Matrix support bot backed by an expert agent session (DRAFT spec)

matrix-xmsg: a Matrix support bot backed by an expert agent session

DRAFT design spec, 2026-10-07, rev 2. Status: owner rulings on audience and ACL applied (§4, §8); remaining questions open; not built. It builds on xmsg: docs/specs/ and TODO.md.

1. Problem

We want user support and debugging in a Matrix room, answered by a dedicated "expert" AI agent session: a long-running Claude Code session primed with the product's docs and code.

@sini
sini / xmsg-spec.md
Last active October 6, 2026 22:57
xmsg v1 — HTTP bridge into running Claude Code sessions (design spec)

xmsg v1 — an HTTP bridge into running Claude Code sessions

Design spec, 2026-10-06. Status: design approved, not yet built.

1. Problem

Claude Code sessions on one machine can message each other (ListAgents / SendMessage), but only through a model tool call inside a session. Nothing lets a script, CI job, or another host list the running sessions or push a message into a specific one without spending a model turn.

@sini
sini / 686-investigation.md
Last active September 23, 2026 00:17
Override as graph position: a design for den#686 — where the competition belongs, a grammar over edge labels, and what one eval plane requires

Override as graph position: a design for den#686

denful/den#686 asks, underneath the priority table it proposes, for a module's contents to be transitively mapped to override instead of conflict -- a recursive property of the submodule and everything under it, with no per-component lib.mkForce.

The useful version of that is not a declared override list. It is that precedence falls out of where a contribution sits in the graph, with an explicit relation available for the cases where position is wrong. Most of the machinery for this already exists in gen-view, which implements the resolution

@sini
sini / PROJECT_STATUS.md
Last active August 27, 2026 20:43
gen / den — Project Status (2026-08-27): delivered surface, design of record, remaining horizon, and the documentation/diagram plan

gen / den — Project Status

Date: 2026-08-27

Who this is for. You know Nix. You do not know this project. This report tells you what exists, what is decided, and what is left.

How to read the numbers. Every figure comes from a command run against the live repositories on the date above. No figure is copied from a document. Where a claim could not be checked, the report says so.

@sini
sini / finix_class_tutorial_final.md
Last active August 28, 2026 19:28
Using a Third-Party NixOS-Style Builder (finix) with Den

Using a Third-Party NixOS-Style Builder (finix) with Den

Integrating third-party NixOS-style system builders—such as Finix—into a Den flake workspace requires understanding how Den manages module collection, builder invocation, and output attribute paths.

This tutorial provides a complete architectural guide and three practical integration patterns for wiring Finix hosts into a Den-managed fleet.

Revision note. The first version of this guide was not runnable end to end. Its finixSystem calls omitted the required lib argument, it assumed Finix declares the nixpkgs.* options Den emits, and it activated host aspects through a key Den ignores. Every code block below has now been evaluated against den c7ef3f1 and finix 78fd549; §6 builds a real finix-system.drv. The three corrections are called out inline as Correction 1/2/3.


@sini
sini / opkssh_storage_layout_spec.md
Last active August 21, 2026 00:01
opkssh storage layout — predicate PR spec (rev 2, post-adversarial-review): XDG config paths + non-clobbering multi-identity key files

opkssh Storage Layout — Predicate PR Specification (rev 2)

Predicate for the refresh-daemon work (deliverable 0 in refresh_daemon_plan.md): XDG config-path support and non-clobbering key-file naming. Rev 2 folds in the adversarial review (verdict SOUND-WITH-FIXES) and the owner's I7 ruling.

Requirements

  1. Existing ~/.opk/ configurations continue to work untouched. Any behavior change anywhere must be explicitly identified, never silent.
@sini
sini / refresh_daemon_plan.md
Created August 20, 2026 21:48
OPKSSH Token Refresh Daemon — delivery plan and decision log (companion to the design spec)

Refresh Daemon — Delivery Plan

Companion to refresh_daemon_spec.md (the ratified design, 2026-08-20). All design forks from the earlier draft of this file are resolved; the decision log below records the rulings. Branch: feat/refresh-daemon, stacked on feat/agent-lifetime (PR 1 = openpubkey/opkssh#611).

Sequenced deliverables

0. Predicate PR — storage layout (own design discussion; not yet designed)

@sini
sini / refresh_daemon_spec.md
Created August 20, 2026 21:48
OPKSSH Token Refresh Daemon — design specification (rev 2, post-adversarial-review; supersedes the draft discussed in openpubkey/opkssh#606)

OPKSSH Token Refresh Daemon — Design Specification

Successor to the draft reviewed in openpubkey/opkssh#606 (gist version). This revision is the ratified design; §2 lists every material change from that draft with rationale.

1. Overview

opkssh daemon is a standalone, user-started background process that owns OIDC authentication and token refresh end-to-end. When it is running, every opkssh login delegates to it: the daemon runs the OIDC flow, holds all secrets,

@sini
sini / refresh_daemon_spec.md
Created August 18, 2026 18:40
OPKSSH Refresh Daemon & ssh-agent Sync Specification (PR 2)

Technical Specification: OPKSSH Token Refresh Daemon & ssh-agent Sync

Overview

This specification outlines the architecture for PR 2, building upon the configurable ssh-agent lifetime support introduced in PR 1.

The goal of PR 2 is to transform opkssh login --auto-refresh from a simple foreground sleep loop into a resilient, background-capable Token Refresh Daemon. The daemon automatically maintains active OIDC PK Tokens and keeps loaded certificates in ssh-agent synchronized without interrupting SSH connections.