diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml new file mode 100644 index 000000000..6141ae094 --- /dev/null +++ b/.github/workflows/ci-docs.yml @@ -0,0 +1,50 @@ +name: CI Docs + +on: + push: + branches: [main] + pull_request: + types: [opened, synchronize, reopened] + branches: [main] + paths: + - 'docs/**' + - '.github/workflows/ci-docs.yml' + +concurrency: + group: ci-docs-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + verify: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + fetch-depth: 0 + + - name: Setup pnpm + uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 + with: + package_json_file: docs/package.json + + - name: Setup Node + uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 + with: + node-version: 26 + cache: pnpm + cache-dependency-path: docs/pnpm-lock.yaml + + - name: Install dependencies + run: pnpm install --frozen-lockfile + working-directory: docs + + - name: Build docs + run: pnpm docs:build + working-directory: docs + env: + DOCS_BASE: ${{ vars.DOCS_BASE || format('/{0}/', github.event.repository.name) }} diff --git a/docs/research/session-store/products/amazon-q/index.md b/docs/research/session-store/products/amazon-q/index.md index d8e6155eb..e5647b698 100644 --- a/docs/research/session-store/products/amazon-q/index.md +++ b/docs/research/session-store/products/amazon-q/index.md @@ -146,8 +146,8 @@ session-as-directory. - Resume is a boolean switch tied to the *directory you are currently in*, not to a chosen session id: `ChatArgs.resume: bool` (`crates/chat-cli/src/cli/chat/mod.rs:233`, "Resumes the previous - conversation from this directory") is the only lever; there is no `--session - ` flag or a session picker anywhere in `ChatArgs` + conversation from this directory") is the only lever; there is no + `--session ` flag or a session picker anywhere in `ChatArgs` (`crates/chat-cli/src/cli/chat/mod.rs:227-253`). ## The store interface diff --git a/docs/research/session-store/products/claude-agent-sdk/session-types.md b/docs/research/session-store/products/claude-agent-sdk/session-types.md index d0724e3ce..0c206de11 100644 --- a/docs/research/session-store/products/claude-agent-sdk/session-types.md +++ b/docs/research/session-store/products/claude-agent-sdk/session-types.md @@ -57,8 +57,8 @@ it against the platform Session contract in this checkout. ownership precondition is currently unmet. Draft [ADR#0043](../../../../adr/0043-agent-instructions-ownership-and-shape.md) keeps instruction content and injection shape in runtime-owned settings. -- The - [`v1alpha1` Session event package](../../../../../proto/trogonai/session/sessions/v1alpha1/events.proto) +- The `v1alpha1` Session event package + (`proto/trogonai/session/sessions/v1alpha1/events.proto`) is real code in this checkout, but its own header says it depends on draft ADRs and cannot promote to `v1` until those decisions and prerequisites are settled. @@ -356,7 +356,7 @@ or monitor ownership cannot silently become platform Session semantics. **Repository fact.** The current code has 57 Session proto files, 72 messages, 19 enums, and 41 concrete arms in -[`SessionEvent`](../../../../../proto/trogonai/session/sessions/v1alpha1/events.proto). +`SessionEvent` (`proto/trogonai/session/sessions/v1alpha1/events.proto`). It has generated Rust exports, codecs, and local per-event semantic validation. `validate_session_event` checks only facts one event can prove about itself; cross-event joins and stream invariants are explicitly out of scope. Current @@ -365,9 +365,9 @@ The catalog covers lifecycle, fork, rewind, compaction, conversation, tools, artifacts, files, execution attempts, delegation, operation ledger, privacy, system notices, todo state, and organization metadata. -[`SessionStarted`](../../../../../proto/trogonai/session/sessions/v1alpha1/session_started.proto) -stores one -[`StoredSessionExecutionPlan`](../../../../../proto/trogonai/session/sessions/v1alpha1/execution_plan.proto), +`SessionStarted` (`proto/trogonai/session/sessions/v1alpha1/session_started.proto`) +stores one `StoredSessionExecutionPlan` +(`proto/trogonai/session/sessions/v1alpha1/execution_plan.proto`), currently opaque canonical `plan_bytes` plus a digest, and a workspace reference. The concrete typed plan described by draft [ADR#0031](../../../../adr/0031-agent-implementation-and-session-plan.md) is not diff --git a/docs/research/session-store/products/crush/vs-session-events.md b/docs/research/session-store/products/crush/vs-session-events.md index afe2a8903..530881304 100644 --- a/docs/research/session-store/products/crush/vs-session-events.md +++ b/docs/research/session-store/products/crush/vs-session-events.md @@ -394,7 +394,7 @@ under `NoStream`); the graph is acyclic by construction, not by a runtime check; rewind invalidation (`ParentHistoryInvalidated`) is explicitly distinct from terminal cascade (`ParentTerminated`, carrying a typed `ParentTerminalCause`); terminal cascade is driven by a reconciler -[processor](../../../glossary/processor) subscribed to +[processor](../../../../glossary/processor) subscribed to `session.sessions.events.>`, discovering children through the parent-to- children lineage projection folded from `DelegationDispatched`, and is transitive across a chain of depth D in D sequential reconciler round-trips; diff --git a/docs/research/session-store/products/fx/index.md b/docs/research/session-store/products/fx/index.md index 0a23bdd5d..1ee9a4bb1 100644 --- a/docs/research/session-store/products/fx/index.md +++ b/docs/research/session-store/products/fx/index.md @@ -148,8 +148,8 @@ binary's diagnostic strings; there is no exported type to quote. There is no delete verb in the CLI. `fx doctor` mentions `cleanup_candidate` / `cleanup_removed` [literal], and manual removal is the documented recovery -step ("back up `~/.fx/sessions`, then inspect this session with `fx session - --json`") [literal]. +step ("back up `~/.fx/sessions`, then inspect this session with +`fx session --json`") [literal]. ## Write and append path