Skip to content

Commit 21f2be8

Browse files
V48 (impl-only): Drop attachments barrel package
Retire the plural @bitcode/attachments-generics composition barrel. Keep the core pattern: attachment-generics primitive plus leaf bases under generic-attachments/{file,external}. Retarget api and conversations imports/deps to the primitive. Update tsconfig, jest map, proven inventory, lockfile, and hierarchy docs.
1 parent ba81e5d commit 21f2be8

25 files changed

Lines changed: 52 additions & 470 deletions

.docs/BITCODE_FILESYSTEM_TLDR.md

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -645,19 +645,13 @@ Format: `path -- <1 sentence TL;DR>`.
645645
artifacts.ts -- Source module in package `artifacts`.
646646
package.json -- Package/workspace manifest and dependency exports.
647647
README.md -- Human orientation for this directory.
648-
attachments-generics/ -- Domain package `attachments-generics` (pure reusable logic).
649-
src/ -- Subfolder of package `attachments-generics`.
650-
index.d.ts -- Public package export surface.
651-
index.js -- Package `attachments-generics` artifact.
648+
attachment-generics/ -- Attachment primitive (`@bitcode/attachment-generics`).
649+
src/ -- Subfolder of package `attachment-generics`.
652650
index.ts -- Public package export surface.
653-
types.d.ts -- Source module in package `attachments-generics`.
654-
types.js -- Package `attachments-generics` artifact.
655-
types.ts -- Source module in package `attachments-generics`.
656-
utils.d.ts -- Source module in package `attachments-generics`.
657-
utils.js -- Package `attachments-generics` artifact.
658-
utils.ts -- Source module in package `attachments-generics`.
651+
types.ts -- Source module in package `attachment-generics`.
659652
package.json -- Package/workspace manifest and dependency exports.
660653
README.md -- Human orientation for this directory.
654+
generic-attachments/ -- Leaf bases file|external (`@bitcode/generic-attachments-*`).
661655
aurora-postgres/ -- Domain package `aurora-postgres` (pure reusable logic).
662656
src/ -- Subfolder of package `aurora-postgres`.
663657
index.js -- Package `aurora-postgres` artifact.

.docs/BITCODE_SOURCE_LAYOUT.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,8 @@ packages/generic-<family>/ # README only (no package.json)
305305
| `generic-doc-comments/` | `doc-code/`, `doc-developing/` | `@bitcode/generic-doc-comments-*` |
306306
| `artifact-generics/` | (package root) | `@bitcode/artifact-generics` |
307307
| `generic-artifacts/` | `patch/`, `aws/`, `supabase/`, `vercel/` | type + storage providers |
308-
| `attachment-generics/` | (package root) | `@bitcode/attachment-generics` |
309-
| `generic-attachments/` | `file/`, `external/` | `@bitcode/generic-attachments-*` |
308+
| `attachment-generics/` | (package root) | `@bitcode/attachment-generics` (primitive) |
309+
| `generic-attachments/` | `file/`, `external/` | `@bitcode/generic-attachments-*` (leaf bases) |
310310
| `files/` | (package root) | `@bitcode/files` |
311311
| `file-editing/` | (package root) | `@bitcode/file-editing` |
312312
| `file-refactoring/` | (package root) | `@bitcode/file-refactoring` |

.docs/FAMILIARIZATION.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,23 +285,25 @@ No standalone `@bitcode/aws` package — S3 for artifacts is `generic-artifacts-
285285
| Storage bases | aws / supabase / vercel | provider implementations |
286286
| Product | `DataPackPatchArtifact` | patch bound to `assetPackId` |
287287

288-
### 3.1.5 Attachments (primitive → file | external)
288+
### 3.1.5 Attachments (primitive → file | external leaves)
289+
290+
Core `*-generics` + `generic-*` leaf pattern (no plural composition barrel):
289291

290292
```
291293
@bitcode/attachment-generics BaseAttachment; categories file|external
292294
293-
@bitcode/generic-attachments-file FileAttachment
295+
@bitcode/generic-attachments-file FileAttachment # packages/generic-attachments/file
294296
@bitcode/generic-attachments-external ExternalAttachment (Externals auxillary)
295297
296-
@bitcode/attachments-generics composition barrel
298+
product (api, conversations) imports primitive for refs/categories; leaves when specializing
297299
```
298300

299301
| Category | Role |
300302
| --- | --- |
301303
| `file` | Direct uploads |
302304
| `external` | Externals connections (GitHub, Jira, Notion, …) — not “integration” |
303305

304-
Removed: `vcs`, `url`. VCS attaches as **external**.
306+
Removed: `vcs`, `url`. VCS attaches as **external**. Retired: `@bitcode/attachments-generics` twin-name barrel.
305307

306308
### 3.2.0 VCS
307309

apps/uapi/jest.config.cjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,6 @@ module.exports = {
115115
'^@bitcode/attachment-generics$': '<rootDir>/../../packages/attachment-generics/src/index.ts',
116116
'^@bitcode/generic-attachments-file$': '<rootDir>/../../packages/generic-attachments/file/src/index.ts',
117117
'^@bitcode/generic-attachments-external$': '<rootDir>/../../packages/generic-attachments/external/src/index.ts',
118-
'^@bitcode/attachments-generics$': '<rootDir>/../../packages/attachments-generics/src/index.ts',
119118
'^@bitcode/mcp-generics$': '<rootDir>/../../packages/mcp-generics/src/index.ts',
120119
'^@bitcode/generic-mcps-bitcode$': '<rootDir>/../apps/mcp/src/index.ts',
121120
'^@bitcode/generic-mcps-bitcode$': '<rootDir>/../apps/mcp/src/index.ts',

packages/api/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"type-check": "pnpm run typecheck"
1313
},
1414
"dependencies": {
15-
"@bitcode/attachments-generics": "workspace:*",
15+
"@bitcode/attachment-generics": "workspace:*",
1616
"@bitcode/auth": "workspace:*",
1717
"@bitcode/generic-vcs-bitbucket": "workspace:*",
1818
"@bitcode/conversations": "workspace:*",

packages/api/src/conversations/attachments.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55

66
import { supabaseAdmin } from '@bitcode/supabase';
7-
import { AttachmentReference, AttachmentCategory } from '@bitcode/attachments-generics';
7+
import { AttachmentReference, AttachmentCategory } from '@bitcode/attachment-generics';
88
import { log } from '@bitcode/logger';
99
import * as crypto from 'crypto';
1010

packages/api/src/conversations/messages.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { supabaseAdmin } from '@bitcode/supabase';
77
// Use DB table type for strong alignment with current schema
88
import type { Message } from '@bitcode/orm';
9-
import { AttachmentReference } from '@bitcode/attachments-generics';
9+
import { AttachmentReference } from '@bitcode/attachment-generics';
1010
import { log } from '@bitcode/logger';
1111
import * as crypto from 'crypto';
1212
import {

packages/api/src/routes/conversations.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import * as crypto from 'crypto';
99

1010
import { createAdminClient } from '@bitcode/orm';
11-
import type { AttachmentReference } from '@bitcode/attachments-generics';
12-
import { validateAttachmentCategory } from '@bitcode/attachments-generics';
11+
import type { AttachmentReference } from '@bitcode/attachment-generics';
12+
import { validateAttachmentCategory } from '@bitcode/attachment-generics';
1313
import { createClient } from '@bitcode/supabase/ssr/server';
1414
import { traceRoute } from '@bitcode/observability';
1515
import { createJsonResponse } from '@bitcode/api/responses';

packages/attachment-generics/README.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,22 @@
22

33
**Attachment** primitive contracts — base identity, admitted categories, and references.
44

5-
## Hierarchy
5+
## Hierarchy (core pattern)
66

77
```
8-
@bitcode/attachment-generics # this package (Attachment primitive)
8+
@bitcode/attachment-generics # this package (Attachment primitive)
99
10-
@bitcode/generic-attachments-file # FileAttachment base
11-
@bitcode/generic-attachments-external # ExternalAttachment base (Externals auxillary)
10+
@bitcode/generic-attachments-file # packages/generic-attachments/file
11+
@bitcode/generic-attachments-external # packages/generic-attachments/external
1212
13-
product conversations / API / UI
13+
product (api, conversations, uapi) # import primitive and/or leaf bases
1414
```
1515

16+
Leaf packages under `generic-attachments/` are the correct organizational pattern
17+
for file | external **base implementations**. Prefer leaf imports when you need
18+
`FileAttachment` / `ExternalAttachment`; use this package for
19+
`BaseAttachment`, `AttachmentReference`, and category guards.
20+
1621
## Admitted categories (only)
1722

1823
| Category | Role |
@@ -27,3 +32,4 @@ product conversations / API / UI
2732
- Primitive does not own file MIME tables or provider payloads.
2833
- Bases live under `packages/generic-attachments/{file,external}/`.
2934
- **External** vocabulary aligns with the Externals auxillary (not “integration”).
35+
- Do **not** reintroduce a plural composition barrel (`attachments-generics`); that twin name was retired in favor of primitive + leaves.

packages/attachment-generics/src/index.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
*
44
* Attachment **primitive** — base fields, categories file|external, references.
55
*
6-
* Prefer:
7-
* @bitcode/attachment-generics
8-
* @bitcode/generic-attachments-file
9-
* @bitcode/generic-attachments-external
6+
* Hierarchy (core *generics + generic-* leaves pattern):
7+
* @bitcode/attachment-generics # this package
8+
* @bitcode/generic-attachments-file # file leaf base
9+
* @bitcode/generic-attachments-external # external leaf base
1010
*
11-
* Composition: @bitcode/attachments-generics re-exports this surface + bases.
11+
* Product code imports this package for refs/categories, and leaf packages
12+
* when specializing FileAttachment / ExternalAttachment. There is no plural
13+
* composition barrel package.
1214
*/
1315

1416
export type {

0 commit comments

Comments
 (0)