feat: advance database and Herdr pilots

This commit is contained in:
kiri committed 2026-09-06 17:37:24 +02:00
1 parent 070ae74efa
commit afe6aa9592
4 files changed
+61 -39

No files matched your search

+12 -7
View File
@@ -71,15 +71,19 @@ indefinitely.
- `yookr-workbench` decrypts once in memory and exports only its API login, four - `yookr-workbench` decrypts once in memory and exports only its API login, four
database connections, Irristaud S3 credential, and test RabbitMQ credential. database connections, Irristaud S3 credential, and test RabbitMQ credential.
- Central test API login and the read-only RabbitMQ overview passed. - Central test API login and the read-only RabbitMQ overview passed.
- MySQL test/live `SELECT 1` and MongoDB test/live `ping` passed. The MongoDB - MariaDB test/live example queries and MongoDB test/live example scripts passed.
endpoints publish SRV rather than direct address records and therefore use Both MariaDB sessions negotiated TLS 1.3. The routers expose auto-generated
`mongodb+srv` URLs. certificates from unavailable private CAs without valid host identities, so
only these two URLs disable certificate verification. The MongoDB endpoints
publish SRV rather than direct address records and therefore use `mongodb+srv`
URLs.
- The ephemeral `irristaud:` rclone remote found the sole `irristaud` container - The ephemeral `irristaud:` rclone remote found the sole `irristaud` container
and listed its six root entries. No object content was downloaded and no and listed its six root entries. No object content was downloaded and no
rclone configuration was persisted. rclone configuration was persisted.
Dadbod's four display names require activation of the pending Neovim Dadbod's four display names are active and both MongoDB connections work. The
configuration and explicit authorization of the changed workbench `.envrc`. changed workbench `.envrc` still needs explicit re-authorization before the user
visually confirms the MariaDB fix.
## Excluded from migration ## Excluded from migration
@@ -105,5 +109,6 @@ credential is still active.
the reviewed local contract and work independently. the reviewed local contract and work independently.
- Management accepts an account-issued JWT only as the raw `Authorization` value, - Management accepts an account-issued JWT only as the raw `Authorization` value,
contrary to its current OpenAPI Bearer declaration. contrary to its current OpenAPI Bearer declaration.
- Herdr issue 197 is suitable for a local planning pilot, but the current Codex - The Herdr issue 197 pilot produced local-only frontend and backend planning
session is not running inside Herdr and must not control it. commits without touching company GitHub. Both identify the separate account
service, not `yookr-dashboard`, as the implementation owner.
+33 -22
View File
@@ -50,30 +50,38 @@ restarted Kitty and closed the user's terminal session.
The approved user-key SOPS authority now contains active credentials and ten The approved user-key SOPS authority now contains active credentials and ten
provenance-preserving archive namespaces. Its workbench exports passed a test provenance-preserving archive namespaces. Its workbench exports passed a test
API login, RabbitMQ overview, MySQL test/live `SELECT 1`, MongoDB test/live API login, RabbitMQ overview, MySQL test/live `SELECT 1`, MongoDB test/live
`ping`, and read-only Irristaud object-storage listing. `ping`, and read-only Irristaud object-storage listing. Dadbod exposes all four
names and the MongoDB connections work. Both MariaDB connections now use the
native client with narrowly scoped certificate-verification exceptions; their
exact example queries passed over TLS 1.3 in both environments. Direct test
login and authenticated reads still return HTTP 200 for Yookr, rules, and
management.
- Herdr ran the issue 197 planning pilot in two predictable, non-overlapping
dashboard worktrees. Codex produced frontend commit `20f9d0f`; Claude produced
backend commit `bd965ea`. Short, long, done, fallback-agent, and genuinely
approval-blocked states behaved correctly, and dirty worktree removal was
refused. Nothing reached company GitHub. Both plans found that password reset
belongs to the separate account service rather than `yookr-dashboard`.
## Active pilot gates ## Active pilot gates
These gates do not block work on each other. These gates do not block work on each other.
- Activate the pending Neovim configuration, explicitly authorize the changed - Explicitly authorize the changed workbench `.envrc`, restart Neovim, and
workbench `.envrc`, and confirm Dadbod shows the four centralized test/live visually confirm the MariaDB examples and Kulala response chaining. Create a
connections. Create a Marimo-to-HTML report only when a concrete cross-system Marimo-to-HTML report only when a concrete cross-system investigation gives it
investigation gives it durable value. durable value.
- Keep Bruno, DBeaver, and PIM clients until their separate pilots decide them. - Keep Bruno, DBeaver, and PIM clients until their separate pilots decide them.
- Wait for a real Monday ticket before adding anything beyond native GitHub, - Route issue 197 to the actual account repositories before implementation;
Herdr, Git, and worktree workflows. Issue 197 is selected, but this Codex leave the two local dashboard planning branches available as evidence.
session is outside Herdr and cannot safely control the pilot.
The Herdr pilot passes only when short, long, and approval-blocked sessions have The remaining Herdr observations are that detach and reattach preserve output,
accurate attention state; detach and reattach preserve output; one Claude or Pi each completed event produces exactly one notification, and both worktree
fallback works; and each completed event produces exactly one notification. `.envrc` files receive explicit authorization. Short, long, approval-blocked,
Create two independently writing, non-overlapping task worktrees under fallback-agent, predictable-path, non-overlapping-write, dirty-removal, and
`~/dev/work/.worktrees/<repository>/<branch-slug>`, explicitly authorize each branch-retention behavior already passed. If a remaining component fails, fall
`.envrc`, and confirm paths are predictable, dirty removal is refused, and the back independently to native agent sessions and Codex TUI notifications or
branches remain for review. If a component fails, fall back independently to native `git worktree add/list/remove`; do not add a wrapper or Worktrunk yet.
native agent sessions and Codex TUI notifications or native
`git worktree add/list/remove`; do not add a wrapper or Worktrunk yet.
## Deferred pilots ## Deferred pilots
@@ -134,7 +142,10 @@ the fresh-shell GitHub read and restarted-Codex Context7 lookup must both work.
tools wait for observed needs. Its one API environment catalogue covers the tools wait for observed needs. Its one API environment catalogue covers the
Yookr, rules, aggregation, and management APIs; Kulala owns requests and Yookr, rules, aggregation, and management APIs; Kulala owns requests and
Dadbod receives the four named database connections from the workbench's Dadbod receives the four named database connections from the workbench's
SOPS-derived environment. SOPS-derived environment. The two MariaDB routers expose auto-generated
private-CA certificates without a valid host identity, so only those URLs
disable certificate verification while retaining TLS; restore verification
when infrastructure provides usable CA and host certificates.
- The reviewed `yookr-api/openapi.yaml` remains the usable local contract. The - The reviewed `yookr-api/openapi.yaml` remains the usable local contract. The
deployed generated document's dangling `ReadParameters` reference is accepted deployed generated document's dangling `ReadParameters` reference is accepted
for now and does not block direct API requests. for now and does not block direct API requests.
@@ -175,7 +186,7 @@ the fresh-shell GitHub read and restarted-Codex Context7 lookup must both work.
## Next step ## Next step
Activate the pending Neovim change, authorize the changed workbench `.envrc`, Activate the pending Neovim JavaScript-query mapping, authorize the changed
and confirm the four Dadbod names. Resume issue 197 from a Codex session launched workbench and pilot-worktree `.envrc` files, and confirm the two MariaDB examples
inside Herdr, then complete one real cross-system investigation and the Herdr inside Dadbod. Then confirm Herdr notifications and detach/reattach persistence,
pilot without mutating company GitHub. and run one real cross-system investigation without mutating company GitHub.
+9 -4
View File
@@ -162,14 +162,19 @@ and build configurations, then provide an activation command.
## Remaining pilots ## Remaining pilots
- Activate and visually confirm the workbench's four SOPS-derived Dadbod - Authorize the changed workbench `.envrc` and visually confirm its two MariaDB
connections. Add a Marimo report only for a real cross-system investigation. examples. The four SOPS-derived Dadbod connections, both MongoDB connections,
and all four read-only example-query runs already passed. Add a Marimo report
only for a real cross-system investigation.
- Add another ephemeral read-only rclone remote only when credentials for a new - Add another ephemeral read-only rclone remote only when credentials for a new
Leafcloud project become available. Irristaud listing has passed; do not upload. Leafcloud project become available. Irristaud listing has passed; do not upload.
- Use the reviewed local Yookr OpenAPI contract while the accepted malformed - Use the reviewed local Yookr OpenAPI contract while the accepted malformed
generated test document remains deployed. generated test document remains deployed.
- Run the complete Herdr notification, fallback-agent, and safe worktree pilot - Finish only the notification, detach/reattach, and per-worktree direnv
with a real Monday ticket. observations for the Herdr pilot. Its Codex/Claude fallback, attention states,
local branches, parallel non-overlapping plans, and dirty-removal guard passed
with issue 197; the plans show that implementation belongs outside the
dashboard repository.
- Keep Bruno, DBeaver, and existing PIM clients until their independent gates are - Keep Bruno, DBeaver, and existing PIM clients until their independent gates are
resolved. resolved.
@@ -6,36 +6,37 @@ local commands = {
"DBUIRenameBuffer", "DBUIRenameBuffer",
"DBUILastQueryInfo", "DBUILastQueryInfo",
} }
local filetypes = { "sql", "mysql", "plsql" } local sql_filetypes = { "sql", "mysql", "plsql" }
local query_filetypes = { "sql", "mysql", "plsql", "javascript" }
require("lz.n").load({ require("lz.n").load({
{ "vim-dadbod" }, { "vim-dadbod" },
{ "vim-dadbod-completion", ft = filetypes }, { "vim-dadbod-completion", ft = sql_filetypes },
{ {
"vim-dadbod-ui", "vim-dadbod-ui",
cmd = commands, cmd = commands,
ft = filetypes, ft = query_filetypes,
keys = { keys = {
{ "<leader>qo", "<cmd>DBUIToggle<cr>", desc = "Toggle database workspace" }, { "<leader>qo", "<cmd>DBUIToggle<cr>", desc = "Toggle database workspace" },
{ {
"<localleader>r", "<localleader>r",
"<Plug>(DBUI_ExecuteQuery)", "<Plug>(DBUI_ExecuteQuery)",
mode = { "n", "x" }, mode = { "n", "x" },
ft = filetypes, ft = query_filetypes,
remap = true, remap = true,
desc = "Execute database query", desc = "Execute database query",
}, },
{ {
"<localleader>s", "<localleader>s",
"<Plug>(DBUI_SaveQuery)", "<Plug>(DBUI_SaveQuery)",
ft = filetypes, ft = query_filetypes,
remap = true, remap = true,
desc = "Save database query", desc = "Save database query",
}, },
{ {
"<localleader>p", "<localleader>p",
"<Plug>(DBUI_EditBindParameters)", "<Plug>(DBUI_EditBindParameters)",
ft = filetypes, ft = query_filetypes,
remap = true, remap = true,
desc = "Edit query parameters", desc = "Edit query parameters",
}, },