projectdavid-orm 1.11.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.
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/CHANGELOG.md +14 -0
- {projectdavid_orm-1.11.0/src/projectdavid_orm.egg-info → projectdavid_orm-1.13.0}/PKG-INFO +1 -1
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/pyproject.toml +1 -1
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/projectdavid_orm/models.py +82 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0/src/projectdavid_orm.egg-info}/PKG-INFO +1 -1
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/LICENSE +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/MANIFEST.in +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/README.md +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/setup.cfg +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/PKG-INFO +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/SOURCES.txt +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/dependency_links.txt +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/entry_points.txt +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/requires.txt +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/top_level.txt +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/__init__.py +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/constants/__init__.py +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/ormInterface.py +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/projectdavid_orm/__init__.py +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/projectdavid_orm/base.py +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/utilities/__init__.py +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/SOURCES.txt +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/dependency_links.txt +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/requires.txt +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/top_level.txt +0 -0
- {projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/tests/test_clients.py +0 -0
|
@@ -1,3 +1,17 @@
|
|
|
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
|
+
|
|
8
|
+
# [1.12.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.11.0...v1.12.0) (2026-09-28)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **schema:** add canonical message sequence ordering ([ca58196](https://github.com/project-david-ai/projectdavid-orm/commit/ca581964f244a704bd2dd8e7f8bacb65a24ee6d7))
|
|
14
|
+
|
|
1
15
|
# [1.11.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.10.0...v1.11.0) (2026-09-27)
|
|
2
16
|
|
|
3
17
|
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/projectdavid_orm/models.py
RENAMED
|
@@ -9,6 +9,7 @@ from projectdavid_common.utilities.logging_service import LoggingUtility
|
|
|
9
9
|
from sqlalchemy import JSON, BigInteger, Boolean, Column, DateTime
|
|
10
10
|
from sqlalchemy import Enum as SAEnum
|
|
11
11
|
from sqlalchemy import (
|
|
12
|
+
FetchedValue,
|
|
12
13
|
Float,
|
|
13
14
|
ForeignKey,
|
|
14
15
|
Index,
|
|
@@ -194,6 +195,12 @@ class User(Base):
|
|
|
194
195
|
lazy="select",
|
|
195
196
|
)
|
|
196
197
|
|
|
198
|
+
scratchpads = relationship(
|
|
199
|
+
"Scratchpad",
|
|
200
|
+
back_populates="owner",
|
|
201
|
+
lazy="select",
|
|
202
|
+
)
|
|
203
|
+
|
|
197
204
|
__table_args__ = (
|
|
198
205
|
UniqueConstraint(
|
|
199
206
|
"oauth_provider", "provider_user_id", name="uq_user_oauth_provider_id"
|
|
@@ -268,6 +275,72 @@ class Thread(Base):
|
|
|
268
275
|
)
|
|
269
276
|
owner = relationship("User", foreign_keys=[owner_id], lazy="select")
|
|
270
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
|
+
|
|
271
344
|
|
|
272
345
|
class Message(Base):
|
|
273
346
|
__tablename__ = "messages"
|
|
@@ -294,6 +367,15 @@ class Message(Base):
|
|
|
294
367
|
comment="For messages with role='tool', this links back to the specific tool_call_id.",
|
|
295
368
|
)
|
|
296
369
|
|
|
370
|
+
sequence_no = Column(
|
|
371
|
+
BigInteger,
|
|
372
|
+
nullable=False,
|
|
373
|
+
unique=True,
|
|
374
|
+
index=True,
|
|
375
|
+
server_default=FetchedValue(),
|
|
376
|
+
comment="Canonical monotonic persistence order for conversation messages.",
|
|
377
|
+
)
|
|
378
|
+
|
|
297
379
|
created_at = Column(Integer, nullable=False)
|
|
298
380
|
incomplete_at = Column(Integer, nullable=True)
|
|
299
381
|
incomplete_details = Column(JSON, nullable=True)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/PKG-INFO
RENAMED
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/requires.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_common.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/constants/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/projectdavid_orm/base.py
RENAMED
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm/utilities/__init__.py
RENAMED
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/requires.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.11.0 → projectdavid_orm-1.13.0}/src/projectdavid_orm.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|