projectdavid-orm 1.12.0__tar.gz → 1.13.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/CHANGELOG.md +7 -0
  2. {projectdavid_orm-1.12.0/src/projectdavid_orm.egg-info → projectdavid_orm-1.13.0}/PKG-INFO +1 -1
  3. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/pyproject.toml +1 -1
  4. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/projectdavid_orm/models.py +72 -0
  5. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0/src/projectdavid_orm.egg-info}/PKG-INFO +1 -1
  6. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/LICENSE +0 -0
  7. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/MANIFEST.in +0 -0
  8. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/README.md +0 -0
  9. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/setup.cfg +0 -0
  10. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/PKG-INFO +0 -0
  11. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/SOURCES.txt +0 -0
  12. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/dependency_links.txt +0 -0
  13. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/entry_points.txt +0 -0
  14. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/requires.txt +0 -0
  15. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/top_level.txt +0 -0
  16. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/__init__.py +0 -0
  17. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/constants/__init__.py +0 -0
  18. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/ormInterface.py +0 -0
  19. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/projectdavid_orm/__init__.py +0 -0
  20. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/projectdavid_orm/base.py +0 -0
  21. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/utilities/__init__.py +0 -0
  22. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/SOURCES.txt +0 -0
  23. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/dependency_links.txt +0 -0
  24. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/requires.txt +0 -0
  25. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/top_level.txt +0 -0
  26. {projectdavid_orm-1.12.0 → projectdavid_orm-1.13.0}/tests/test_clients.py +0 -0
@@ -1,3 +1,10 @@
1
+ # [1.13.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.12.0...v1.13.0) (2026-09-29)
2
+
3
+
4
+ ### Features
5
+
6
+ * **schema:** add thread-associated scratchpad resource ([5e8d87c](https://github.com/project-david-ai/projectdavid-orm/commit/5e8d87c6641b4eed245feb42c373c91bd643cfc3))
7
+
1
8
  # [1.12.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.11.0...v1.12.0) (2026-09-28)
2
9
 
3
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid-orm
3
- Version: 1.12.0
3
+ Version: 1.13.0
4
4
  Summary: Shared SQLAlchemy ORM models for ProjectDavid services
5
5
  Author-email: "Francis N." <engineering@projectdavid.co.uk>
6
6
  License: PolyForm Noncommercial License 1.0.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "projectdavid-orm"
7
- version = "1.12.0"
7
+ version = "1.13.0"
8
8
  description = "Shared SQLAlchemy ORM models for ProjectDavid services"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -195,6 +195,12 @@ class User(Base):
195
195
  lazy="select",
196
196
  )
197
197
 
198
+ scratchpads = relationship(
199
+ "Scratchpad",
200
+ back_populates="owner",
201
+ lazy="select",
202
+ )
203
+
198
204
  __table_args__ = (
199
205
  UniqueConstraint(
200
206
  "oauth_provider", "provider_user_id", name="uq_user_oauth_provider_id"
@@ -269,6 +275,72 @@ class Thread(Base):
269
275
  )
270
276
  owner = relationship("User", foreign_keys=[owner_id], lazy="select")
271
277
 
278
+ scratchpad = relationship(
279
+ "Scratchpad",
280
+ back_populates="thread",
281
+ uselist=False,
282
+ cascade="all, delete-orphan",
283
+ single_parent=True,
284
+ lazy="select",
285
+ )
286
+
287
+
288
+ class Scratchpad(Base):
289
+ """Tenant-owned working-memory resource associated with one thread."""
290
+
291
+ __tablename__ = "scratchpads"
292
+
293
+ id = Column(String(64), primary_key=True, index=True)
294
+
295
+ owner_id = Column(
296
+ String(64),
297
+ ForeignKey("users.id", ondelete="CASCADE"),
298
+ nullable=False,
299
+ )
300
+
301
+ thread_id = Column(
302
+ String(64),
303
+ ForeignKey("threads.id", ondelete="CASCADE"),
304
+ nullable=False,
305
+ )
306
+
307
+ created_at = Column(DateTime, nullable=False, default=datetime.utcnow)
308
+ updated_at = Column(
309
+ DateTime,
310
+ nullable=False,
311
+ default=datetime.utcnow,
312
+ onupdate=datetime.utcnow,
313
+ )
314
+
315
+ meta_data = Column(
316
+ MutableDict.as_mutable(JSON),
317
+ nullable=False,
318
+ default=dict,
319
+ )
320
+
321
+ owner = relationship(
322
+ "User",
323
+ back_populates="scratchpads",
324
+ lazy="select",
325
+ )
326
+
327
+ thread = relationship(
328
+ "Thread",
329
+ back_populates="scratchpad",
330
+ lazy="select",
331
+ )
332
+
333
+ __table_args__ = (
334
+ UniqueConstraint(
335
+ "thread_id",
336
+ name="uq_scratchpads_thread_id",
337
+ ),
338
+ Index(
339
+ "idx_scratchpads_owner_id",
340
+ "owner_id",
341
+ ),
342
+ )
343
+
272
344
 
273
345
  class Message(Base):
274
346
  __tablename__ = "messages"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid-orm
3
- Version: 1.12.0
3
+ Version: 1.13.0
4
4
  Summary: Shared SQLAlchemy ORM models for ProjectDavid services
5
5
  Author-email: "Francis N." <engineering@projectdavid.co.uk>
6
6
  License: PolyForm Noncommercial License 1.0.0