Add experimental app-server project APIs (#38940)

## What changed

- Add SQLite-backed `project/list`, `project/read`, `project/create`,
  `project/import`, `project/update`, `project/move`, and `project/delete`
  endpoints with ordered roots, metadata, manual positioning, pagination, and
  idempotent creation.
- Add project assignment to thread start, metadata updates, list filtering,
  and fork inheritance. Project deletion clears assignments without deleting
  threads.
- Emit `project/changed` and `thread/project/updated` notifications after
  committed changes, and export the new protocol schemas and TypeScript types.

## Testing

- Cover project lifecycle and ordering, idempotency, atomic imports, cursor and
  filter validation, thread assignment, deletion, and fork inheritance.

GitOrigin-RevId: 47ae621be01ab8ef70a74a629fb29a5c5709ea33
This commit is contained in:
Anton Panasenko authored and copyberry committed 2026-08-17 04:01:37 +00:00
1 parent 1f41cc5d92
commit 3b4569a920
107 files changed
+4210 -52

No files matched your search

+12
View File
@@ -8,6 +8,7 @@ mod error;
mod in_memory;
mod live_thread;
mod local;
mod projects;
mod queue_store;
mod store;
mod thread_metadata_sync;
@@ -30,6 +31,17 @@ pub use local::RolloutMigrationOutcome;
pub use local::RolloutMigrationProgress;
pub use local::RolloutMigrationReport;
pub use local::RolloutMigrationStatus;
pub use projects::CreateProjectParams;
pub use projects::CreatedProject;
pub use projects::DeletedProject;
pub use projects::ListProjectsParams;
pub use projects::MoveProjectParams;
pub use projects::ProjectMoveOutcome;
pub use projects::StoredProject;
pub use projects::StoredProjectRoot;
pub use projects::StoredProjectsPage;
pub use projects::UpdateProjectParams;
pub use projects::UpdatedProject;
pub use queue_store::LocalQueueStore;
pub use queue_store::QueueStore;
pub use store::PersistContext;