docs: consolidate remaining workflow gates
This commit is contained in:
1 parent
ee64a7b14f
commit
cba3fdebb0
1 file changed
+114
-24
+114
-24
@@ -19,20 +19,29 @@ Manager activation package. It restarted the Kitty service and closed the
|
|||||||
user's terminal session. Do not repeat this, including for changes described as
|
user's terminal session. Do not repeat this, including for changes described as
|
||||||
user-level, harmless, temporary, or needed only for live verification.
|
user-level, harmless, temporary, or needed only for live verification.
|
||||||
|
|
||||||
|
## Execution discipline
|
||||||
|
|
||||||
|
Advance every safe independent lane before asking the user to act. Batch
|
||||||
|
declarative changes behind one user-controlled activation and consolidate
|
||||||
|
empirical, credential, hardware, and approval gates into one checklist only
|
||||||
|
after no autonomous work remains. A single pilot reaching its user gate does
|
||||||
|
not make it the global next step while another pilot can still progress.
|
||||||
|
|
||||||
## Current checkpoint
|
## Current checkpoint
|
||||||
|
|
||||||
- Tranche: desktop, agents, and notes
|
- Tranche: autonomous consolidation across repositories, tools, and pilots
|
||||||
- State: Walker and notes verified; ready for the first bounded Herdr pilot
|
- State: autonomous implementation exhausted; consolidated gates await the user
|
||||||
- Branch: `chore/workflow-system`
|
- Branch: `chore/workflow-system`
|
||||||
- Baseline: `nix flake check --no-build --quiet` and a no-link Zenith system
|
- Baseline: `nix flake check --no-build --quiet` and a no-link Zenith system
|
||||||
build passed on 2026-09-05 with the project-root launcher change and restart
|
build passed on 2026-09-05 after the consolidated workstation retirement and
|
||||||
trigger removal; only the expected dirty-tree and unknown `modules` warnings
|
`rclone` preparation; only the expected dirty-tree and unknown `modules`
|
||||||
were emitted. The generated project menu finds 30 live repositories without
|
warnings were emitted. The generated project menu finds 30 live repositories
|
||||||
`.archive` or `.worktrees` entries, and the generated daily-note configuration
|
without `.archive` or `.worktrees` entries, and the generated daily-note
|
||||||
passes an isolated same-day idempotence test. The managed Actual and WhatsApp
|
configuration passes an isolated same-day idempotence test. The managed Actual
|
||||||
entries are active in the current user session, Evolution's source registry
|
and WhatsApp entries are active in the current user session, Evolution's
|
||||||
activates over D-Bus, and the VPN reconnects successfully. The user activated the
|
source registry activates over D-Bus, and the VPN reconnects successfully.
|
||||||
terminal root fix: `xdg-terminal-exec` now selects Kitty correctly and Yazi
|
The user activated the terminal root fix: `xdg-terminal-exec` now selects
|
||||||
|
Kitty correctly and Yazi
|
||||||
launches from Walker. After restarting the stale Elephant and Walker
|
launches from Walker. After restarting the stale Elephant and Walker
|
||||||
processes, repository launch also succeeds and exiting Neovim leaves a shell
|
processes, repository launch also succeeds and exiting Neovim leaves a shell
|
||||||
in the repository. The daily-note launcher and migrated notebook contents
|
in the repository. The daily-note launcher and migrated notebook contents
|
||||||
@@ -40,9 +49,14 @@ user-level, harmless, temporary, or needed only for live verification.
|
|||||||
stopped its dependent Walker during activation without bringing Walker back,
|
stopped its dependent Walker during activation without bringing Walker back,
|
||||||
so it has been removed in favor of applying rare menu changes at login. After
|
so it has been removed in favor of applying rare menu changes at login. After
|
||||||
activating that removal and relogging, Walker opens normally and repository
|
activating that removal and relogging, Walker opens normally and repository
|
||||||
selection starts Neovim in Oil at the project root.
|
selection starts Neovim in Oil at the project root. Four fresh local clones
|
||||||
- Next: use Herdr for one read-only fresh-session resume check, including agent
|
pass their flake checks, expose their tracked command catalogs, and remain
|
||||||
state detection and detach/reattach, before adding any Herdr configuration.
|
clean after shell entry. The dashboard contract additionally passes its full
|
||||||
|
check and a bounded two-process development smoke test. The dashboard and
|
||||||
|
traceability PostgreSQL stacks also ran concurrently while both repositories'
|
||||||
|
checks passed; all test processes and containers were then stopped.
|
||||||
|
- Next: present one consolidated user batch covering the built activation and
|
||||||
|
the independent empirical, credential, hardware, and approval gates below.
|
||||||
|
|
||||||
## Progress
|
## Progress
|
||||||
|
|
||||||
@@ -50,13 +64,13 @@ user-level, harmless, temporary, or needed only for live verification.
|
|||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| Bootstrap and repository ownership | Waiting for user | Repository and dashboard reconciliation complete; credential cleanup remains |
|
| Bootstrap and repository ownership | Waiting for user | Repository and dashboard reconciliation complete; credential cleanup remains |
|
||||||
| Declarative workstation foundation | Complete | All-host builds pass with one Nixpkgs pin, `just`, and an explicit Podman Compose provider |
|
| Declarative workstation foundation | Complete | All-host builds pass with one Nixpkgs pin, `just`, and an explicit Podman Compose provider |
|
||||||
| Repository contracts and workbench | Waiting externally | Three contracts and read-only Kubernetes pass; API deployment/access evidence is externally blocked, while database/report scaffolding is deferred until a real investigation |
|
| Repository contracts and workbench | Waiting externally | Four clean-checkout contracts and read-only Kubernetes pass; data-science overlaps uncommitted work, while API, database, report, and secret inputs remain externally gated |
|
||||||
| Desktop navigation and interaction | Active | Walker project and terminal actions plus stable Actual/WhatsApp launchers work; Outlook and two-output checks remain |
|
| Desktop navigation and interaction | Active | Walker project and terminal actions plus stable Actual/WhatsApp launchers work; Outlook and two-output checks remain |
|
||||||
| Agent workflow | Active | The `nixos-maintainer` skill validates and builds; Herdr 0.8.2 is installed with only native state and awaits its first bounded live check |
|
| Agent workflow | Waiting for user | The `nixos-maintainer` skill validates and matches its live owner; external policy blocks nested Codex evaluation without approval, and Herdr awaits its first live check |
|
||||||
| Notes | Complete | The daily launcher and migrated notebook pass live checks; the approved rollback copy is recoverable from Trash |
|
| Notes | Complete | The daily launcher and migrated notebook pass live checks; the approved rollback copy is recoverable from Trash |
|
||||||
| PIM | Active | Native NixOS Evolution 3.60.2 plus Microsoft 365 integration is live beside Thunderbird; account and daily-use gates await credentials |
|
| PIM | Active | Native NixOS Evolution 3.60.2 plus Microsoft 365 integration is live beside Thunderbird; account and daily-use gates await credentials |
|
||||||
| Transcription | Pending | Requires a real Fossify recording-transfer pilot before implementation moves from Zenith to Orion |
|
| Transcription | Pending | Requires a real Fossify recording-transfer pilot before implementation moves from Zenith to Orion |
|
||||||
| Conditional retirement and completion | Active | OpenVPN 3, Zed, Helix, Foot, global Node.js, and global Bun are removed declaratively; other removals remain gated separately |
|
| Conditional retirement and completion | Active | Superseded HTTP/database/note tools are removed with earlier retirements; Bruno, DBeaver, image editors, and PIM clients remain behind separate gates |
|
||||||
|
|
||||||
## Repository checkpoints
|
## Repository checkpoints
|
||||||
|
|
||||||
@@ -72,10 +86,14 @@ user-level, harmless, temporary, or needed only for live verification.
|
|||||||
| NixOS configuration | `chore/workflow-system` | `c2f48df` | Restore terminal-backed Walker actions |
|
| NixOS configuration | `chore/workflow-system` | `c2f48df` | Restore terminal-backed Walker actions |
|
||||||
| NixOS configuration | `chore/workflow-system` | `6631889` | Open Walker projects at their repository root |
|
| NixOS configuration | `chore/workflow-system` | `6631889` | Open Walker projects at their repository root |
|
||||||
| NixOS configuration | `chore/workflow-system` | `ca65328` | Remove the unsafe Elephant restart trigger |
|
| NixOS configuration | `chore/workflow-system` | `ca65328` | Remove the unsafe Elephant restart trigger |
|
||||||
|
| NixOS configuration | `chore/workflow-system` | `d085512` | Advance from Walker to the agent pilot |
|
||||||
|
| NixOS configuration | `chore/workflow-system` | `ee64a7b` | Retire superseded tools and prepare the S3 pilot |
|
||||||
| `yookr-dashboard-new` | `feat/gogv2` | `934605d` | Remove obsolete dashboard converter |
|
| `yookr-dashboard-new` | `feat/gogv2` | `934605d` | Remove obsolete dashboard converter |
|
||||||
|
| `yookr-dashboard-new` | `feat/gogv2` | `8e6e4bc` | Establish its project contract and native lifecycle |
|
||||||
| `rules-service` | `chore/workflow-contract` | `555d9cd` | Establish the first common repository contract |
|
| `rules-service` | `chore/workflow-contract` | `555d9cd` | Establish the first common repository contract |
|
||||||
| `yookr-api` | `chore/workflow-contract` | `a76b2b7` | Establish the HTTP and OpenAPI contract |
|
| `yookr-api` | `chore/workflow-contract` | `a76b2b7` | Establish the HTTP and OpenAPI contract |
|
||||||
| `traceability-data-model` | `chore/workflow-contract` | `33cb7ff` | Establish the database and schema contract |
|
| `traceability-data-model` | `chore/workflow-contract` | `33cb7ff` | Establish the database and schema contract |
|
||||||
|
| `traceability-data-model` | `chore/workflow-contract` | `774e710` | Remove Mathesar and simplify the local stack to PostgreSQL |
|
||||||
| `yookr-workbench` | `main` | `badc61c` | Create the workbench and isolate its Garden session |
|
| `yookr-workbench` | `main` | `badc61c` | Create the workbench and isolate its Garden session |
|
||||||
|
|
||||||
## Deferred or externally blocked actions
|
## Deferred or externally blocked actions
|
||||||
@@ -83,6 +101,9 @@ user-level, harmless, temporary, or needed only for live verification.
|
|||||||
None of these block work on independent pilots. Surface the exact applicable
|
None of these block work on independent pilots. Surface the exact applicable
|
||||||
step to the user only when it blocks the current task.
|
step to the user only when it blocks the current task.
|
||||||
|
|
||||||
|
- Activate the consolidated Zenith build with `cd ~/.config/nixos && nh os
|
||||||
|
switch`. This removes the retired tools and installs `rclone`; only the user
|
||||||
|
may run it.
|
||||||
- In a separate terminal, enter this repository and run `herdr`, start `codex`,
|
- In a separate terminal, enter this repository and run `herdr`, start `codex`,
|
||||||
and ask it to read `docs/plans/workflow-system.md` without editing and report
|
and ask it to read `docs/plans/workflow-system.md` without editing and report
|
||||||
the exact next implementation step. Confirm Herdr shows the agent's working
|
the exact next implementation step. Confirm Herdr shows the agent's working
|
||||||
@@ -105,7 +126,19 @@ step to the user only when it blocks the current task.
|
|||||||
and VTODO. Complete tenant consent/sign-in when prompted, then tell the agent
|
and VTODO. Complete tenant consent/sign-in when prompted, then tell the agent
|
||||||
which accounts connected; the full mail/calendar/contact/task gate remains
|
which accounts connected; the full mail/calendar/contact/task gate remains
|
||||||
a daily-use pilot rather than a one-time setup claim.
|
a daily-use pilot rather than a one-time setup claim.
|
||||||
|
- On Android, complete the DAVx5/Radicale and Tasks.org pilots described in the
|
||||||
|
discovery plan, including correct default accounts, recurrence, reminders,
|
||||||
|
and Microsoft To Do within its documented limits.
|
||||||
|
- Make one Fossify recording on the Pixel and let Syncthing transfer it. Do not
|
||||||
|
rename or move it manually; the agent must first observe the real write and
|
||||||
|
settlement behavior before implementing Orion automation.
|
||||||
|
- Reauthenticate the GitHub CLI with `gh auth login -h github.com`; its current
|
||||||
|
`kirigar` token is invalid. The agent can then complete the read-only PR and
|
||||||
|
isolated review-worktree gate without more direction.
|
||||||
|
- Explicitly authorize the five ephemeral, read-only `codex exec` skill-scope
|
||||||
|
checks if sending this private repository to another authenticated Codex
|
||||||
|
session is acceptable. External policy correctly rejected them without that
|
||||||
|
approval; static skill validation already passes.
|
||||||
- Rotate the exposed Context7 key and provide `CONTEXT7_API_KEY` through a
|
- Rotate the exposed Context7 key and provide `CONTEXT7_API_KEY` through a
|
||||||
mode-0600 machine-local environment file on each workstation before removing
|
mode-0600 machine-local environment file on each workstation before removing
|
||||||
the static user-config header.
|
the static user-config header.
|
||||||
@@ -114,18 +147,26 @@ step to the user only when it blocks the current task.
|
|||||||
- Move the ignored `rules-service/.env` to
|
- Move the ignored `rules-service/.env` to
|
||||||
`~/.config/yookr/rules-service.env` with mode 0600; its contents have not been
|
`~/.config/yookr/rules-service.env` with mode 0600; its contents have not been
|
||||||
inspected or copied.
|
inspected or copied.
|
||||||
|
- Move the ignored `yookr-dashboard-new/.env` to its approved machine-local
|
||||||
|
mode-0600 owner, then update `.envrc`; the non-secret repository contract is
|
||||||
|
already complete.
|
||||||
|
- Commit or otherwise hand off the extensive dirty `yookr-data-science` work
|
||||||
|
before its flake, live-fetch defaults, local credentials, and missing project
|
||||||
|
contract are changed. Those files overlap the active work directly.
|
||||||
|
- Explicitly approve moving the stale `~/.config/codex` tree to Trash if its old
|
||||||
|
authentication, conversations, databases, and plugins are no longer needed.
|
||||||
|
- Explicitly approve removing the orphaned Podman volume
|
||||||
|
`traceability-data-model_mathesar-secrets` and the old `mathesar_django`
|
||||||
|
database if no Mathesar rollback is wanted. They are disconnected from the
|
||||||
|
repository but preserved because deletion would be irreversible.
|
||||||
|
- Supply one real Yookr S3 task plus a least-privileged remote and authorize one
|
||||||
|
bounded upload. `rclone` is prepared, but no remote or wrapper is guessed.
|
||||||
- Restore access to the locked `yookrdev/constant-store` commit or replace that
|
- Restore access to the locked `yookrdev/constant-store` commit or replace that
|
||||||
retired dependency deliberately, then rerun `just check` in `yookr-api`.
|
retired dependency deliberately, then rerun `just check` in `yookr-api`.
|
||||||
- Deploy a GET image that exposes `/full-api-docs/openapi.json`, then rerun
|
- Deploy a GET image that exposes `/full-api-docs/openapi.json`, then rerun
|
||||||
`just openapi-refresh test`; the current test deployment returns 404.
|
`just openapi-refresh test`; the current test deployment returns 404.
|
||||||
- Populate the ignored API HTTP credentials and perform the planned login plus
|
- Populate the ignored API HTTP credentials and perform the planned login plus
|
||||||
harmless administrator read; no credential-bearing request has been made.
|
harmless administrator read; no credential-bearing request has been made.
|
||||||
- The next Zenith switch also activates the follow-up Garden shell fix. The
|
|
||||||
Nix-owned `gardenctl`, `gardenlogin`, and `kubectl-gardenlogin` are verified
|
|
||||||
under `~/.nix-profile/bin`; afterward remove the duplicate mutable binaries
|
|
||||||
`~/.garden/gardenctl` and `~/.local/bin/{gardenctl,gardenlogin,kubectl-gardenlogin}`.
|
|
||||||
- Destructive cleanup, credentials, activation, and empirical pilot decisions
|
|
||||||
will be surfaced here before use.
|
|
||||||
|
|
||||||
## Deferred Polaris replication
|
## Deferred Polaris replication
|
||||||
|
|
||||||
@@ -159,7 +200,7 @@ Polaris:
|
|||||||
commit remain. The registered sensor worktree is valid at its new path.
|
commit remain. The registered sensor worktree is valid at its new path.
|
||||||
- Shared Codex defaults and MCP endpoints are generated at
|
- Shared Codex defaults and MCP endpoints are generated at
|
||||||
`/etc/codex/config.toml`; Context7 reads its header from the environment. The
|
`/etc/codex/config.toml`; Context7 reads its header from the environment. The
|
||||||
unused generic `~/.config/mcp/mcp.json` owner is removed on next activation.
|
unused generic `~/.config/mcp/mcp.json` is absent.
|
||||||
- Removed redundant legacy-path trust entries from the current Codex config;
|
- Removed redundant legacy-path trust entries from the current Codex config;
|
||||||
the existing trusted home scope covers the moved repositories.
|
the existing trusted home scope covers the moved repositories.
|
||||||
- Bruno's transitional OpenAPI reference now follows the archived management
|
- Bruno's transitional OpenAPI reference now follows the archived management
|
||||||
@@ -172,6 +213,10 @@ Polaris:
|
|||||||
package-set pin. Added `just` to the workstation tools and selected the
|
package-set pin. Added `just` to the workstation tools and selected the
|
||||||
store-backed `podman-compose` provider through native `containers.conf`.
|
store-backed `podman-compose` provider through native `containers.conf`.
|
||||||
- The resulting flake check and no-link builds for all three hosts pass.
|
- The resulting flake check and no-link builds for all three hosts pass.
|
||||||
|
- The verified-empty legacy directories `~/work/.data/mongodb`, `~/work/.data`,
|
||||||
|
and `~/work/repos` are removed. The stale `~/.config/codex` tree is preserved
|
||||||
|
because it contains old authentication and conversation state; moving that
|
||||||
|
recoverably requires explicit user approval.
|
||||||
- `rules-service` now has a non-mutating direnv shell, minimal Nix toolchain and
|
- `rules-service` now has a non-mutating direnv shell, minimal Nix toolchain and
|
||||||
formatting check, native Cargo recipes, factual repository instructions,
|
formatting check, native Cargo recipes, factual repository instructions,
|
||||||
one `.http` request collection, explicit test/live deployment paths, and a
|
one `.http` request collection, explicit test/live deployment paths, and a
|
||||||
@@ -193,6 +238,28 @@ Polaris:
|
|||||||
`just dev` retains its Compose volumes, and the flake check loads fixtures in
|
`just dev` retains its Compose volumes, and the flake check loads fixtures in
|
||||||
text-ID mode plus a fresh schema in UUID-ID mode. Both the built check and the
|
text-ID mode plus a fresh schema in UUID-ID mode. Both the built check and the
|
||||||
pinned `podman-compose` configuration validation pass.
|
pinned `podman-compose` configuration validation pass.
|
||||||
|
- Mathesar is removed from `traceability-data-model`; the development stack now
|
||||||
|
owns only PostgreSQL plus the explicit schema-reset job. The existing named
|
||||||
|
volume and its historical local role are preserved to avoid stranding data.
|
||||||
|
`just reset`, `just dev`, the PostGIS fixture query, Compose validation, and
|
||||||
|
the flake check pass after the simplification.
|
||||||
|
- `yookr-dashboard-new` now has the same minimal project contract: a
|
||||||
|
non-mutating flake shell, `just dev` over its existing Process Compose graph,
|
||||||
|
`just check`, factual `AGENTS.md` and README guidance, a flake formatter and
|
||||||
|
formatting check, and a complete public environment example. Its full type,
|
||||||
|
lint, and format checks pass; a bounded smoke test reached ready MongoDB and
|
||||||
|
Vite processes and stopped cleanly. The commit contains only contract files;
|
||||||
|
the user's existing dashboard source work remains unstaged and untouched.
|
||||||
|
- Fresh local clones of `rules-service`, `yookr-api`,
|
||||||
|
`traceability-data-model`, and `yookr-dashboard-new` all pass `nix flake
|
||||||
|
check`, expose their tracked `just` catalogs, and remain clean after entering
|
||||||
|
their development shells. Credential-bearing and externally blocked checks
|
||||||
|
remain separate gates.
|
||||||
|
- `yookr-data-science` still lacks a committed project contract, its untracked
|
||||||
|
flake mutates the checkout during shell entry, and its explicit fetch pipeline
|
||||||
|
still targets live services. Those exact files overlap extensive uncommitted
|
||||||
|
user work, so a partial agent edit would be unsafe and misleading; wait for a
|
||||||
|
commit or deliberate handoff before changing them coherently.
|
||||||
- Gardenctl 2.14.0 and Gardenlogin 0.10.0 are pinned from their official release
|
- Gardenctl 2.14.0 and Gardenlogin 0.10.0 are pinned from their official release
|
||||||
assets; the hashes match the existing binaries byte-for-byte. All three host
|
assets; the hashes match the existing binaries byte-for-byte. All three host
|
||||||
builds pass, the OIDC kubectl plugin is declarative, and Zsh consumes the
|
builds pass, the OIDC kubectl plugin is declarative, and Zsh consumes the
|
||||||
@@ -207,6 +274,8 @@ Polaris:
|
|||||||
initial target warning came from the fresh session inheriting its parent's
|
initial target warning came from the fresh session inheriting its parent's
|
||||||
`KUBECONFIG`. Completion is now store-owned, and the child recipe initializes
|
`KUBECONFIG`. Completion is now store-owned, and the child recipe initializes
|
||||||
Garden's session-local `KUBECONFIG` before targeting instead of unsetting it.
|
Garden's session-local `KUBECONFIG` before targeting instead of unsetting it.
|
||||||
|
The former mutable Garden binaries and generic MCP output are already absent,
|
||||||
|
so their stale cleanup gate is closed without further user work.
|
||||||
- NetworkManager's native OpenVPN plugin is declared on Zenith and Polaris;
|
- NetworkManager's native OpenVPN plugin is declared on Zenith and Polaris;
|
||||||
no profile is embedded in Nix or imported automatically.
|
no profile is embedded in Nix or imported automatically.
|
||||||
- Zenith's initial NetworkManager activation never established a tunnel:
|
- Zenith's initial NetworkManager activation never established a tunnel:
|
||||||
@@ -267,6 +336,27 @@ Polaris:
|
|||||||
Kitty remain the sole declared editor and terminal. A repository-wide search
|
Kitty remain the sole declared editor and terminal. A repository-wide search
|
||||||
found no configured npm caller, so global Node.js and Bun are also removed;
|
found no configured npm caller, so global Node.js and Bun are also removed;
|
||||||
project shells retain language runtimes where needed.
|
project shells retain language runtimes where needed.
|
||||||
|
- Postman, HTTPie, Posting, and Resterm are removed after their valuable request
|
||||||
|
definitions moved to tracked HTTP owners; Bruno remains through its own
|
||||||
|
pilot. Rainfrog, dblab, Harlequin and its profile, Tabularis, DbGate, pgAdmin,
|
||||||
|
MongoDB Compass, pgModeler, tbls, global `usql`, and global MariaDB are
|
||||||
|
removed; Dadbod and wrapper-local clients remain, while DBeaver stays through
|
||||||
|
its gate. Obsidian, Planify, and Calcure are removed after note and task
|
||||||
|
authority was established. Pinta/GIMP and the Evolution-era PIM clients remain
|
||||||
|
independently gated.
|
||||||
|
- `rclone` is installed as the only preparation for the selected S3 pilot. No
|
||||||
|
remote, wrapper, or interactive browser is added before a real task and
|
||||||
|
least-privileged credentials exist.
|
||||||
|
- GitHub PR review is blocked by the invalid `kirigar` CLI token, not repository
|
||||||
|
state. The agent can complete the read-only review and isolated worktree gate
|
||||||
|
autonomously after reauthentication.
|
||||||
|
- The live `nixos-maintainer` skill matches its Nix source and passes static
|
||||||
|
validation. Five ephemeral read-only behavioral checks were deliberately not
|
||||||
|
run because external policy requires explicit approval before another
|
||||||
|
authenticated Codex session receives this private repository.
|
||||||
|
- In zsh, never use lowercase `path` as a loop or local variable: it is tied to
|
||||||
|
`PATH`. A diagnostic command temporarily hid normal executables by doing so;
|
||||||
|
the declarative session environment was correct and needed no patch.
|
||||||
- Pinta is added beside GIMP only for its bounded trial; neither outcome is
|
- Pinta is added beside GIMP only for its bounded trial; neither outcome is
|
||||||
preselected before real editing evidence.
|
preselected before real editing evidence.
|
||||||
- `sync/notes` is now the sole declarative notebook owner, with `daily`,
|
- `sync/notes` is now the sole declarative notebook owner, with `daily`,
|
||||||
|
|||||||
Reference in new issue
Block a user