@rubytech/create-maxy 1.0.798 → 1.0.799

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy",
3
- "version": "1.0.798",
3
+ "version": "1.0.799",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy": "./dist/index.js"
@@ -919,6 +919,40 @@ FOR (c:Component) ON (c.messageId);
919
919
  CREATE INDEX component_account IF NOT EXISTS
920
920
  FOR (c:Component) ON (c.accountId);
921
921
 
922
+ // ----------------------------------------------------------
923
+ // :Attachment — Task 854. Sibling node hung off a :Message via
924
+ // [:HAS_ATTACHMENT] capturing user-side file uploads (image, pdf,
925
+ // text/markdown/csv/html, calendar, zip; see attachments.ts
926
+ // SUPPORTED_MIME_TYPES). Mirrors :Component (Task 815).
927
+ //
928
+ // Properties:
929
+ // attachmentId — UUID assigned at storeAttachment time; matches
930
+ // the on-disk directory + Neo4j node id.
931
+ // conversationId — denormalised for filtered scans + cascade delete.
932
+ // accountId — account-isolation. Reads MUST scope by this.
933
+ // messageId — back-pointer to parent :Message.
934
+ // filename — original upload name (kept for chip render).
935
+ // mimeType — validated MIME (assertSupportedMime).
936
+ // sizeBytes — original byte size at upload.
937
+ // storagePath — absolute on-disk path. Server-only — never
938
+ // surfaced to the client (chip click resolves
939
+ // via attachmentId, not path).
940
+ // ordinal — upload-order index within the parent turn (0-based).
941
+ // Reader uses it to re-render chips in upload order.
942
+ // createdAt — datetime when persisted.
943
+ //
944
+ // (:Message)-[:HAS_ATTACHMENT]->(:Attachment)
945
+ // ----------------------------------------------------------
946
+
947
+ CREATE CONSTRAINT attachment_id_unique IF NOT EXISTS
948
+ FOR (a:Attachment) REQUIRE a.attachmentId IS UNIQUE;
949
+
950
+ CREATE INDEX attachment_message IF NOT EXISTS
951
+ FOR (a:Attachment) ON (a.messageId);
952
+
953
+ CREATE INDEX attachment_account IF NOT EXISTS
954
+ FOR (a:Attachment) ON (a.accountId);
955
+
922
956
  // ----------------------------------------------------------
923
957
  // :Trashed — Task 576 soft-delete primitive.
924
958
  //