Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
556 commits
Select commit Hold shift + click to select a range
1f4db92
fix(sdk-codemod): tighten rename-bin regex and clarify .gitignore note
toiroakr Jun 25, 2026
558708b
fix(codemod): guard body rename against shadowed local declarations
toiroakr Jun 25, 2026
2a9308d
fix(codemod): use byte-range scope tracking for shadow detection
toiroakr Jun 25, 2026
26ace2c
fix(codemod): include for_statement in scope boundary detection
toiroakr Jun 25, 2026
ddec773
fix(codemod): detect parameter and for-of binding shadows in wait-poi…
toiroakr Jun 25, 2026
ebbdd40
Merge pull request #1536 from tailor-platform/chore/remove-tsx
dqn Jun 26, 2026
6f98aaf
fix(codemod): rename object-literal shorthands and detect destructuri…
toiroakr Jun 26, 2026
955b433
fix(codemod): detect optional parameters and fix off-by-one in scope …
toiroakr Jun 26, 2026
d3ec788
Merge pull request #1563 from tailor-platform/refactor/tailor-env-vars
toiroakr Jun 26, 2026
088fc9e
Merge pull request #1559 from tailor-platform/refactor/auth-attribute…
toiroakr Jun 26, 2026
cdfa2c7
fix(sdk-codemod): add rename-bin build entry, fix npx form, update sy…
toiroakr Jun 26, 2026
02d9388
Merge remote-tracking branch 'origin/v2' into chore/rename-bin
toiroakr Jun 26, 2026
965c81b
fix(sdk-codemod): extend package-runner rewrite to pnpm dlx, yarn dlx…
toiroakr Jun 26, 2026
e1b2fa0
docs(sdk): add cd example-app step before workspace creation in quick…
toiroakr Jun 26, 2026
11be4c7
docs(sdk-codemod): note secrets-state.json migration in rename-bin v2…
toiroakr Jun 26, 2026
4049e86
fix(sdk): update postinstall message and add lock file rename to v2 m…
toiroakr Jun 26, 2026
d1fc5c5
docs(sdk-codemod): simplify migration guide to mv .tailor-sdk .tailor
toiroakr Jun 26, 2026
266203c
test(sdk-codemod): add tailor-sdk-skills boundary fixture to no-match
toiroakr Jun 26, 2026
b216c23
fix(sdk-codemod): rewrite version-qualified tailor-sdk refs to @tailo…
toiroakr Jun 26, 2026
1b7336f
fix(sdk-codemod): match runner flags in PKG_RUNNER_RE for correct pac…
toiroakr Jun 26, 2026
20c2295
Merge pull request #1557 from tailor-platform/chore/rename-bin
dqn Jun 26, 2026
579cb47
fix(sdk-codemod): apply v2 codemods to prerelease targets
dqn Jun 26, 2026
0cdfc5d
fix(sdk-codemod): honor prerelease codemod boundaries
dqn Jun 26, 2026
3a0b36f
fix(sdk-codemod): avoid repeated prerelease migrations
dqn Jun 26, 2026
13e5b2c
fix(sdk-codemod): split auth invoker prerelease migration
dqn Jun 26, 2026
6190c49
fix(sdk-codemod): narrow auth invoker review signal
dqn Jun 26, 2026
1bebbd3
fix(sdk-codemod): complete auth invoker manifest
dqn Jun 26, 2026
7711058
fix(sdk-codemod): suppress superseded review prompts
dqn Jun 26, 2026
f831bc0
fix(sdk-codemod): include shipped prerelease migrations
dqn Jun 26, 2026
a4ea4c1
fix(sdk-codemod): keep unpublished migrations stable-only
dqn Jun 26, 2026
5fa1d21
test(sdk-codemod): cover prerelease to stable migrations
dqn Jun 26, 2026
b88f6a2
fix(sdk-codemod): scan source files for rename bin
dqn Jun 26, 2026
02e77cb
test(sdk-codemod): cover rename bin source globs
dqn Jun 26, 2026
4956175
fix(sdk-codemod): scan source files for cli rename
dqn Jun 26, 2026
59ef383
chore: merge origin/v2 into chore/rename-define
toiroakr Jun 26, 2026
c7b684d
Merge pull request #1556 from tailor-platform/chore/rename-define
toiroakr Jun 26, 2026
d214c75
fix(sdk-codemod): handle tokenized cli source strings
dqn Jun 26, 2026
f6dbd62
fix(sdk-codemod): preserve source cli payloads
dqn Jun 27, 2026
8a08e71
fix(sdk-codemod): preserve cli global option values
dqn Jun 27, 2026
b8b48a3
fix: detect runtime globals in JavaScript codemod targets
dqn Jun 27, 2026
79780bc
fix(codemod): migrate generated output ignore entries
dqn Jun 27, 2026
7faff07
fix(sdk-codemod): report codemod runner identity
dqn Jun 27, 2026
006a588
feat: add runtime idp wrapper codemod
dqn Jun 27, 2026
1c1ca49
fix: report precise principal-unify review findings
dqn Jun 27, 2026
3628e3a
refactor: keep codemod review detectors script-local
dqn Jun 27, 2026
7d2e3cb
fix: cover runtime globals in codemod string scans
dqn Jun 27, 2026
bed65f3
fix(sdk-codemod): handle escaped cli source strings
dqn Jun 27, 2026
6de71e9
fix: avoid ambiguous runtime idp rewrites
dqn Jun 27, 2026
15a179e
fix: preserve codemod review fallback patterns
dqn Jun 27, 2026
23571da
fix: flag aliased runtime globals in codemod strings
dqn Jun 27, 2026
5001c03
fix: guard runtime idp codemod cases
dqn Jun 27, 2026
ae2cb91
fix: isolate codemod source-string matches
dqn Jun 27, 2026
dab1588
fix: detect aliased nullable principal review sites
dqn Jun 27, 2026
613967d
fix(sdk-codemod): handle package runner cli strings
dqn Jun 27, 2026
52c1077
fix: preserve runtime idp review signals
dqn Jun 27, 2026
06e312c
fix: scope nullable principal review aliases
dqn Jun 27, 2026
3749ecf
fix: detect destructured principal helper adapters
dqn Jun 27, 2026
bd95409
fix: guard runtime idp local bindings
dqn Jun 27, 2026
2d0976f
fix(sdk-codemod): parse js cli sources as tsx
dqn Jun 27, 2026
6796890
fix: flag runtime globals in codemod type strings
dqn Jun 27, 2026
8cb0976
fix: detect direct nullable principal arguments
dqn Jun 27, 2026
6199f91
fix: guard runtime idp import aliases
dqn Jun 27, 2026
869a9a2
fix: handle escaped codemod source strings
dqn Jun 27, 2026
ee2dc3d
fix(sdk-codemod): avoid source data cli false positives
dqn Jun 27, 2026
9e0b2bc
fix: track principal caller aliases precisely
dqn Jun 27, 2026
bc938d8
fix(sdk-codemod): protect template cli values
dqn Jun 27, 2026
1c0fbe8
fix: skip safe parse invoker review findings
dqn Jun 27, 2026
cd28035
fix(sdk-codemod): preserve package runner payloads
dqn Jun 27, 2026
b12d2aa
fix(sdk-codemod): keep template boundaries protected
dqn Jun 27, 2026
284cda9
fix(sdk-codemod): preserve wrapped package runners
dqn Jun 27, 2026
82d70b4
fix(sdk-codemod): preserve ambiguous runner args
dqn Jun 27, 2026
c20a7ce
chore: merge v2 into parser schema strict
dqn Jun 27, 2026
b90b92d
refactor(sdk-codemod): narrow rename-bin source migration
dqn Jun 27, 2026
4f8aaf2
fix(sdk-codemod): cover source binary edge cases
dqn Jun 27, 2026
5b4d2f3
fix(sdk-codemod): preserve package runner source args
dqn Jun 27, 2026
8010ae2
fix(sdk-codemod): handle package runner option layouts
dqn Jun 27, 2026
6ccf317
fix(sdk-codemod): avoid silent source command misses
dqn Jun 27, 2026
d3861e9
refactor(sdk-codemod): limit source package runner rewrites
dqn Jun 27, 2026
00ed50b
fix(sdk-codemod): keep source runner rewrites conservative
dqn Jun 27, 2026
a8844d5
fix(sdk-codemod): handle source package runners safely
dqn Jun 27, 2026
109f8b1
fix(sdk-codemod): preserve argv command values
dqn Jun 27, 2026
534c3f7
fix(sdk-codemod): handle dynamic package runners
dqn Jun 27, 2026
f8c7525
fix(sdk-codemod): support runner option variants
dqn Jun 27, 2026
558c0e1
fix(sdk-codemod): preserve template runner context
dqn Jun 27, 2026
a82d7d0
fix(sdk-codemod): avoid runner residual false positives
dqn Jun 27, 2026
a46eefd
fix(sdk-codemod): scope source residual checks
dqn Jun 27, 2026
fa96526
fix(sdk-codemod): keep runner package positions
dqn Jun 27, 2026
e0ee1e0
fix(sdk-codemod): handle dynamic shell continuations
dqn Jun 27, 2026
7ceee0c
fix(sdk-codemod): limit value guards to tailor args
dqn Jun 27, 2026
e728ad3
fix(sdk-codemod): preserve residual value context
dqn Jun 27, 2026
9d15fe8
fix(sdk-codemod): scope quoted value protection
dqn Jun 27, 2026
5fe2121
fix(sdk-codemod): preserve dynamic runner edge cases
dqn Jun 27, 2026
32d50f4
fix(sdk-codemod): preserve npx profile values
dqn Jun 27, 2026
58a4f0e
fix(sdk-codemod): preserve template cli values
dqn Jun 27, 2026
a1e0389
fix(sdk-codemod): handle source package flag edges
dqn Jun 27, 2026
d3216d8
fix(sdk-codemod): preserve package runner arguments
dqn Jun 27, 2026
2af0de8
fix(sdk-codemod): preserve template value arguments
dqn Jun 27, 2026
3e712f2
fix(sdk-codemod): guard source command rewrites
dqn Jun 27, 2026
100611a
fix(sdk-codemod): handle quoted runner packages
dqn Jun 27, 2026
33a3518
fix(sdk-codemod): keep array runner commands moving
dqn Jun 27, 2026
7eb94ad
fix(sdk-codemod): warn on split legacy argv
dqn Jun 27, 2026
f599db8
fix(sdk-codemod): warn on source command residuals
dqn Jun 27, 2026
1a28efc
fix(sdk-codemod): handle npm exec package flags
dqn Jun 27, 2026
1772e81
fix(sdk-codemod): avoid unsafe source binary rewrites
dqn Jun 27, 2026
899af08
fix(sdk-codemod): scope source residual warnings
dqn Jun 27, 2026
0f68461
fix(sdk-codemod): tighten source command detection
dqn Jun 27, 2026
9c8c71b
fix(sdk-codemod): preserve ambiguous source commands
dqn Jun 27, 2026
305fe76
chore: enforce explicit zod object policies via lint
dqn Jun 27, 2026
7b8515d
chore: annotate or strict-ify every zod object schema
dqn Jun 27, 2026
b9045a0
fix(sdk-codemod): handle shim source commands
dqn Jun 27, 2026
d0b4d63
fix(sdk-codemod): guard package flag source values
dqn Jun 27, 2026
b524446
fix(sdk-codemod): preserve literal replacements
dqn Jun 27, 2026
68d0764
fix(sdk-codemod): warn on variable source binaries
dqn Jun 27, 2026
c8c3e70
fix(sdk-codemod): preserve npm workspace exec runners
dqn Jun 27, 2026
b789597
fix(sdk-codemod): keep source argv aliases safe
dqn Jun 27, 2026
45a0e0d
fix(sdk-codemod): keep source runner aliases safe
dqn Jun 27, 2026
42339c3
fix(sdk-codemod): scope source alias rewrites
dqn Jun 27, 2026
a83c8ce
fix(sdk-codemod): preserve aliased cli values
dqn Jun 27, 2026
fe122e0
fix(sdk-codemod): avoid cross-scope source aliases
dqn Jun 27, 2026
beaa43c
fix(sdk-codemod): resolve scoped source residuals
dqn Jun 27, 2026
8886157
fix(sdk-codemod): warn on hidden source argv
dqn Jun 27, 2026
3f14945
fix(sdk-codemod): keep legacy package runners visible
dqn Jun 27, 2026
3921235
fix(sdk-codemod): guard source option residuals
dqn Jun 27, 2026
dbd052a
fix: reduce duplicate codemod review work
dqn Jun 29, 2026
e3cb1ad
fix(sdk-codemod): assert prerelease registry boundaries
dqn Jun 29, 2026
a473451
Merge pull request #1578 from tailor-platform/fix/v2-codemod-prerelea…
dqn Jun 29, 2026
6fb5354
chore: merge v2 into principal review output
dqn Jun 29, 2026
325284c
Merge remote-tracking branch 'origin/v2' into feat/runtime-wrapper-co…
dqn Jun 29, 2026
74d6871
Merge remote-tracking branch 'origin/v2' into fix/v2-runtime-global-d…
dqn Jun 29, 2026
299a569
Merge pull request #1581 from tailor-platform/fix/tailor-ignore-migra…
toiroakr Jun 29, 2026
425616e
Merge pull request #1584 from tailor-platform/docs/codemod-prerelease…
toiroakr Jun 29, 2026
ff17f3f
Merge remote-tracking branch 'origin/v2' into fix/principal-unify-rev…
dqn Jun 29, 2026
411833b
Merge pull request #1585 from tailor-platform/fix/principal-unify-rev…
dqn Jun 29, 2026
0a35b03
chore: merge v2 into codemod runtime global coverage
dqn Jun 29, 2026
de1b909
fix(sdk-codemod): allow aliased idp migrations with local idp
dqn Jun 29, 2026
6ec3615
fix: tighten schema parsing review gaps
dqn Jun 29, 2026
0f245cb
Merge pull request #1582 from tailor-platform/fix/v2-runtime-global-d…
toiroakr Jun 29, 2026
5f6faf7
Merge remote-tracking branch 'origin/v2' into fix/v2-rename-bin-sourc…
dqn Jun 29, 2026
144f3e3
fix(sdk-codemod): fix principal-unify review findings
dqn Jun 29, 2026
f536ce0
test(sdk-codemod): cover aliased helper review findings
dqn Jun 29, 2026
d4fc475
Merge remote-tracking branch 'origin/v2' into feat/runtime-wrapper-co…
dqn Jun 29, 2026
b636f63
Merge remote-tracking branch 'origin/v2' into fix/v2-rename-bin-sourc…
dqn Jun 29, 2026
71cef78
Merge pull request #1583 from tailor-platform/feat/runtime-wrapper-co…
toiroakr Jun 29, 2026
095674e
fix(sdk): strip branded parser helpers consistently
dqn Jun 29, 2026
29533ec
Merge pull request #1601 from tailor-platform/fix/principal-unify-rev…
toiroakr Jun 29, 2026
8976f07
fix(sdk): reject resolver helper keys
dqn Jun 30, 2026
768ba69
fix(sdk-codemod): handle escaped quote backslashes
dqn Jun 30, 2026
3f7ab98
Merge pull request #1599 from tailor-platform/fix/v2-rename-bin-sourc…
toiroakr Jul 1, 2026
e6903b4
refactor(sdk): simplify branded parser strip helpers
dqn Jul 1, 2026
3092e52
Merge pull request #1529 from tailor-platform/refactor/parser-schema-…
dqn Jul 1, 2026
1e3e8f7
Merge remote-tracking branch 'origin/v2' into chore/strict-zod-objects
dqn Jul 1, 2026
1ec1bcc
Merge pull request #1589 from tailor-platform/chore/strict-zod-objects
toiroakr Jul 1, 2026
a885dd1
Merge remote-tracking branch 'origin/main' into v2
toiroakr Jul 1, 2026
1d71a52
feat!: stop importing tailorctl config
dqn Jul 1, 2026
f1a33eb
chore: merge origin/main into v2
dqn Jul 1, 2026
0fe8bad
feat: remove deprecated auth connection token helper
dqn Jul 1, 2026
7616638
docs: add auth token helper migration guidance
dqn Jul 1, 2026
17f9490
fix: broaden auth token helper migration coverage
dqn Jul 1, 2026
1e9862e
feat: add auth connection token codemod
dqn Jul 1, 2026
d2ab4d9
fix: avoid shadowed authconnection codemod rewrites
dqn Jul 1, 2026
6b0cef2
fix: skip shadowed auth token codemod calls
dqn Jul 1, 2026
a6b1569
fix: preserve codemod string newlines
dqn Jul 1, 2026
4b9c6b8
fix: scope auth token codemod shadow checks
dqn Jul 1, 2026
3f7b729
fix: handle loop and var auth token shadows
dqn Jul 1, 2026
5826f62
fix: preserve auth refs in codemod defaults
dqn Jul 1, 2026
a4b2c51
fix: group auth token codemod import removals
dqn Jul 1, 2026
4a47d21
fix: treat type-only runtime imports as codemod collisions
dqn Jul 1, 2026
ed8b02f
fix: flag auth token codemod member references
dqn Jul 1, 2026
9ee0d56
fix: respect named auth token codemod expressions
dqn Jul 1, 2026
589a7bb
fix: respect exported auth token codemod shadows
dqn Jul 1, 2026
9b7715b
fix: surface auth token codemod leftovers
dqn Jul 1, 2026
5132452
fix: handle auth token codemod import collisions
dqn Jul 1, 2026
54cad2f
fix: respect wrapped auth token receivers
dqn Jul 1, 2026
300bcf8
fix: flag namespace auth token references
dqn Jul 1, 2026
935bed2
fix: flag computed auth token references
dqn Jul 1, 2026
5a95832
fix: respect class auth token shadows
dqn Jul 1, 2026
864934a
fix: respect auth token parameter scope
dqn Jul 1, 2026
0f7a519
fix: ignore auth token parameter types
dqn Jul 1, 2026
9c3e841
fix: flag auth token require references
dqn Jul 2, 2026
7a1b86a
fix: handle auth token import edge cases
dqn Jul 2, 2026
293cb06
fix: handle auth token require and using scopes
dqn Jul 2, 2026
77b37d6
docs: cover auth token non-call migration
dqn Jul 2, 2026
f928b36
fix: catch auth token destructuring gaps
dqn Jul 2, 2026
c37ffc6
fix: flag defaulted auth token destructures
dqn Jul 2, 2026
7797923
fix: review nonstandard auth token exports
dqn Jul 2, 2026
7bdbce6
fix: track derived auth token config aliases
dqn Jul 2, 2026
afbcb6b
fix: parse js self-closing jsx in auth token codemod
dqn Jul 2, 2026
8f80043
fix: catch auth token jsx fragments and parameter destructures
dqn Jul 2, 2026
7bd70fa
refactor: simplify auth token codemod scope
dqn Jul 2, 2026
fbc83e1
test: update ERD workflow CLI expectation
dqn Jul 2, 2026
a0bc8e7
fix(sdk): validate user profile type schema
dqn Jul 2, 2026
9752bc4
test(sdk): cover invalid user profile type fields
dqn Jul 2, 2026
c25b081
test(sdk): align ERD preview workflow command
dqn Jul 2, 2026
d67eb41
feat(sdk): tighten Tailor field string types
dqn Jul 2, 2026
861b882
refactor(sdk): share field date validation
dqn Jul 2, 2026
912cbdf
fix(sdk): preserve cloned DB field output types
dqn Jul 2, 2026
9762a29
fix(sdk): preserve enum object clone output types
dqn Jul 2, 2026
29f4d77
fix(sdk): keep array clone guards conservative
dqn Jul 2, 2026
0db61d7
docs(sdk): show datetime offset format
dqn Jul 2, 2026
cb14f20
test(sdk): align validation fixtures with v2
dqn Jul 2, 2026
42b4108
Merge pull request #1620 from tailor-platform/chore/remove-tailorctl
toiroakr Jul 2, 2026
c33a8d6
fix(sdk): preserve user profile type input
dqn Jul 2, 2026
b71c5d8
fix: handle auth connection token codemod edge cases
dqn Jul 2, 2026
2f76418
refactor: share codemod ast-grep helpers
dqn Jul 2, 2026
07ff0e0
fix: preserve value imports for codemod runtime helpers
dqn Jul 2, 2026
31ed593
fix(sdk): keep date validation shape-only
dqn Jul 2, 2026
6616674
chore: add sdk-codemod changeset
dqn Jul 2, 2026
2e74fe8
Merge remote-tracking branch 'origin/v2' into perf/tailortots-templat…
dqn Jul 2, 2026
1cb6716
test(sdk): align CI fixtures with current types
dqn Jul 2, 2026
eddd234
feat(sdk): propagate strict field scalar types
dqn Jul 3, 2026
23c062d
test(sdk): assert strict scalar exports directly
dqn Jul 3, 2026
672aaaf
fix(sdk): preserve auth scalar attribute types
dqn Jul 3, 2026
232f1d4
Merge pull request #1622 from tailor-platform/refactor/remove-auth-co…
toiroakr Jul 3, 2026
31d0812
fix(sdk): reject unbranded user profile type keys
dqn Jul 3, 2026
43ec804
test(example): expect uuid resolver input as ID
dqn Jul 3, 2026
1e9f410
Merge pull request #1629 from tailor-platform/fix/user-profile-type-s…
toiroakr Jul 3, 2026
52d2593
feat(sdk): add scalar string helpers
dqn Jul 3, 2026
81e2ce8
fix(codemod): preserve runtime helper imports
dqn Jul 3, 2026
a77eddb
Merge pull request #1639 from tailor-platform/refactor/extract-codemo…
toiroakr Jul 3, 2026
f0d5d39
fix: tighten scalar and type helpers
dqn Jul 3, 2026
1396639
chore: merge v2 into perf/tailortots-template-types
dqn Jul 3, 2026
05a2c3d
Merge remote-tracking branch 'origin/main' into v2
toiroakr Jul 3, 2026
52891ed
Merge remote-tracking branch 'origin/v2' into v2
toiroakr Jul 3, 2026
add4c01
Merge remote-tracking branch 'origin/main' into v2
toiroakr Jul 3, 2026
1e34d7a
feat(cli): add plugin dispatch with shared auth
toiroakr Jun 25, 2026
652eb2b
Merge branch 'v2' into feat/cli-plugin
toiroakr Jul 3, 2026
c9f0b8f
chore: merge v2 into perf/tailortots-template-types
dqn Jul 3, 2026
67ee736
Merge pull request #1640 from tailor-platform/perf/tailortots-templat…
toiroakr Jul 3, 2026
2fb79c6
fix(cli): resolve plugin platform context and harden Windows dispatch
toiroakr Jul 3, 2026
7fed5b0
fix(cli): guard plugin name traversal and cover Windows dispatch in CI
toiroakr Jul 6, 2026
c37907c
test: normalize vitest include paths to forward slashes for Windows
toiroakr Jul 6, 2026
7758b00
test: run CLI plugin tests in a dedicated vitest project
toiroakr Jul 6, 2026
5f2a9a0
Merge pull request #1501 from tailor-platform/feat/cli-plugin
dqn Jul 6, 2026
4b90435
feat(codemod): add v2 strict scalar strings migration entry
dqn Jul 6, 2026
3d3f54e
fix(codemod): surface strict scalar guidance project-wide
dqn Jul 6, 2026
bc2ca50
Merge pull request #1665 from tailor-platform/feat/strict-scalar-codemod
toiroakr Jul 6, 2026
c58073b
Merge remote-tracking branch 'origin/main' into v2
toiroakr Jul 6, 2026
e0e768d
feat(tailordb): aggregate hooks and validators into type-level scripts
toiroakr Jun 17, 2026
077a6a3
fix(tailordb): keep field create-hook placeholder so type-level hooks…
toiroakr Jun 17, 2026
9ffc3fb
feat(tailordb): add default value support and use optionalOnCreate pr…
toiroakr Jun 30, 2026
7189ba2
chore: run generate
tailor-platform-pr-trigger[bot] Jun 30, 2026
890c6d0
feat(tailordb): add type-level validate with issues() API and simplif…
toiroakr Jul 1, 2026
aa5f504
refactor(tailordb): redesign type-level hooks from per-field mapping …
toiroakr Jul 6, 2026
3ebff9c
refactor(tailordb): replace input/oldRecord with typed oldValue in fi…
toiroakr Jul 6, 2026
0ee32bd
refactor(tailordb): simplify field validate API and remove record-syn…
toiroakr Jul 6, 2026
0274a7b
fix(kysely): include default values in Generated<> wrapping
toiroakr Jul 6, 2026
50c47bd
refactor(template): use .default(0) instead of optional for computed …
toiroakr Jul 6, 2026
47decd9
chore(codemod): add migration entries for TailorDB validate/hook API …
toiroakr Jul 6, 2026
42a5284
docs(tailordb): update hooks and validation docs for new API and shar…
toiroakr Jul 6, 2026
7f2fce9
test(tailordb): assert shared now timestamp between field-level and t…
toiroakr Jul 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .agents/rules/schema-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ modules** — files named `types.ts` (or `*.types.ts` under `configure/`):
| `parser/service/tailordb/types.ts` | Parsed data structures (`TailorDBType`, `ParsedField`, permissions, ...) |
| `parser/service/idp/types.ts` | Normalized IdP permission types shared by parser and CLI |
| `plugin/types.ts` | Plugin authoring types, generation hook contexts, generator config |
| `runtime/types.ts` | Runtime principal/env types (`TailorUser`, `TailorActor`, `TailorEnv`) |
| `runtime/types.ts` | Runtime principal/env types (`TailorPrincipal`, `TailorEnv`) |

Rules for pure type modules (enforced by oxlint):

Expand Down
15 changes: 15 additions & 0 deletions .agents/rules/sdk-internals.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# SDK Internals

## API Naming: `define*` vs `create*`

Public functions in `src/configure/` follow a strict naming convention.

| Prefix | Meaning | Output | Where used |
| --------- | --------------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| `define*` | Declarative resource specification | Pure data/config struct (no SDK-managed runtime methods) | `tailor.config.ts` as resource entries |
| `create*` | Instantiation of a runtime-capable unit | Object with runtime-capable methods (`trigger`, `wait`, `resolve`) or user-written `body` function | Standalone files as default/named exports, or inside workflow job bodies |

**`define*` examples:** `defineConfig`, `defineAuth`, `defineIdp`, `defineStaticWebSite`, `defineAIGateway`, `defineSecretManager`, `definePlugins`

**`create*` examples:** `createResolver`, `createExecutor`, `createWorkflow`, `createWorkflowJob`, `createWaitPoint`, `createWaitPoints`, `createHttpAdapter`

Decision rule: if the result has a method that calls the platform at runtime (`.trigger()`, `.wait()`, `.resolve()`, etc.) or carries a user-written `body` function, use `create*`. If the result is purely a typed config object that tooling/deployer reads, use `define*`.

## Module Architecture and Import Rules

The SDK enforces strict module boundaries to maintain a clean architecture:
Expand Down
22 changes: 11 additions & 11 deletions .agents/skills/e2e-setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: e2e-setup
description: >
Set up the environment and run e2e tests in this repo (`example/e2e` and `packages/sdk/e2e`).
Covers tailor-sdk authentication, workspace selection, and re-deploying `example/` when
Covers tailor authentication, workspace selection, and re-deploying `example/` when
the deployed app drifts from the current code. Use when running e2e tests locally, fixing
e2e failures, or when a run errors with "Failed to refresh token", "Workspace ID not found",
or mismatched counts/fields in resolver/workflow assertions.
Expand Down Expand Up @@ -50,7 +50,7 @@ set -a; source .agents/skills/e2e-setup/ids.local.env; set +a
**Sanity check on `TAILOR_PLATFORM_WORKSPACE_ID`.** Before running `example/e2e`, confirm the workspace still has `my-app` deployed:

```
pnpm exec tailor-sdk workspace app list --workspace-id "$TAILOR_PLATFORM_WORKSPACE_ID"
pnpm exec tailor workspace app list --workspace-id "$TAILOR_PLATFORM_WORKSPACE_ID"
```

If it is gone, re-deploy per [Pre-deploy](#one-time-setup) step 4.
Expand All @@ -63,18 +63,18 @@ The tests assert against the **deployed** state of `example/` (resolver count, w

Only needed when `ids.local.env` has no `TAILOR_PLATFORM_WORKSPACE_ID` yet, or the saved workspace was deleted / no longer hosts `my-app`. Write the resolved workspace ID back to `ids.local.env` when finished.

1. Make sure you are logged in. `tailor-sdk login` opens a browser — **only the user can run it**; the agent must ask. Verify with `pnpm exec tailor-sdk workspace list` (errors with `Tailor Platform token not found.` if unauthenticated).
1. Make sure you are logged in. `tailor login` opens a browser — **only the user can run it**; the agent must ask. Verify with `pnpm exec tailor workspace list` (errors with `Tailor Platform token not found.` if unauthenticated).
2. Look up the organization and folder you want the workspace to live under. The `workspace create` flags below need both IDs:
```
pnpm exec tailor-sdk organization list
pnpm exec tailor-sdk organization folder list --organization-id <org>
pnpm exec tailor organization list
pnpm exec tailor organization folder list --organization-id <org>
# Optional: drill into a sub-folder
pnpm exec tailor-sdk organization folder list --organization-id <org> --parent-folder-id <folder>
pnpm exec tailor organization folder list --organization-id <org> --parent-folder-id <folder>
```
3. Pick or create a personal workspace. Suggested name: `example-e2e` (descriptive of purpose; fall back to a personal prefix only if it collides under the same folder). The agent must not invent a name — use the suggestion or ask the user:
```
pnpm exec tailor-sdk workspace list
pnpm exec tailor-sdk workspace create --name example-e2e --region asia-northeast --organization-id <org> --folder-id <folder>
pnpm exec tailor workspace list
pnpm exec tailor workspace create --name example-e2e --region asia-northeast --organization-id <org> --folder-id <folder>
```
4. Deploy `example/` into it once:
```
Expand All @@ -83,7 +83,7 @@ Only needed when `ids.local.env` has no `TAILOR_PLATFORM_WORKSPACE_ID` yet, or t
Use `run deploy`, not bare `deploy` — pnpm has a builtin `deploy` command that shadows the package script when invoked via `--filter`.
5. Confirm `my-app` is present:
```
pnpm exec tailor-sdk workspace app list --workspace-id <id>
pnpm exec tailor workspace app list --workspace-id <id>
```

Optionally save the workspace as a profile (`~/.config/tailor-platform/config.yaml`) so `TAILOR_PLATFORM_PROFILE=<name>` alone is enough.
Expand Down Expand Up @@ -134,9 +134,9 @@ The script uses `loadAccessToken()` so it works with keyring/config credentials

| Error | Cause | Fix |
| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
| `Failed to refresh token. Your session may have expired.` | The refresh token in `~/.config/tailor-platform/config.yaml` is expired. | `pnpm exec tailor-sdk login` (interactive; only the user can run this — the agent should ask). |
| `Failed to refresh token. Your session may have expired.` | The refresh token in `~/.config/tailor-platform/config.yaml` is expired. | `pnpm exec tailor login` (interactive; only the user can run this — the agent should ask). |
| `Workspace ID not found.` | No `--workspace-id`, no `TAILOR_PLATFORM_WORKSPACE_ID`, no profile set. | Set `TAILOR_PLATFORM_WORKSPACE_ID` or `TAILOR_PLATFORM_PROFILE`. |
| `Application my-app does not have an auth configuration.` / `Machine user manager-machine-user not found.` | Wrong workspace selected, or `example/` was never deployed there. | Confirm with `tailor-sdk workspace app list`; deploy if missing. |
| `Application my-app does not have an auth configuration.` / `Machine user manager-machine-user not found.` | Wrong workspace selected, or `example/` was never deployed there. | Confirm with `tailor workspace app list`; deploy if missing. |
| `TAILOR_PLATFORM_ORGANIZATION_ID` / `..._FOLDER_ID` unset (in `packages/sdk/e2e`) | The suite needs these to create workspaces. | `source .agents/skills/e2e-setup/ids.local.env` (or follow the fallback in [Stored IDs](#stored-ids-idslocalenv) to populate it). |

## When the user reports an e2e failure
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/llm-challenge/CREATING_PROBLEMS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Rules:
- `verify.json`, when present, contains visible minimum-correctness checks only. Checks should encode conditions where missing evidence is definitely wrong, similar to type checking; do not put ideal implementations, hidden answers, scores, or broad quality judgments there.
- Write `prompt.md` in English.
- For `sdk-api`, do not include SDK API names, imports, code examples, or direct solution hints.
- For `cli`, the prompt may name the `tailor-sdk` binary, but must not name the target subcommand or exact arguments.
- For `cli`, the prompt may name the `tailor` binary, but must not name the target subcommand or exact arguments.
- Keep `scaffold/` minimal and runnable enough for the task. Do not add `solution/`, evaluator tests, scoring metadata, or hidden hints.

Validate discovery and focused behavior with narrow tests or a targeted dry run when practical.
1 change: 1 addition & 0 deletions .agents/skills/tailor
1 change: 0 additions & 1 deletion .agents/skills/tailor-sdk

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/apply-deploy-source-strings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Rewrite `tailor-sdk apply` to `tailor-sdk deploy` in source files that contain embedded CLI command strings.
7 changes: 7 additions & 0 deletions .changeset/auth-attributes-rename.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@tailor-platform/sdk": major
"@tailor-platform/create-sdk": patch
"@tailor-platform/sdk-codemod": patch
---

Rename auth attribute module augmentation from `AttributeMap` to `Attributes`.
10 changes: 10 additions & 0 deletions .changeset/cli-plugins.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
"@tailor-platform/sdk": minor
---

Add CLI plugin support (beta). Running `tailor <name>` for an unknown subcommand now executes an external `tailor-<name>` executable found on your PATH or in `node_modules/.bin` (project-local takes precedence), forwarding all following arguments. This also works for unknown subcommands nested under a known command — e.g. `tailor tailordb erd` dispatches to `tailor-tailordb-erd`. Builtins always take precedence, matching stops at the first unknown segment, and a command that takes its own arguments is never replaced by a plugin. The plugin receives the current Tailor Platform context via environment variables (`TAILOR_PLATFORM_TOKEN`, `TAILOR_PLATFORM_URL`, `TAILOR_PLATFORM_OAUTH2_CLIENT_ID`, `TAILOR_PLATFORM_WORKSPACE_ID`, `TAILOR_PLATFORM_USER`, `TAILOR_CONFIG_PATH`, `TAILOR_VERSION`, `TAILOR_BIN`); token, workspace, and user are best-effort, so auth-free plugins still run when you are not logged in.

Also adds:

- `tailor auth token` — print a valid access token (refreshing it if expired) for use by plugins and scripts.
- `tailor plugin list` — list discovered plugins and their executable paths.
5 changes: 5 additions & 0 deletions .changeset/codemod-llm-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Add LLM-assisted review support to the codemod runner. A codemod can declare `suspiciousPatterns` plus a `prompt`; after running, files whose post-transform content still matches a suspicious pattern are reported as `llmReviews` (in the JSON output and on stderr) together with the codemod's migration prompt. This surfaces the cases a deterministic transform cannot safely complete (e.g. a value reached through a variable) so they can be finished with an LLM. The `auth.invoker(...)` codemod adopts this for its non-literal-argument cases.
10 changes: 10 additions & 0 deletions .changeset/codemod-migration-docs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
"@tailor-platform/sdk-codemod": patch
"@tailor-platform/sdk": patch
---

Generate the v2 migration guide (`packages/sdk/docs/migration/v2.md`) from the codemod registry, which is the single source of truth. Each entry renders its name, automation level (Automatic / Partially automatic / Manual), description, optional before/after `examples`, and — for changes the codemods cannot fully migrate on their own — the LLM/manual migration prompt. Run `pnpm codemod:docs:update` to regenerate and `pnpm codemod:docs:check` (wired into `pnpm check`) to verify it is in sync.

`scriptPath` is now optional, so the registry can also describe codemod-less ("manual") migrations that ship only guidance (`examples` / `prompt` / `suspiciousPatterns`) with no automatic transform. A manual entry with a `prompt` but no scoping pattern is surfaced as a project-wide `llmReviews` entry at runtime.

Add a `sdk-codemod list` command that prints every registered rule (id, name, kind, version range).
5 changes: 5 additions & 0 deletions .changeset/codemod-residual-matching.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Reduce false-positive v2 codemod warnings and LLM-review prompts from source comments, string literals, and identifier substring matches.
5 changes: 5 additions & 0 deletions .changeset/codemod-runner-metadata.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Report the codemod runner identity in the JSON summary, including the source checkout commit and local build command when run from a branch build, so prerelease migration validation can distinguish exact npm packages from branch-head behavior.
8 changes: 8 additions & 0 deletions .changeset/execute-script-json-arg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@tailor-platform/sdk": major
"@tailor-platform/sdk-codemod": patch
---

`executeScript` now takes its `arg` as a JSON-serializable value instead of a pre-serialized JSON string. Pass the value directly (e.g. `arg: { a: 1 }`) instead of `arg: JSON.stringify({ a: 1 })`.

Add the `v2/execute-script-arg` codemod, which unwraps `JSON.stringify(...)` passed as the `executeScript` `arg` option. Indirect forms (a stringified value held in a variable, etc.) cannot be rewritten automatically and are surfaced as an LLM-assisted review task with a migration prompt.
5 changes: 5 additions & 0 deletions .changeset/execute-script-review-scope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Reduce noisy `executeScript` LLM-review prompts by flagging files only when unresolved `arg` stringification remains likely.
5 changes: 5 additions & 0 deletions .changeset/fix-rename-bin-source-files.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Apply the v2 `rename-bin` codemod to SDK CLI command strings in TypeScript and JavaScript source files.
5 changes: 5 additions & 0 deletions .changeset/fix-v2-prerelease-codemods.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Run v2 codemods when the target version is a v2 prerelease.
9 changes: 9 additions & 0 deletions .changeset/invoker-option-rename.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@tailor-platform/sdk": major
"@tailor-platform/sdk-codemod": patch
"@tailor-platform/create-sdk": patch
---

Rename resolver, executor, workflow trigger, and typed workflow start machine-user options from `authInvoker` to `invoker`.

Update create-sdk templates and the v2 auth invoker codemod to generate the new `invoker` option.
5 changes: 5 additions & 0 deletions .changeset/keyring-default-storage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk": major
---

Store CLI login tokens in the OS keyring by default when available. If the keyring is unavailable, tokens are stored in the platform config file.
5 changes: 5 additions & 0 deletions .changeset/open-download-review-scope.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Limit the `openDownloadStream` migration review prompt to files that reference deprecated download stream APIs.
5 changes: 5 additions & 0 deletions .changeset/parser-schema-strict.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk": major
---

Reject unknown keys in SDK parser schemas instead of silently dropping them from application definitions.
39 changes: 39 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"mode": "pre",
"tag": "next",
"initialVersions": {
"@tailor-platform/create-sdk": "1.64.0",
"@tailor-platform/sdk": "1.64.0",
"@tailor-platform/sdk-codemod": "0.2.7"
},
"changesets": [
"apply-deploy-source-strings",
"codemod-llm-review",
"codemod-migration-docs",
"codemod-residual-matching",
"execute-script-json-arg",
"execute-script-review-scope",
"invoker-option-rename",
"keyring-default-storage",
"open-download-review-scope",
"principal-followup-review",
"principal-unify-codemod",
"remove-auth-invoker-helper",
"remove-define-generators",
"remove-function-test-run-input-wrapper",
"remove-open-download-stream",
"remove-runtime-globals-compatibility",
"remove-tailor-sdk-skills-shim",
"remove-v2-cli-aliases",
"remove-workflow-test-env-fallback",
"renovate-1516",
"renovate-1525",
"require-function-log-content-hash",
"runtime-globals-import",
"store-cli-users-by-subject",
"tailor-principal-type",
"timestamps-updated-at-create",
"v2-baseline",
"workflow-trigger-dispatch"
]
}
5 changes: 5 additions & 0 deletions .changeset/principal-followup-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Flag files that need project-specific review after the v2 principal migration, including resolver helper adapters and nullable `caller` follow-ups.
5 changes: 5 additions & 0 deletions .changeset/principal-unify-codemod.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": minor
---

Add the `v2/principal-unify` codemod so `tailor-sdk upgrade` can migrate SDK principal APIs to `TailorPrincipal`.
5 changes: 5 additions & 0 deletions .changeset/principal-unify-review-findings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Report precise file-local findings for `principal-unify` review follow-ups, including nullable caller call sites and `context.user` helper adapters.
5 changes: 5 additions & 0 deletions .changeset/principal-unify-review-followup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk-codemod": patch
---

Fix `v2/principal-unify` review findings for nested SDK field parser invoker values and destructured context helper messages.
6 changes: 6 additions & 0 deletions .changeset/remove-auth-connection-token.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@tailor-platform/sdk": major
"@tailor-platform/sdk-codemod": patch
---

Remove the deprecated `auth.getConnectionToken()` helper from values returned by `defineAuth()`. Use `authconnection.getConnectionToken(...)` from `@tailor-platform/sdk/runtime` in resolvers, executors, and workflows instead. The v2 codemod rewrites direct `auth.getConnectionToken(...)` calls when the `auth` binding is imported from `tailor.config`.
5 changes: 5 additions & 0 deletions .changeset/remove-auth-invoker-helper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk": major
---

Remove the deprecated `auth.invoker("<machine-user>")` helper. Pass machine user names directly as `authInvoker` strings in resolver, executor, and workflow APIs.
5 changes: 5 additions & 0 deletions .changeset/remove-define-generators.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk": major
---

Remove `defineGenerators()` and legacy `generators` config support. Use `definePlugins()` with the built-in plugin packages for code generation.
5 changes: 5 additions & 0 deletions .changeset/remove-function-test-run-input-wrapper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk": major
---

Remove support for wrapping `tailor-sdk function test-run --arg` resolver input in an `input` object. Pass resolver input fields directly as the `--arg` JSON value.
8 changes: 8 additions & 0 deletions .changeset/remove-open-download-stream.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@tailor-platform/sdk": major
"@tailor-platform/create-sdk": patch
---

Remove the deprecated `openDownloadStream` file streaming API. Use `downloadStream` for streamed file downloads.

The generated file utilities now emit `downloadFileStream`, which calls `downloadStream` and returns `FileDownloadStreamResponse`, instead of the removed `openFileDownloadStream` helper.
8 changes: 8 additions & 0 deletions .changeset/remove-runtime-globals-compatibility.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@tailor-platform/sdk": major
"@tailor-platform/sdk-codemod": patch
---

Remove the v1 runtime globals compatibility layer. Importing from `@tailor-platform/sdk` no longer activates the ambient `tailor.*` / `tailordb.*` declarations; opt into globals with `@tailor-platform/sdk/runtime/globals` or use the typed wrappers from `@tailor-platform/sdk/runtime`.

The capital-cased `Tailordb.*` namespace is removed. If your project still references `Tailordb.QueryResult`, `Tailordb.CommandType`, `Tailordb.Client`, or `typeof Tailordb.Client`, migrate before upgrading: run `pnpm dlx @tailor-platform/sdk-codemod v2/tailordb-namespace` to rewrite them to lowercase `tailordb.*`, then add `import "@tailor-platform/sdk/runtime/globals"` so the rewritten references resolve.
5 changes: 5 additions & 0 deletions .changeset/remove-tailor-sdk-skills-shim.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@tailor-platform/sdk": major
---

Remove the deprecated `tailor-sdk-skills` binary shim. Use `tailor-sdk skills install` to install the bundled Tailor SDK agent skill.
Loading
Loading