Ruling log: tickets¶
The rulings of each build ticket, one file per ticket (ruling log section 10, DECISIONS.md). The sections up to M1-16 are in DECISIONS-FOUNDATION.md.
- Integration int/m1-wave11
- Integration int/m1-wave12
- Integration int/m1-wave13
- Integration int/m1-wave14
- Integration int/m1-wave15
- Integration int/m1-wave17
- Integration int/m1-wave18
- Integration int/m1-wave19
- Integration int/m1-wave21
- Integration int/m1-wave22
- Integration int/m1-wave40
- Integration int/m1-wave41
- Integration int/m1-wave42
- M1-20 Idempotency keys
- M1-29 Rights changes, access.changed and invariants I1 and SR8
- M1-30 Expiry of grants and memberships
- M1-31 People, owners and own profile
- M1-32 Signing keys, JWKS and rotation
- M1-33 Devices, device keys and DPoP verification
- M1-34 Sessions, access tokens, refresh families and logout
- M1-35 Step-up with the device key
- M1-36 Identity provider port and provider management
- M1-37 First setup, enrollment codes and setup lock
- M1-38 Device approval and pairing
- M1-39 Local accounts with password and TOTP
- M1-40 Passkeys
- M1-41 OIDC login with PKCE
- M1-42 Groups from OIDC claims
- M1-43 Trusted proxy header login
- M1-44 API tokens with prefix and checksum
- M1-45 Disable a person, revoke a device, end a session
- M1-46 Instance settings, branding and discovery
- M1-47 Feature flags
- M1-48 Groups and grants over the API
- M1-49 Who has access, preview and view as
- M1-50 Audit verification, checkpoints and queries
- M1-51 Agent records, backend policy and credential holder
- M1-52 Spaces and sidebar
- M1-53 Channels and forum tags
- M1-54 Operators with invariant I1
- M1-55 Threads
- M1-56 Sending messages
- M1-57 Reading history
- M1-58 Editing, deleting and revisions
- M1-59 Reactions and pins
- M1-60 Mentions and templates
- M1-61 Read state, drafts and personal settings
- M1-62 Moving threads
- M1-63 Catch-up over REST and snapshot
- M1-64 Gateway connection and session
- M1-65 Gateway hub, delivery, catch-up and revocation
- M1-66 Gateway focus and typing
- M1-67 Gateway frame conformance (G9)
- M1-68 Server core metrics per catalogue
- M1-69 Canary test across all outputs
- M1-70 Leak tests and 404 equality
- M1-71 Contract tests G7 and G8
- M1-72 Performance gate of the server core
- M1-73 Compose smoke test
- M2-01 Worker consumers of the event log
- M2-02 Channel behaviour and agent configuration
- M2-03 Project binding and readiness
- M2-04 Trigger decision
- M2-05 Runs, state machine and trigger state
- M2-06 Invocation token with EdDSA and JWKS
- M2-07 Agent consumers over the gateway and REST
- M2-08 Delivery with I2, guard rules and a fresh token
- M2-09 Start, renewal, end and cancellation of runs, orphaned runs
- M2-10 Run document, patches and live box
- M2-11 Follow-ups with steer and queue
- M2-12 Agent sessions per thread
- M2-13 Run context with origin and trust
- M2-14 Acting-for binding (SR9)
- M2-15 Components and interactions
- M2-16 Slash commands
- M2-17 Command autocomplete
- M2-18 Auto title and placeholder detection
- M2-19 Agent replies and announcements
- M2-20 Heartbeat, presence and configured versus reported billing mode
- M2-21 Switching and guided flow (I4)
- M2-22 Costs: booking, price table and display
- M2-24 App manifest, installation and scopes
- M2-25 Commands and interactions for apps
- M2-26 Outgoing webhooks after Standard Webhooks
- M2-27 Incoming webhooks native and alertmanager
- M2-28 Cost reconciliation as its own app
- M2-29 Python SDK with hand layer and FakeServer
- M2-30 TypeScript SDK with webhook verifier
- M2-31 Conformance suite with the Fake-Agent
- M2-33 Reference adapter for Hermes Agent
- M2-34 Claude Code runner core
- M2-35 Claude Code runner: follow-ups, stop and error paths
- M2-36 Performance targets of the agent path
- M2-37 Guide "connect your own agent" with a check run
- M2-39 Host records and the target host
- M2-40 Terminal rights, fresh step-up and the guards SR10 to SR12
- M2-41 Pairing, confirmation and re-pairing of hosts
- M2-42 Host service: installation, state, doctor and pair
- M2-43 Control connection between host service and server
- M2-44 Terminal sessions, session token and relay
- M2-45 Host service: sessions, PTY and profiles
- M2-46 Terminal revocation, limits, audit and metrics
- M2-47 Terminal relay across several nodes
- M2-48 Conformance and chaos suite of the terminal
- M2-49 Reference app for code hosting (GitHub)
- M2-50 Reference app for ticket systems (Jira)
- M2-51 Run graph data and stall detection
- M3-03 Upload sessions, parts and completion
- M3-04 Scan pass with clamd
- M3-05 File download with file tickets
- M3-06 Images: removing metadata and thumbnails
- M3-07 Attachments and release of the agent invocation
- M3-08 Cleanup and deletion of files
- M3-09 Voice messages and transcript
- M3-10 Avatar and logo
- M3-11 Channel export
- M3-12 Claude Code runner: answer attachments
- M3-13 Search vectors and search_tsquery
- M3-14 Search coordinator and prefix search
- M3-15 File text extraction
- M3-16 Search load test
- M3-18 Notification preferences and quiet hours
- M3-19 Hint jobs, automatic following and bundling
- M3-20 APNs adapter with Fake-APNs
- M3-21 FCM adapter
- M3-22 Push registration and preview endpoint
- M3-23 Desktop hints over the gateway
- M3-24 Push handoff performance target
- M4-01 Dart workspace and architecture test
- M4-02 Dart API client
- M4-03 Accent variants
- M4-04 Design system with tokens, theme and fonts
- M4-05 Icons in the design system
- M4-06 Localization with ARB lint
- M4-07 Core components with goldens
- M4-08 Domain package
- M4-09 Login: DPoP, refresh and step-up
- M4-10 Device key for macOS and iOS
- M4-11 Device key for Windows
- M4-12 Local database schema v1
- M4-13 Sync engine: connection and session
- M4-14 Sync engine: catch-up and reconciliation
- M4-15 Sync engine: outbox
- M4-16 Sync engine: run documents
- M4-17 Sync engine: fake server and composition root
- M4-18 Desktop app shell
- M4-19 Sidebar column, space tree and forum post list
- M4-20 Thread view, input and message actions
- M4-21 Live box, trigger state, follow-ups, components and commands
- M4-22 Files, images and voice messages on the desktop
- M4-23 Search, quick switcher, mentions and Running now
- M4-24 Keyboard shortcuts and focus order
- M4-25 Desktop settings, own devices and sessions, step-up dialog
- M4-26 Administration: people, groups and devices
- M4-27 Administration: grant wizard, Who has access, View as person
- M4-28 Administration: agents, backend switch and tokens
- M4-29 Administration: audit view
- M4-30 Windows: notification area and local notifications
- M4-31 Client metrics and crash reports
- M4-33 Channel menu: notification level and export
- M4-34 Desktop E2E and performance against the Compose stack
- M4-35 Package terminal_ui and terminal view
- M4-36 Terminal on the desktop
- M4-37 Administration: hosts, pairing and grant terminal
- M4-39 Run graph and control room on the desktop
- M5-01 Device key for Android
- M5-02 iPhone layout and navigation
- M5-03 Android layout, navigation and notification channels
- M5-04 ClientKit and Notification Service Extension
- M5-05 Android push service without the Flutter engine
- M5-09 Emergency actions on mobile
- M5-14 Run graph and control room on iPhone and Android
- M6-01 Console session following the BFF pattern
- M6-02 Console app and serving by the server
- M6-03 Content Security Policy with a headless test
- M6-04 Administration in the console
- M6-05 Statistics in the server
- M6-06 Statistics views
- M6-07 Permission hints and expiry overview
- M6-08 Manage apps, webhooks and incoming webhooks
- M6-09 Manage instance, branding, login providers and feature flags
- M6-10 Color vision deficiency check for charts
- M6-11 bothy_viz: primitives, models, fixtures and harness
- M6-12 bothy_viz: six views
- M6-13 Stats: own measurement
- M6-14 Stats: timeline, SLO traffic light and backend view
- M6-15 Stats: live stream
stats.live - M6-16 Visualizations in the desktop app, console and mobile
- M6-18 Terminal in the console
- M7-01 Image bothy-postgres with pgBackRest
- M7-02 Backup service: schedules, manifest and metrics
- M7-03 Automatic restore test
- M7-04 Restore finalize and sync epoch
- M7-05 Retention per class
- M7-08 Maintenance mode read_only
- M7-09 Status page with automatic checks
- M7-10 Server release chain with a trial release
- M7-11 API breaking change check
- M7-14 Portability test in CI with the full stack
- M7-15 OpenTofu module generic-vm
- M7-16 OpenTofu modules hetzner, aws and azure
- M7-17 Multi-node operation (level 2)
- M7-19 API reference in the docs site
- M7-20 Alerts into the instance and to the outside
- M7-22 Audit log checkpoints in object storage
- M7-24 Token output for TypeScript
- M7-25 Grafana panel plugin "Bothy Live"
- M7-29 Setup wizard install.sh
- M8-01 Discord read client
- M8-02 CDN fetch with host allow list
- M8-03 Import interface in the server
- M8-04 Import tool: dry run, apply, report
- M8-05 Read mirror with settle rule
- M8-06 Binding of imported session references
- M8-07 Switchover and revert per channel
- M8-08 Import overview in the console
- M8-09 Carry out the migration of an existing installation
- M8-10 Login and API client of the import tool
- M8-11 Thread, message, pin and file items of the import interface
- run-visualization Run graph and control room (design of 2026-10-24)