flock-core 0.4.524__py3-none-any.whl → 0.4.525__py3-none-any.whl
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.
Potentially problematic release.
This version of flock-core might be problematic. Click here for more details.
- flock/webapp/app/services/sharing_store.py +32 -4
- {flock_core-0.4.524.dist-info → flock_core-0.4.525.dist-info}/METADATA +1 -1
- {flock_core-0.4.524.dist-info → flock_core-0.4.525.dist-info}/RECORD +6 -6
- {flock_core-0.4.524.dist-info → flock_core-0.4.525.dist-info}/WHEEL +0 -0
- {flock_core-0.4.524.dist-info → flock_core-0.4.525.dist-info}/entry_points.txt +0 -0
- {flock_core-0.4.524.dist-info → flock_core-0.4.525.dist-info}/licenses/LICENSE +0 -0
|
@@ -4,6 +4,7 @@ import logging
|
|
|
4
4
|
import sqlite3
|
|
5
5
|
from abc import ABC, abstractmethod
|
|
6
6
|
from pathlib import Path
|
|
7
|
+
from typing import Any
|
|
7
8
|
|
|
8
9
|
import aiosqlite
|
|
9
10
|
|
|
@@ -227,7 +228,6 @@ class SQLiteSharedLinkStore(SharedLinkStoreInterface):
|
|
|
227
228
|
except sqlite3.Error as e:
|
|
228
229
|
logger.error(f"SQLite error saving feedback {record.feedback_id}: {e}", exc_info=True)
|
|
229
230
|
raise
|
|
230
|
-
# flock/webapp/app/services/sharing_store.py ← replace only this class
|
|
231
231
|
|
|
232
232
|
# ---------------------------------------------------------------------------
|
|
233
233
|
# Azure Table + Blob implementation
|
|
@@ -366,14 +366,42 @@ class AzureTableSharedLinkStore(SharedLinkStoreInterface):
|
|
|
366
366
|
|
|
367
367
|
# -------------------------------------------------------- save_feedback --
|
|
368
368
|
async def save_feedback(self, record: FeedbackRecord) -> FeedbackRecord:
|
|
369
|
+
"""Persist a feedback record. If a flock_definition is present, upload it as a blob and
|
|
370
|
+
store only a reference in the table row to avoid oversized entities (64 KiB limit).
|
|
371
|
+
"""
|
|
369
372
|
tbl_client = self.table_svc.get_table_client(self._FEEDBACK_TBL_NAME)
|
|
370
|
-
|
|
373
|
+
|
|
374
|
+
# Core entity fields (avoid dumping the full Pydantic model – too many columns / large value)
|
|
375
|
+
entity: dict[str, Any] = {
|
|
371
376
|
"PartitionKey": "feedback",
|
|
372
377
|
"RowKey": record.feedback_id,
|
|
373
|
-
|
|
378
|
+
"share_id": record.share_id,
|
|
379
|
+
"context_type": record.context_type,
|
|
380
|
+
"reason": record.reason,
|
|
381
|
+
"expected_response": record.expected_response,
|
|
382
|
+
"actual_response": record.actual_response,
|
|
383
|
+
"created_at": record.created_at.isoformat(),
|
|
374
384
|
}
|
|
385
|
+
if record.flock_name is not None:
|
|
386
|
+
entity["flock_name"] = record.flock_name
|
|
387
|
+
if record.agent_name is not None:
|
|
388
|
+
entity["agent_name"] = record.agent_name
|
|
389
|
+
|
|
390
|
+
# ------------------------------------------------------------------ YAML → Blob
|
|
391
|
+
if record.flock_definition:
|
|
392
|
+
blob_name = f"{record.feedback_id}.yaml"
|
|
393
|
+
blob_client = self.blob_svc.get_blob_client(self._CONTAINER_NAME, blob_name)
|
|
394
|
+
# Overwrite=true so repeated feedback_id uploads (shouldn't happen) won't error
|
|
395
|
+
await blob_client.upload_blob(record.flock_definition,
|
|
396
|
+
overwrite=True,
|
|
397
|
+
content_type="text/yaml")
|
|
398
|
+
entity["flock_blob_name"] = blob_name # lightweight reference only
|
|
399
|
+
|
|
400
|
+
# ------------------------------------------------------------------ Table upsert
|
|
375
401
|
await tbl_client.upsert_entity(entity)
|
|
376
|
-
logger.info("Saved feedback %s",
|
|
402
|
+
logger.info("Saved feedback %s%s",
|
|
403
|
+
record.feedback_id,
|
|
404
|
+
f" → blob '{entity['flock_blob_name']}'" if "flock_blob_name" in entity else "")
|
|
377
405
|
return record
|
|
378
406
|
|
|
379
407
|
|
|
@@ -508,7 +508,7 @@ flock/webapp/app/api/registry_viewer.py,sha256=IoInxJiRR0yFlecG_l2_eRc6l35RQQyED
|
|
|
508
508
|
flock/webapp/app/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
509
509
|
flock/webapp/app/services/flock_service.py,sha256=olU1My3YYkrTCVIOYPgRted-8YgAop-Yi7G4gbRHTrg,14941
|
|
510
510
|
flock/webapp/app/services/sharing_models.py,sha256=XeJk1akILV_1l-cIUaG8k_eYhjV3EWBCWZ2kpwbdImA,3609
|
|
511
|
-
flock/webapp/app/services/sharing_store.py,sha256=
|
|
511
|
+
flock/webapp/app/services/sharing_store.py,sha256=muYPI5KQUI3hg1rckCZ3UQ_nTxEJh6OiM15McyuG1tI,19669
|
|
512
512
|
flock/webapp/app/templates/theme_mapper.html,sha256=z8ZY7nmk6PiUGzD_-px7wSXcEnuBM121rMq6u-2oaCo,14249
|
|
513
513
|
flock/webapp/static/css/chat.css,sha256=Njc9gXfQzbXMrqtFJH2Yda-IQlwNPd2z4apXxzfA0sY,8169
|
|
514
514
|
flock/webapp/static/css/components.css,sha256=WnicEHy3ptPzggKmyG9_oZp3X30EMJBUW3KEXaiUCUE,6018
|
|
@@ -562,8 +562,8 @@ flock/workflow/agent_execution_activity.py,sha256=Gy6FtuVAjf0NiUXmC3syS2eJpNQF4R
|
|
|
562
562
|
flock/workflow/flock_workflow.py,sha256=iSUF_soFvWar0ffpkzE4irkDZRx0p4HnwmEBi_Ne2sY,9666
|
|
563
563
|
flock/workflow/temporal_config.py,sha256=3_8O7SDEjMsSMXsWJBfnb6XTp0TFaz39uyzSlMTSF_I,3988
|
|
564
564
|
flock/workflow/temporal_setup.py,sha256=YIHnSBntzOchHfMSh8hoLeNXrz3B1UbR14YrR6soM7A,1606
|
|
565
|
-
flock_core-0.4.
|
|
566
|
-
flock_core-0.4.
|
|
567
|
-
flock_core-0.4.
|
|
568
|
-
flock_core-0.4.
|
|
569
|
-
flock_core-0.4.
|
|
565
|
+
flock_core-0.4.525.dist-info/METADATA,sha256=P2fdPY28U8ZuUIE0J9CAy4pPvuapFQLn1v8_Odg7Vgs,22786
|
|
566
|
+
flock_core-0.4.525.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
567
|
+
flock_core-0.4.525.dist-info/entry_points.txt,sha256=rWaS5KSpkTmWySURGFZk6PhbJ87TmvcFQDi2uzjlagQ,37
|
|
568
|
+
flock_core-0.4.525.dist-info/licenses/LICENSE,sha256=iYEqWy0wjULzM9GAERaybP4LBiPeu7Z1NEliLUdJKSc,1072
|
|
569
|
+
flock_core-0.4.525.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|