Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
5c8f1f3
Initial graphql-orm backup crate
May 14, 2026
6b52d73
Initial graphql-orm storage library
May 14, 2026
5d56657
Add compressed snapshots and manifest chains
May 14, 2026
0fb7998
Add streaming blob store layer
May 14, 2026
4648d81
Tighten full backup correctness
Jul 2, 2026
930aa09
Stabilize blob store API surface
Jul 2, 2026
7104159
Add snapshot restore orchestration
Jul 2, 2026
bb34e83
Harden local blob maintenance
Jul 2, 2026
eb9ad74
Add incremental backups and compaction
Jul 2, 2026
eeb5ddf
Add repository locking and pruning
Jul 2, 2026
4364f1d
Implement S3 blob backend
Jul 2, 2026
8ee7bc7
Expand backup crate documentation
Jul 2, 2026
1b13566
Refresh storage documentation
Jul 2, 2026
2633077
Use storage blob store for backup repositories
Jul 2, 2026
c657816
Expose ranged object streams
Jul 2, 2026
b805bf6
Bump backup crate to 0.2.0
Jul 2, 2026
26d8934
Add streaming object recording support
Jul 6, 2026
e619cb8
Add graphql-orm runtime adapters, snapshot deletion, and blob-store r…
Jul 11, 2026
8d08bf9
Add adapter-level column backup policy overrides
Jul 11, 2026
b52f0dc
chore: pin backup crate dependencies
Dastari Jul 12, 2026
c2a9255
feat: add native SMB blob storage
Jul 13, 2026
dfc58a9
docs: update SMB agent handoff
Jul 13, 2026
6225663
feat: add native SMB backup repositories
Jul 13, 2026
aed51ea
Add auth, ORM, and Rust skill docs
Jul 13, 2026
5543426
Initial public release
Jul 13, 2026
1d9321d
Implement durable agent runtime foundations
Jul 13, 2026
f524b80
chore: pin reviewed upstream runtime releases
Jul 13, 2026
0ffc4d4
fix: reconstruct semver baseline dependencies
Jul 13, 2026
2cbcc28
docs: enforce complete public rustdocs
Jul 13, 2026
5b01fe6
ci: require dependency-facing release docs
Jul 13, 2026
82d2397
docs: define upstream ownership handoffs
Jul 13, 2026
79abbde
chore: align final upstream releases
Jul 13, 2026
547949c
feat: coordinate durable read-only agent runs
Jul 13, 2026
dfd0cf9
feat: execute supervised tools through exact approvals
Jul 13, 2026
6eba252
feat: execute tools through bounded remote authority
Jul 13, 2026
c49eb8d
feat: checkpoint durable agent handoffs
Jul 13, 2026
bbe7d5a
feat: adopt exact completed tool checkpoints
Jul 13, 2026
1ed0115
feat: persist protected provisional output
Jul 13, 2026
08adf2f
feat: add quarantined attachment intake
Jul 13, 2026
c648bc2
feat: bind attachment egress exactly
Jul 13, 2026
64a791b
feat: add fenced attachment cleanup
Jul 13, 2026
3e500c8
feat: resolve exact provider attachments
Jul 13, 2026
3f41a6b
feat: add durable principal inbox
Jul 13, 2026
aa98e05
feat: add native Ollama provider
Jul 13, 2026
13c6277
feat: add installed local harness boundary
Jul 13, 2026
ba086f9
fix: bind complete provider request metadata
Jul 13, 2026
f479450
feat: add authoritative usage reporting
Jul 13, 2026
b0379e3
feat: manage budget policies through GraphQL
Jul 13, 2026
734d6ce
feat: add immutable pricing catalog
Jul 13, 2026
589c3c8
feat: add bounded session content retention
Jul 14, 2026
498abc2
feat: add stateless local tool continuation
Jul 14, 2026
d893a82
feat: adopt stateless checkpoints across fences
Jul 14, 2026
27c2322
feat: add native Anthropic provider
Jul 14, 2026
65cbaaf
feat: add native xAI provider
Jul 14, 2026
dd62093
feat: add profiled OpenAI-compatible provider
Jul 14, 2026
78ab6a8
test: add owned PostgreSQL parity harness
Jul 14, 2026
a27433f
feat: add protected skill catalog
Jul 14, 2026
75622e7
feat: persist validated UI intent events
Jul 14, 2026
78a36bf
feat: add hierarchical AI rule narrowing
Jul 14, 2026
bbeff33
feat: bind agent runs to hierarchical rules
Jul 14, 2026
2a3b112
feat: add fenced approved wait handoff
Jul 14, 2026
6b1459c
docs: clarify supervised wait ownership
Jul 14, 2026
2017c3b
feat: protect supervised approval continuation
Jul 14, 2026
119f790
feat: adopt supervised checkpoints safely
Jul 14, 2026
1599359
feat: coordinate sequential supervised agent turns
Jul 14, 2026
69b2c21
feat: reconcile durable approval waits
Jul 14, 2026
83a5c4e
feat: purge deleting session content safely
Jul 14, 2026
ff27729
feat: order context retention before content
Jul 14, 2026
65df9aa
feat: purge terminal run checkpoints safely
Jul 14, 2026
8de4e02
test: wait for PostgreSQL TCP readiness
Jul 14, 2026
19a24e5
feat: clean deleting session attachments safely
Jul 14, 2026
efd5d0a
feat: tombstone deleting session proposals safely
Jul 15, 2026
e2cc80a
feat: tombstone deleting session tool payloads safely
Jul 15, 2026
9838cc3
feat: expire terminal tool payloads safely
Jul 15, 2026
fef6c59
feat: purge expired protected checkpoints safely
Jul 15, 2026
272184c
feat: clean attachment artifacts safely
Jul 15, 2026
6e4b20d
feat: add protected context compaction
Jul 15, 2026
7b833af
feat: finalize deleting sessions safely
Jul 15, 2026
6c4fa0b
feat: add content-free operational telemetry
Jul 15, 2026
69c9456
feat: account for provider built-in tool usage
Jul 16, 2026
dfbe712
feat: delete OpenAI files by exact reference
Jul 16, 2026
2dcab73
feat: record verified OpenAI webhook receipts
Jul 16, 2026
18930d2
Add exact OpenAI background submission
Jul 16, 2026
87cff37
Merge legacy master history
Jul 17, 2026
9668f31
Align dependencies and add completion plan
Jul 27, 2026
ba306f1
Bump crate version for dependency alignment
Jul 27, 2026
36ef51e
Record green dependency checkpoint
Jul 27, 2026
2af0abf
Design OpenAI background reconciliation
Jul 27, 2026
6e4e965
Reserve background reconciliation claim state
Jul 27, 2026
fbc9dcc
Record reconciliation schema verification
Jul 27, 2026
74a6b51
Implement background reconciliation claims
Jul 27, 2026
2bd069e
Record reconciliation claim verification
Jul 27, 2026
ae6d46b
feat: add bounded OpenAI background retrieval
Jul 27, 2026
ba49d6f
docs: record retrieval verification checkpoint
Jul 27, 2026
0771c27
Complete OpenAI background reconciliation
Jul 28, 2026
e5a9130
Record terminal reconciliation checkpoint
Jul 28, 2026
4016e0d
Close unsafe provider file authority and audit remaining gates
Jul 28, 2026
1c5d9c1
Record remaining-slice verification checkpoint
Jul 28, 2026
3561da5
Align backup adapters with graphql-orm 0.15
Jul 28, 2026
bbf0712
Align backup adapters with graphql-orm 0.15 (#2)
Dastari Jul 29, 2026
9a5f5d7
Integrate graphql-orm generated operation metadata
Jul 29, 2026
0b65b69
Align dependencies with graphql-orm 0.16
Jul 29, 2026
82c1f26
Align dependencies with graphql-orm 0.16 (#3)
Dastari Jul 29, 2026
bd36fd5
Integrate graphql-orm-backup 0.6 compatibility
Jul 29, 2026
0fa2115
Harden native SMB streaming and reconnects
Jul 20, 2026
d86a452
Document monorepo consolidation plan
Jul 29, 2026
d6df42e
Import graphql-orm-storage history
Jul 29, 2026
1e82a8f
Import graphql-orm-backup history
Jul 29, 2026
1eae031
Import graphql-orm-ai history
Jul 29, 2026
1e2319d
Consolidate graphql-orm companion crates
Jul 29, 2026
26fe50a
Advance companion versions for workspace boundary
Jul 29, 2026
02da649
Clean imported skill documentation
Jul 29, 2026
451b157
Keep unreadable repository locks closed
Jul 29, 2026
3a0d76d
Stabilize dependency tree test output
Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
120 changes: 120 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
name: CI

on:
pull_request:
workflow_dispatch:

jobs:
workspace-integrity:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- uses: Swatinem/rust-cache@v2
- run: cargo fmt --all -- --check
- run: scripts/check-workspace-dependencies.sh
- run: cargo test -p graphql-orm-storage
- run: cargo test -p graphql-orm-backup --features orm-sqlite

orm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: cargo test -p graphql-orm
- run: cargo check -p graphql-orm --no-default-features --features postgres
- run: cargo check -p graphql-orm --no-default-features --features mssql
- run: cargo clippy -p graphql-orm --all-targets -- -D warnings
- run: RUSTDOCFLAGS="-D warnings" cargo doc -p graphql-orm -p graphql-orm-macros --no-deps

companions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: cargo test -p graphql-orm-ai --features provider-openai,provider-anthropic,provider-xai,provider-ollama,provider-openai-compatible,local-harness
- run: cargo test -p graphql-orm-ai --features graphql-case-pascal --test graphql_naming
- run: cargo clippy -p graphql-orm-ai --all-targets --features provider-openai,provider-anthropic,provider-xai,provider-ollama,provider-openai-compatible,local-harness -- -D warnings
- run: RUSTDOCFLAGS="-D warnings -D missing_docs" cargo doc -p graphql-orm-ai --features provider-openai,provider-anthropic,provider-xai,provider-ollama,provider-openai-compatible,local-harness --no-deps

alternate-features:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo check -p graphql-orm-ai --no-default-features --features postgres
- run: cargo check -p graphql-orm-ai --no-default-features --features mssql
- run: cargo check -p graphql-orm-backup --no-default-features --features local,orm-postgres
- run: cargo check -p graphql-orm-storage --no-default-features --features s3,azure
- run: cargo check -p graphql-orm-storage --no-default-features --features smb

ai-postgres-parity:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Run ORM parity against a test-owned disposable PostgreSQL container
run: cargo test -p graphql-orm-ai --no-default-features --features postgres,provider-openai --test postgres_parity -- --test-threads=1

ai-release-policy:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- run: crates/graphql-orm-ai/scripts/check-release-policy.sh "${{ github.event.pull_request.base.sha }}"

semver:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Create baseline worktree
run: git worktree add ../graphql-orm-baseline "${{ github.event.pull_request.base.sha }}"
- id: companion-baseline
name: Detect consolidated packages in the baseline
run: |
if git cat-file -e "${{ github.event.pull_request.base.sha }}:crates/graphql-orm-ai/Cargo.toml"; then
echo "exists=true" >> "$GITHUB_OUTPUT"
else
echo "exists=false" >> "$GITHUB_OUTPUT"
fi
- uses: obi1kenobi/cargo-semver-checks-action@v2
with:
manifest-path: crates/graphql-orm/Cargo.toml
baseline-root: ../graphql-orm-baseline/crates/graphql-orm
feature-group: default-features
- if: steps.companion-baseline.outputs.exists == 'true'
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
manifest-path: crates/graphql-orm-storage/Cargo.toml
baseline-root: ../graphql-orm-baseline/crates/graphql-orm-storage
feature-group: default-features
- if: steps.companion-baseline.outputs.exists == 'true'
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
manifest-path: crates/graphql-orm-backup/Cargo.toml
baseline-root: ../graphql-orm-baseline/crates/graphql-orm-backup
feature-group: default-features
- if: steps.companion-baseline.outputs.exists == 'true'
uses: obi1kenobi/cargo-semver-checks-action@v2
with:
manifest-path: crates/graphql-orm-ai/Cargo.toml
baseline-root: ../graphql-orm-baseline/crates/graphql-orm-ai
feature-group: default-features
21 changes: 21 additions & 0 deletions .github/workflows/managed-smb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Managed SMB

on:
pull_request:
paths:
- "Cargo.lock"
- "Cargo.toml"
- "crates/graphql-orm-backup/**"
- "crates/graphql-orm-storage/**"
- ".github/workflows/managed-smb.yml"
workflow_dispatch:

jobs:
samba:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: crates/graphql-orm-storage/tests/samba/run.sh
43 changes: 43 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# GraphQL ORM workspace agent guide

These rules apply to the entire repository. More specific `AGENTS.md` files
under a crate add package-local invariants.

## Workspace boundaries

- The workspace contains `graphql-orm`, `graphql-orm-macros`,
`graphql-orm-storage`, `graphql-orm-backup`, and `graphql-orm-ai`.
- `agql-auth` remains an external exact-revision dependency. Do not modify its
repository unless the task explicitly includes it.
- Keep the packages independently consumable. Do not turn AI, backup, or
storage into features or optional dependencies of the core ORM crate.
- Preserve this acyclic dependency direction:
`graphql-orm-ai -> graphql-orm-backup -> graphql-orm-storage`,
`graphql-orm-ai -> graphql-orm`, optional
`graphql-orm-backup -> graphql-orm`, and
`graphql-orm -> graphql-orm-macros`.
- Internal packages use workspace path dependencies and the root `Cargo.lock`.
Never add Git dependencies between packages in this workspace.

## Cross-crate changes

- Make reusable changes in the package that owns the contract and update all
affected dependants in the same branch.
- Preserve crate-local security, restore, provider, schema, and locking
invariants. Read the nearest crate `AGENTS.md` before editing below it.
- Keep public API cleanup separate from mechanical repository or dependency
changes unless compatibility requires them together.
- Update package changelogs, migration notes, versions, and examples according
to each crate's local release rules.

## Verification

- Never use workspace `--all-features`; ORM database backends are alternative
configurations.
- Use explicit `-p` and feature selections for backend and provider checks.
- Default database tests may use temporary SQLite. PostgreSQL or MSSQL tests
may run only through test-owned disposable infrastructure documented by the
affected crate; never use a live application database.
- Run `cargo fmt --all -- --check`, relevant package tests, warnings-denied
Clippy and Rustdoc, dependency-tree checks, and all affected backend compile
lanes before handoff.
Loading
Loading