Skip to content

Prepare for tinycloud 0.3.22: bulk MEDIA imports, --enrich-metadata, Dropbox --recursive (skill floor → 0.3.22) - #31

Merged
kdr merged 2 commits into
mainfrom
prep/0.3.22-bulk-media-imports
Aug 21, 2026
Merged

Prepare for tinycloud 0.3.22: bulk MEDIA imports, --enrich-metadata, Dropbox --recursive (skill floor → 0.3.22)#31
kdr merged 2 commits into
mainfrom
prep/0.3.22-bulk-media-imports

Conversation

@kdr

@kdr kdr commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

tinycloud 0.3.22 (Cloudglue SDK 0.7.28, spec v0.7.21) turns bulk imports from a metadata-collection loader into a general one. Features 46→49; verbs stay 17.

What the skill now teaches

  • import_type decides the cost. An import's kind follows the target collection's type, inferred at create and fixed for its life. A metadata collection still imports source_metadata only (free). Any other type (media-descriptions, entities, rich-transcripts, face-analysis) now imports the media itself, processed like collections addbilled per file, counted against the account's file usage limits, capped at 10000 files/run, resumable with an append rerun after a credit stop. Feature library.collections.imports.media.v1.
    The skill gets this as a cost table plus an explicit instruction to ask the user before starting a media import and to cap it with --max-files — the summary and data.import.import_type are how an agent tells which kind it just created.
  • --enrich-metadata / --no-enrich-metadata (feature library.collections.imports.enrich.v1) — backfills fields the connector listing omits: Gong parties + Call Spotlight (re-embedded, so the content becomes searchable) and Dropbox media_info duration/dimensions. Metadata-import only; it and --thumbnails are a clean upstream 400 on a media import.
  • --recursive (feature library.connectors.recursive.v1) on connectors files and as a recursive filter-set key on imports create — walks a whole Dropbox subtree under --path instead of its direct children, so a tree is one recursive pass rather than one pass per folder. On the wire it's the string "true"/"false".

Floor raise

tinycloud-skill.json min_version / supported_range / skill_version0.3.22, required_features +library.collections.imports.media.v1 +library.collections.imports.enrich.v1, with preflight.sh MIN_VERSION and REQUIRED_FEATURES kept byte-identical (CI diffs them).

library.connectors.recursive.v1 is deliberately not in required_features — connector-capability ids are excluded there by convention, the same way library.connectors.iconik.v1 and .refresh.v1 were handled at the 0.3.15 floor raise.

Also in here

.claude-plugin/plugin.json and marketplace.json → 0.3.22. These had drifted: both were still on 0.3.19 because the 0.3.20 and 0.3.21 releases skipped the bump, and no CI job checks them. Worth deciding whether to add a check — happy to do it in a follow-up rather than widen this PR.

Verification

Gate Result
npm test 42 pass / 0 fail
TINYCLOUD_TEST_TARBALL=… npm test (real 0.3.22 tarball) 42 pass / 0 fail
shellcheck install.sh scripts/smoke-test.sh …/preflight.sh clean
EXPECTED_VERSION=0.3.22 bash scripts/smoke-test.sh all smoke tests passed
CI plugin/skill metadata — all 3 checks run locally JSON valid · preflight↔manifest parity (37 features in sync, >=0.3.22 <0.4.0) · frontmatter
preflight.sh vs the 0.3.22 binary exit 13 — compatible, credentials missing
All 37 required features present on 0.3.22 missing: none

The binary-side behavior these docs describe was verified live against an account with 9 active connectors: a media import ingested a real Dropbox file (files_imported: 1), and --enrich-metadata backfilled media_info on 5 records that the raw connector listing returns as null.

…Dropbox --recursive (skill floor → 0.3.22)

tinycloud 0.3.22 (SDK 0.7.28, spec v0.7.21) turns bulk imports from a
metadata-collection loader into a general one (features 46→49; verbs stay
17):

- An import's `import_type` follows the TARGET COLLECTION's type, inferred
  at create and fixed for its life. A `metadata` collection still imports
  source_metadata only (free); any other type (media-descriptions,
  entities, rich-transcripts, face-analysis) now imports the MEDIA itself,
  processed like `collections add` — BILLED PER FILE and counted against
  the account's file usage limits, capped at 10000 files/run whatever
  --max-files says, resumable with an `append` rerun after a credit/limit
  stop (feature library.collections.imports.media.v1). Summaries name the
  kind and a media create/run carries an explicit billing warning, so the
  skill teaches agents to ask the user first and cap with --max-files.
- --enrich-metadata / --no-enrich-metadata (feature
  library.collections.imports.enrich.v1) backfills fields the connector
  listing omits — Gong parties + Call Spotlight (re-embedded, so the
  content becomes searchable) and Dropbox media_info duration/dimensions.
  Metadata-import only; it and --thumbnails are a 400 on a media import.
- --recursive (feature library.connectors.recursive.v1) on `connectors
  files`, and a `recursive` filter-set key on `imports create`, walk a whole
  Dropbox subtree under --path instead of its direct children. On the wire
  it is the STRING "true"/"false".

Because the skill teaches the media-import cost model and the new flags,
the floor rises to 0.3.22: tinycloud-skill.json
min_version/supported_range/skill_version → 0.3.22 and required_features
+library.collections.imports.media.v1 +library.collections.imports.enrich.v1
(connector-capability ids stay out of the list, as with iconik/refresh),
with preflight.sh kept byte-identical. SKILL.md and reference/verbs.md gain
the import_type cost table, the metadata-only-flag rule, and --recursive.
Plugin/marketplace metadata moves to 0.3.22 (it had lagged at 0.3.19 since
the 0.3.20 and 0.3.21 releases skipped the bump).

Merge gate unchanged: the live CDN still serves 0.3.21, so this PR merges
only once `channels.stable` = 0.3.22 — preflight against the current CDN
binary correctly exits 11 (below floor) until then.

Verified: npm test 42/42, and 42/42 again against a real 0.3.22 tarball via
TINYCLOUD_TEST_TARBALL; shellcheck clean; all three CI plugin/skill metadata
checks pass locally; smoke-test.sh green against the 0.3.22 binary
(EXPECTED_VERSION=0.3.22); preflight exits 13 on 0.3.22 (compatible, no
creds) and 11 on 0.3.21.
@kdr
kdr requested a review from amyxst August 20, 2026 17:53
@cursor

cursor Bot commented Aug 20, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Docs, skill metadata, and version pins only—no launcher or binary logic. Residual risk is agents following the new billing guidance incorrectly, not a code-path change.

Overview
Raises the skill/package floor to 0.3.22 so agents teach tinycloud’s new bulk-import cost model (SDK 0.7.28). package.json, plugin/marketplace metadata, tinycloud-skill.json, and preflight.sh now require >=0.3.22 plus library.collections.imports.media.v1 and library.collections.imports.enrich.v1.

Skill docs (SKILL.md, verbs.md, CLAUDE.md) stop treating library imports as metadata-only. import_type follows the target collection: metadata stays free source-metadata indexing; any other type ingests media, billed per file, with a 10k-file cap, resume-via-append, and an explicit “ask the user first” instruction.

Also documents --enrich-metadata (Gong/Dropbox backfill, metadata-import only) and Dropbox --recursive on connectors files / import filters (string "true"/"false"). Plugin JSON jumps from 0.3.19 to 0.3.22 to catch skipped bumps.

Reviewed by Cursor Bugbot for commit adca09f. Bugbot is set up for automated code reviews on this repo. Configure here.

@kdr
kdr merged commit c559020 into main Aug 21, 2026
7 checks passed
@kdr
kdr deleted the prep/0.3.22-bulk-media-imports branch August 21, 2026 00:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants