@agent-plan/core 0.2.19 → 0.2.20
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/dist/plan-store.d.ts +4 -0
- package/dist/plan-store.d.ts.map +1 -1
- package/dist/plan-store.js +61 -14
- package/dist/schema.d.ts +52 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +6 -0
- package/package.json +1 -1
package/dist/plan-store.d.ts
CHANGED
|
@@ -117,6 +117,10 @@ export declare class PlanStore {
|
|
|
117
117
|
runBatch<T>(fn: () => Promise<T>): Promise<T>;
|
|
118
118
|
private maybeAutoSync;
|
|
119
119
|
private normalizeTasks;
|
|
120
|
+
/** Stamp description edits independently from generic entity mutations.
|
|
121
|
+
* Legacy entities cannot reveal their historical description-edit time, so
|
|
122
|
+
* their creation time is the earliest truthful fallback. */
|
|
123
|
+
private stampDescriptionUpdatedAt;
|
|
120
124
|
private normalizeFeaturesDocument;
|
|
121
125
|
private normalizePhaseDocument;
|
|
122
126
|
private normalizeStructureSnapshot;
|
package/dist/plan-store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-store.d.ts","sourceRoot":"","sources":["../src/plan-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plan-store.d.ts","sourceRoot":"","sources":["../src/plan-store.ts"],"names":[],"mappings":"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"}
|
package/dist/plan-store.js
CHANGED
|
@@ -518,23 +518,43 @@ export class PlanStore {
|
|
|
518
518
|
normalizeTasks(tasks) {
|
|
519
519
|
// Numbers are a STABLE global sequence (assigned once at create from project.nextTaskNumber).
|
|
520
520
|
// Do NOT renumber here — renumbering would break references after deletions.
|
|
521
|
-
|
|
521
|
+
const normalized = tasks.map((task) => task.description && !task.descriptionUpdatedAt
|
|
522
|
+
? { ...task, descriptionUpdatedAt: task.createdAt }
|
|
523
|
+
: task);
|
|
524
|
+
return { tasks: normalized, changed: normalized.some((task, index) => task !== tasks[index]) };
|
|
525
|
+
}
|
|
526
|
+
/** Stamp description edits independently from generic entity mutations.
|
|
527
|
+
* Legacy entities cannot reveal their historical description-edit time, so
|
|
528
|
+
* their creation time is the earliest truthful fallback. */
|
|
529
|
+
stampDescriptionUpdatedAt(entity, previousDescription, timestamp) {
|
|
530
|
+
if (!entity.description)
|
|
531
|
+
return { ...entity, descriptionUpdatedAt: "" };
|
|
532
|
+
if (previousDescription === undefined || previousDescription !== entity.description) {
|
|
533
|
+
return { ...entity, descriptionUpdatedAt: timestamp };
|
|
534
|
+
}
|
|
535
|
+
return entity.descriptionUpdatedAt ? entity : { ...entity, descriptionUpdatedAt: entity.createdAt };
|
|
522
536
|
}
|
|
523
537
|
normalizeFeaturesDocument(doc) {
|
|
524
538
|
// Numbers are a STABLE global sequence (assigned once at create from project.nextFeatureNumber).
|
|
525
|
-
|
|
539
|
+
const features = doc.features.map((feature) => feature.description && !feature.descriptionUpdatedAt
|
|
540
|
+
? { ...feature, descriptionUpdatedAt: feature.createdAt }
|
|
541
|
+
: feature);
|
|
542
|
+
return { doc: { ...doc, features }, changed: features.some((feature, index) => feature !== doc.features[index]) };
|
|
526
543
|
}
|
|
527
544
|
normalizePhaseDocument(phase) {
|
|
528
545
|
const { tasks, changed } = this.normalizeTasks(phase.tasks);
|
|
529
546
|
const nextTaskIds = tasks.map((task) => task.id);
|
|
530
547
|
const taskIdsChanged = nextTaskIds.length !== phase.taskIds.length || nextTaskIds.some((id, index) => id !== phase.taskIds[index]);
|
|
548
|
+
const descriptionUpdatedAt = phase.description && !phase.descriptionUpdatedAt ? phase.createdAt : phase.descriptionUpdatedAt;
|
|
549
|
+
const descriptionTimestampChanged = descriptionUpdatedAt !== phase.descriptionUpdatedAt;
|
|
531
550
|
return {
|
|
532
551
|
phase: {
|
|
533
552
|
...phase,
|
|
553
|
+
descriptionUpdatedAt,
|
|
534
554
|
tasks,
|
|
535
555
|
taskIds: nextTaskIds,
|
|
536
556
|
},
|
|
537
|
-
changed: changed || taskIdsChanged,
|
|
557
|
+
changed: changed || taskIdsChanged || descriptionTimestampChanged,
|
|
538
558
|
};
|
|
539
559
|
}
|
|
540
560
|
normalizeStructureSnapshot(featuresDoc, phases) {
|
|
@@ -1013,7 +1033,10 @@ export class PlanStore {
|
|
|
1013
1033
|
const raws = await this.loadRawFeatures();
|
|
1014
1034
|
const phases = await this.loadAllPhases();
|
|
1015
1035
|
const features = raws.map((f) => ({ ...f, status: this.deriveFeatureStatus(f.id, phases) }));
|
|
1016
|
-
|
|
1036
|
+
// Keep legacy feature descriptions displayable without rewriting on read.
|
|
1037
|
+
// Phase/task reads already apply the equivalent creation-date fallback.
|
|
1038
|
+
const normalizedFeatures = this.normalizeFeaturesDocument({ features }).doc.features;
|
|
1039
|
+
return this.normalizeStructureSnapshot({ features: normalizedFeatures }, phases).features;
|
|
1017
1040
|
}
|
|
1018
1041
|
async loadCodebaseProfile() {
|
|
1019
1042
|
try {
|
|
@@ -1728,7 +1751,15 @@ export class PlanStore {
|
|
|
1728
1751
|
const updated = await this.withFeaturesLock(async () => {
|
|
1729
1752
|
await this.migrateLegacy();
|
|
1730
1753
|
const current = await this.loadFeatures();
|
|
1731
|
-
|
|
1754
|
+
// Updaters commonly mutate `current` in place, so snapshot descriptions
|
|
1755
|
+
// before invoking them rather than comparing object references afterward.
|
|
1756
|
+
const previousDescriptions = new Map(current.features.map((feature) => [feature.id, feature.description]));
|
|
1757
|
+
const timestamp = nowISO();
|
|
1758
|
+
const candidate = updater(current);
|
|
1759
|
+
const stamped = {
|
|
1760
|
+
features: candidate.features.map((feature) => this.stampDescriptionUpdatedAt(feature, previousDescriptions.get(feature.id), timestamp)),
|
|
1761
|
+
};
|
|
1762
|
+
const upd = this.normalizeFeaturesDocument(stamped).doc;
|
|
1732
1763
|
await this.saveFeaturesRaw(upd);
|
|
1733
1764
|
return upd;
|
|
1734
1765
|
});
|
|
@@ -1749,7 +1780,11 @@ export class PlanStore {
|
|
|
1749
1780
|
async saveFeatures(features) {
|
|
1750
1781
|
await this.withFeaturesLock(async () => {
|
|
1751
1782
|
await this.migrateLegacy();
|
|
1752
|
-
await this.
|
|
1783
|
+
const previousDescriptions = new Map((await this.loadRawFeatures()).map((feature) => [feature.id, feature.description]));
|
|
1784
|
+
const timestamp = nowISO();
|
|
1785
|
+
await this.saveFeaturesRaw({
|
|
1786
|
+
features: features.features.map((feature) => this.stampDescriptionUpdatedAt(feature, previousDescriptions.get(feature.id), timestamp)),
|
|
1787
|
+
});
|
|
1753
1788
|
});
|
|
1754
1789
|
await this.touchTimestamp();
|
|
1755
1790
|
await this.maybeAutoSync();
|
|
@@ -1782,8 +1817,9 @@ export class PlanStore {
|
|
|
1782
1817
|
async saveFeature(feature) {
|
|
1783
1818
|
await this.withFeaturesLock(async () => {
|
|
1784
1819
|
await this.migrateLegacy();
|
|
1820
|
+
const previous = await readJson(this.featurePath(feature.id), FeatureSchema).catch(() => null);
|
|
1785
1821
|
await mkdir(this.featuresDir(), { recursive: true });
|
|
1786
|
-
const parsed = FeatureSchema.parse(feature);
|
|
1822
|
+
const parsed = FeatureSchema.parse(this.stampDescriptionUpdatedAt(feature, previous?.description, nowISO()));
|
|
1787
1823
|
await atomicWriteJson(this.featurePath(parsed.id), parsed, this.root);
|
|
1788
1824
|
});
|
|
1789
1825
|
await this.touchTimestamp();
|
|
@@ -1795,6 +1831,8 @@ export class PlanStore {
|
|
|
1795
1831
|
await this.touchTimestamp();
|
|
1796
1832
|
}
|
|
1797
1833
|
async savePhase(phase) {
|
|
1834
|
+
const previous = await this.loadPhase(phase.id).catch(() => null);
|
|
1835
|
+
const timestamp = nowISO();
|
|
1798
1836
|
const features = await this.loadRawFeatures();
|
|
1799
1837
|
const resolvedFeatureId = resolveStoredFeatureId(features, phase.featureId);
|
|
1800
1838
|
// Referential integrity: if a featureId is present but cannot be resolved
|
|
@@ -1810,7 +1848,10 @@ export class PlanStore {
|
|
|
1810
1848
|
const normalizedInput = resolvedFeatureId && resolvedFeatureId !== phase.featureId
|
|
1811
1849
|
? { ...phase, featureId: resolvedFeatureId }
|
|
1812
1850
|
: phase;
|
|
1813
|
-
const
|
|
1851
|
+
const previousTaskDescriptions = new Map((previous?.tasks ?? []).map((task) => [task.id, task.description]));
|
|
1852
|
+
const timestamped = this.stampDescriptionUpdatedAt(normalizedInput, previous?.description, timestamp);
|
|
1853
|
+
timestamped.tasks = timestamped.tasks.map((task) => this.stampDescriptionUpdatedAt(task, previousTaskDescriptions.get(task.id), timestamp));
|
|
1854
|
+
const parsed = PhaseSchema.parse(this.normalizePhaseDocument(timestamped).phase);
|
|
1814
1855
|
await mkdir(this.phasesDir(), { recursive: true });
|
|
1815
1856
|
await atomicWriteJson(this.phasePath(parsed.id), parsed, this.root);
|
|
1816
1857
|
await this.touchTimestamp();
|
|
@@ -1827,15 +1868,21 @@ export class PlanStore {
|
|
|
1827
1868
|
// not persisted); the return value is re-derived for the caller.
|
|
1828
1869
|
const raw = await atomicUpdateJson(this.phasePath(phaseId), PhaseSchema, (rawPhase) => {
|
|
1829
1870
|
const current = { ...rawPhase, status: this.derivePhaseStatus(rawPhase.tasks) };
|
|
1871
|
+
// The updater may mutate `current`, therefore snapshot descriptions first.
|
|
1872
|
+
const previousDescription = current.description;
|
|
1873
|
+
const previousTaskDescriptions = new Map(current.tasks.map((task) => [task.id, task.description]));
|
|
1874
|
+
const timestamp = nowISO();
|
|
1830
1875
|
const next = updater(current);
|
|
1831
|
-
const
|
|
1876
|
+
const timestamped = this.stampDescriptionUpdatedAt(next, previousDescription, timestamp);
|
|
1877
|
+
timestamped.tasks = timestamped.tasks.map((task) => this.stampDescriptionUpdatedAt(task, previousTaskDescriptions.get(task.id), timestamp));
|
|
1878
|
+
const resolvedFeatureId = resolveStoredFeatureId(features, timestamped.featureId);
|
|
1832
1879
|
// Referential integrity: reject orphan featureId.
|
|
1833
|
-
if (
|
|
1834
|
-
throw new PlanStoreError(`Cannot update phase: featureId "${
|
|
1880
|
+
if (timestamped.featureId && timestamped.featureId.trim() && !resolvedFeatureId) {
|
|
1881
|
+
throw new PlanStoreError(`Cannot update phase: featureId "${timestamped.featureId}" does not match any existing feature.`);
|
|
1835
1882
|
}
|
|
1836
|
-
const normalizedInput = resolvedFeatureId && resolvedFeatureId !==
|
|
1837
|
-
? { ...
|
|
1838
|
-
:
|
|
1883
|
+
const normalizedInput = resolvedFeatureId && resolvedFeatureId !== timestamped.featureId
|
|
1884
|
+
? { ...timestamped, featureId: resolvedFeatureId }
|
|
1885
|
+
: timestamped;
|
|
1839
1886
|
return this.normalizePhaseDocument(normalizedInput).phase;
|
|
1840
1887
|
});
|
|
1841
1888
|
await this.maybeAutoSync();
|
package/dist/schema.d.ts
CHANGED
|
@@ -604,6 +604,8 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
604
604
|
title: z.ZodString;
|
|
605
605
|
status: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
606
606
|
description: z.ZodDefault<z.ZodString>;
|
|
607
|
+
/** Updated only when this task's description changes; distinct from entity updatedAt. */
|
|
608
|
+
descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
|
|
607
609
|
notes: z.ZodDefault<z.ZodString>;
|
|
608
610
|
statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
609
611
|
id: z.ZodString;
|
|
@@ -718,6 +720,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
718
720
|
shortId: string;
|
|
719
721
|
priority: number;
|
|
720
722
|
shortName: string;
|
|
723
|
+
descriptionUpdatedAt: string;
|
|
721
724
|
statusLog: {
|
|
722
725
|
id: string;
|
|
723
726
|
date: string;
|
|
@@ -765,6 +768,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
765
768
|
}[] | undefined;
|
|
766
769
|
shortId?: string | undefined;
|
|
767
770
|
priority?: number | undefined;
|
|
771
|
+
descriptionUpdatedAt?: string | undefined;
|
|
768
772
|
statusLog?: {
|
|
769
773
|
id: string;
|
|
770
774
|
date: string;
|
|
@@ -818,6 +822,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
818
822
|
shortId: string;
|
|
819
823
|
priority: number;
|
|
820
824
|
shortName: string;
|
|
825
|
+
descriptionUpdatedAt: string;
|
|
821
826
|
statusLog: {
|
|
822
827
|
id: string;
|
|
823
828
|
date: string;
|
|
@@ -859,6 +864,7 @@ export declare const TaskSchema: z.ZodEffects<z.ZodObject<{
|
|
|
859
864
|
}[] | undefined;
|
|
860
865
|
shortId?: string | undefined;
|
|
861
866
|
priority?: number | undefined;
|
|
867
|
+
descriptionUpdatedAt?: string | undefined;
|
|
862
868
|
statusLog?: {
|
|
863
869
|
id: string;
|
|
864
870
|
date: string;
|
|
@@ -917,6 +923,8 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
917
923
|
contextReadyReason: z.ZodDefault<z.ZodString>;
|
|
918
924
|
summary: z.ZodDefault<z.ZodString>;
|
|
919
925
|
description: z.ZodDefault<z.ZodString>;
|
|
926
|
+
/** Updated only when this phase's description changes; distinct from entity updatedAt. */
|
|
927
|
+
descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
|
|
920
928
|
notes: z.ZodDefault<z.ZodString>;
|
|
921
929
|
goals: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
922
930
|
nonGoals: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -962,6 +970,8 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
962
970
|
title: z.ZodString;
|
|
963
971
|
status: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
964
972
|
description: z.ZodDefault<z.ZodString>;
|
|
973
|
+
/** Updated only when this task's description changes; distinct from entity updatedAt. */
|
|
974
|
+
descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
|
|
965
975
|
notes: z.ZodDefault<z.ZodString>;
|
|
966
976
|
statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
967
977
|
id: z.ZodString;
|
|
@@ -1076,6 +1086,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1076
1086
|
shortId: string;
|
|
1077
1087
|
priority: number;
|
|
1078
1088
|
shortName: string;
|
|
1089
|
+
descriptionUpdatedAt: string;
|
|
1079
1090
|
statusLog: {
|
|
1080
1091
|
id: string;
|
|
1081
1092
|
date: string;
|
|
@@ -1123,6 +1134,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1123
1134
|
}[] | undefined;
|
|
1124
1135
|
shortId?: string | undefined;
|
|
1125
1136
|
priority?: number | undefined;
|
|
1137
|
+
descriptionUpdatedAt?: string | undefined;
|
|
1126
1138
|
statusLog?: {
|
|
1127
1139
|
id: string;
|
|
1128
1140
|
date: string;
|
|
@@ -1176,6 +1188,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1176
1188
|
shortId: string;
|
|
1177
1189
|
priority: number;
|
|
1178
1190
|
shortName: string;
|
|
1191
|
+
descriptionUpdatedAt: string;
|
|
1179
1192
|
statusLog: {
|
|
1180
1193
|
id: string;
|
|
1181
1194
|
date: string;
|
|
@@ -1217,6 +1230,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1217
1230
|
}[] | undefined;
|
|
1218
1231
|
shortId?: string | undefined;
|
|
1219
1232
|
priority?: number | undefined;
|
|
1233
|
+
descriptionUpdatedAt?: string | undefined;
|
|
1220
1234
|
statusLog?: {
|
|
1221
1235
|
id: string;
|
|
1222
1236
|
date: string;
|
|
@@ -1315,6 +1329,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1315
1329
|
}[];
|
|
1316
1330
|
shortId: string;
|
|
1317
1331
|
priority: number;
|
|
1332
|
+
descriptionUpdatedAt: string;
|
|
1318
1333
|
statusLog: {
|
|
1319
1334
|
id: string;
|
|
1320
1335
|
date: string;
|
|
@@ -1362,6 +1377,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1362
1377
|
shortId: string;
|
|
1363
1378
|
priority: number;
|
|
1364
1379
|
shortName: string;
|
|
1380
|
+
descriptionUpdatedAt: string;
|
|
1365
1381
|
statusLog: {
|
|
1366
1382
|
id: string;
|
|
1367
1383
|
date: string;
|
|
@@ -1413,6 +1429,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1413
1429
|
}[] | undefined;
|
|
1414
1430
|
shortId?: string | undefined;
|
|
1415
1431
|
priority?: number | undefined;
|
|
1432
|
+
descriptionUpdatedAt?: string | undefined;
|
|
1416
1433
|
statusLog?: {
|
|
1417
1434
|
id: string;
|
|
1418
1435
|
date: string;
|
|
@@ -1454,6 +1471,7 @@ export declare const PhaseSchema: z.ZodObject<{
|
|
|
1454
1471
|
}[] | undefined;
|
|
1455
1472
|
shortId?: string | undefined;
|
|
1456
1473
|
priority?: number | undefined;
|
|
1474
|
+
descriptionUpdatedAt?: string | undefined;
|
|
1457
1475
|
statusLog?: {
|
|
1458
1476
|
id: string;
|
|
1459
1477
|
date: string;
|
|
@@ -1497,6 +1515,8 @@ export declare const FeatureSchema: z.ZodObject<{
|
|
|
1497
1515
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
1498
1516
|
name: z.ZodString;
|
|
1499
1517
|
description: z.ZodDefault<z.ZodString>;
|
|
1518
|
+
/** Updated only when this feature's description changes; distinct from entity updatedAt. */
|
|
1519
|
+
descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
|
|
1500
1520
|
discussedAt: z.ZodDefault<z.ZodString>;
|
|
1501
1521
|
contextReady: z.ZodDefault<z.ZodBoolean>;
|
|
1502
1522
|
contextReadyReason: z.ZodDefault<z.ZodString>;
|
|
@@ -1570,6 +1590,7 @@ export declare const FeatureSchema: z.ZodObject<{
|
|
|
1570
1590
|
}[];
|
|
1571
1591
|
shortId: string;
|
|
1572
1592
|
priority: number;
|
|
1593
|
+
descriptionUpdatedAt: string;
|
|
1573
1594
|
statusLog: {
|
|
1574
1595
|
id: string;
|
|
1575
1596
|
date: string;
|
|
@@ -1604,6 +1625,7 @@ export declare const FeatureSchema: z.ZodObject<{
|
|
|
1604
1625
|
}[] | undefined;
|
|
1605
1626
|
shortId?: string | undefined;
|
|
1606
1627
|
priority?: number | undefined;
|
|
1628
|
+
descriptionUpdatedAt?: string | undefined;
|
|
1607
1629
|
statusLog?: {
|
|
1608
1630
|
id: string;
|
|
1609
1631
|
date: string;
|
|
@@ -1631,6 +1653,8 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1631
1653
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
1632
1654
|
name: z.ZodString;
|
|
1633
1655
|
description: z.ZodDefault<z.ZodString>;
|
|
1656
|
+
/** Updated only when this feature's description changes; distinct from entity updatedAt. */
|
|
1657
|
+
descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
|
|
1634
1658
|
discussedAt: z.ZodDefault<z.ZodString>;
|
|
1635
1659
|
contextReady: z.ZodDefault<z.ZodBoolean>;
|
|
1636
1660
|
contextReadyReason: z.ZodDefault<z.ZodString>;
|
|
@@ -1704,6 +1728,7 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1704
1728
|
}[];
|
|
1705
1729
|
shortId: string;
|
|
1706
1730
|
priority: number;
|
|
1731
|
+
descriptionUpdatedAt: string;
|
|
1707
1732
|
statusLog: {
|
|
1708
1733
|
id: string;
|
|
1709
1734
|
date: string;
|
|
@@ -1738,6 +1763,7 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1738
1763
|
}[] | undefined;
|
|
1739
1764
|
shortId?: string | undefined;
|
|
1740
1765
|
priority?: number | undefined;
|
|
1766
|
+
descriptionUpdatedAt?: string | undefined;
|
|
1741
1767
|
statusLog?: {
|
|
1742
1768
|
id: string;
|
|
1743
1769
|
date: string;
|
|
@@ -1774,6 +1800,7 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1774
1800
|
}[];
|
|
1775
1801
|
shortId: string;
|
|
1776
1802
|
priority: number;
|
|
1803
|
+
descriptionUpdatedAt: string;
|
|
1777
1804
|
statusLog: {
|
|
1778
1805
|
id: string;
|
|
1779
1806
|
date: string;
|
|
@@ -1810,6 +1837,7 @@ export declare const FeaturesDocumentSchema: z.ZodObject<{
|
|
|
1810
1837
|
}[] | undefined;
|
|
1811
1838
|
shortId?: string | undefined;
|
|
1812
1839
|
priority?: number | undefined;
|
|
1840
|
+
descriptionUpdatedAt?: string | undefined;
|
|
1813
1841
|
statusLog?: {
|
|
1814
1842
|
id: string;
|
|
1815
1843
|
date: string;
|
|
@@ -2222,6 +2250,8 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2222
2250
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
2223
2251
|
name: z.ZodString;
|
|
2224
2252
|
description: z.ZodDefault<z.ZodString>;
|
|
2253
|
+
/** Updated only when this feature's description changes; distinct from entity updatedAt. */
|
|
2254
|
+
descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
|
|
2225
2255
|
discussedAt: z.ZodDefault<z.ZodString>;
|
|
2226
2256
|
contextReady: z.ZodDefault<z.ZodBoolean>;
|
|
2227
2257
|
contextReadyReason: z.ZodDefault<z.ZodString>;
|
|
@@ -2295,6 +2325,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2295
2325
|
}[];
|
|
2296
2326
|
shortId: string;
|
|
2297
2327
|
priority: number;
|
|
2328
|
+
descriptionUpdatedAt: string;
|
|
2298
2329
|
statusLog: {
|
|
2299
2330
|
id: string;
|
|
2300
2331
|
date: string;
|
|
@@ -2329,6 +2360,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2329
2360
|
}[] | undefined;
|
|
2330
2361
|
shortId?: string | undefined;
|
|
2331
2362
|
priority?: number | undefined;
|
|
2363
|
+
descriptionUpdatedAt?: string | undefined;
|
|
2332
2364
|
statusLog?: {
|
|
2333
2365
|
id: string;
|
|
2334
2366
|
date: string;
|
|
@@ -2365,6 +2397,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2365
2397
|
}[];
|
|
2366
2398
|
shortId: string;
|
|
2367
2399
|
priority: number;
|
|
2400
|
+
descriptionUpdatedAt: string;
|
|
2368
2401
|
statusLog: {
|
|
2369
2402
|
id: string;
|
|
2370
2403
|
date: string;
|
|
@@ -2401,6 +2434,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2401
2434
|
}[] | undefined;
|
|
2402
2435
|
shortId?: string | undefined;
|
|
2403
2436
|
priority?: number | undefined;
|
|
2437
|
+
descriptionUpdatedAt?: string | undefined;
|
|
2404
2438
|
statusLog?: {
|
|
2405
2439
|
id: string;
|
|
2406
2440
|
date: string;
|
|
@@ -2538,6 +2572,8 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2538
2572
|
contextReadyReason: z.ZodDefault<z.ZodString>;
|
|
2539
2573
|
summary: z.ZodDefault<z.ZodString>;
|
|
2540
2574
|
description: z.ZodDefault<z.ZodString>;
|
|
2575
|
+
/** Updated only when this phase's description changes; distinct from entity updatedAt. */
|
|
2576
|
+
descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
|
|
2541
2577
|
notes: z.ZodDefault<z.ZodString>;
|
|
2542
2578
|
goals: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
2543
2579
|
nonGoals: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
@@ -2583,6 +2619,8 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2583
2619
|
title: z.ZodString;
|
|
2584
2620
|
status: z.ZodEnum<["planned", "in-progress", "done", "blocked", "canceled", "rejected", "deferred", "waiting"]>;
|
|
2585
2621
|
description: z.ZodDefault<z.ZodString>;
|
|
2622
|
+
/** Updated only when this task's description changes; distinct from entity updatedAt. */
|
|
2623
|
+
descriptionUpdatedAt: z.ZodDefault<z.ZodString>;
|
|
2586
2624
|
notes: z.ZodDefault<z.ZodString>;
|
|
2587
2625
|
statusLog: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
2588
2626
|
id: z.ZodString;
|
|
@@ -2697,6 +2735,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2697
2735
|
shortId: string;
|
|
2698
2736
|
priority: number;
|
|
2699
2737
|
shortName: string;
|
|
2738
|
+
descriptionUpdatedAt: string;
|
|
2700
2739
|
statusLog: {
|
|
2701
2740
|
id: string;
|
|
2702
2741
|
date: string;
|
|
@@ -2744,6 +2783,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2744
2783
|
}[] | undefined;
|
|
2745
2784
|
shortId?: string | undefined;
|
|
2746
2785
|
priority?: number | undefined;
|
|
2786
|
+
descriptionUpdatedAt?: string | undefined;
|
|
2747
2787
|
statusLog?: {
|
|
2748
2788
|
id: string;
|
|
2749
2789
|
date: string;
|
|
@@ -2797,6 +2837,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2797
2837
|
shortId: string;
|
|
2798
2838
|
priority: number;
|
|
2799
2839
|
shortName: string;
|
|
2840
|
+
descriptionUpdatedAt: string;
|
|
2800
2841
|
statusLog: {
|
|
2801
2842
|
id: string;
|
|
2802
2843
|
date: string;
|
|
@@ -2838,6 +2879,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2838
2879
|
}[] | undefined;
|
|
2839
2880
|
shortId?: string | undefined;
|
|
2840
2881
|
priority?: number | undefined;
|
|
2882
|
+
descriptionUpdatedAt?: string | undefined;
|
|
2841
2883
|
statusLog?: {
|
|
2842
2884
|
id: string;
|
|
2843
2885
|
date: string;
|
|
@@ -2936,6 +2978,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2936
2978
|
}[];
|
|
2937
2979
|
shortId: string;
|
|
2938
2980
|
priority: number;
|
|
2981
|
+
descriptionUpdatedAt: string;
|
|
2939
2982
|
statusLog: {
|
|
2940
2983
|
id: string;
|
|
2941
2984
|
date: string;
|
|
@@ -2983,6 +3026,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
2983
3026
|
shortId: string;
|
|
2984
3027
|
priority: number;
|
|
2985
3028
|
shortName: string;
|
|
3029
|
+
descriptionUpdatedAt: string;
|
|
2986
3030
|
statusLog: {
|
|
2987
3031
|
id: string;
|
|
2988
3032
|
date: string;
|
|
@@ -3034,6 +3078,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
3034
3078
|
}[] | undefined;
|
|
3035
3079
|
shortId?: string | undefined;
|
|
3036
3080
|
priority?: number | undefined;
|
|
3081
|
+
descriptionUpdatedAt?: string | undefined;
|
|
3037
3082
|
statusLog?: {
|
|
3038
3083
|
id: string;
|
|
3039
3084
|
date: string;
|
|
@@ -3075,6 +3120,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
3075
3120
|
}[] | undefined;
|
|
3076
3121
|
shortId?: string | undefined;
|
|
3077
3122
|
priority?: number | undefined;
|
|
3123
|
+
descriptionUpdatedAt?: string | undefined;
|
|
3078
3124
|
statusLog?: {
|
|
3079
3125
|
id: string;
|
|
3080
3126
|
date: string;
|
|
@@ -3129,6 +3175,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
3129
3175
|
}[];
|
|
3130
3176
|
shortId: string;
|
|
3131
3177
|
priority: number;
|
|
3178
|
+
descriptionUpdatedAt: string;
|
|
3132
3179
|
statusLog: {
|
|
3133
3180
|
id: string;
|
|
3134
3181
|
date: string;
|
|
@@ -3238,6 +3285,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
3238
3285
|
}[];
|
|
3239
3286
|
shortId: string;
|
|
3240
3287
|
priority: number;
|
|
3288
|
+
descriptionUpdatedAt: string;
|
|
3241
3289
|
statusLog: {
|
|
3242
3290
|
id: string;
|
|
3243
3291
|
date: string;
|
|
@@ -3285,6 +3333,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
3285
3333
|
shortId: string;
|
|
3286
3334
|
priority: number;
|
|
3287
3335
|
shortName: string;
|
|
3336
|
+
descriptionUpdatedAt: string;
|
|
3288
3337
|
statusLog: {
|
|
3289
3338
|
id: string;
|
|
3290
3339
|
date: string;
|
|
@@ -3334,6 +3383,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
3334
3383
|
}[] | undefined;
|
|
3335
3384
|
shortId?: string | undefined;
|
|
3336
3385
|
priority?: number | undefined;
|
|
3386
|
+
descriptionUpdatedAt?: string | undefined;
|
|
3337
3387
|
statusLog?: {
|
|
3338
3388
|
id: string;
|
|
3339
3389
|
date: string;
|
|
@@ -3444,6 +3494,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
3444
3494
|
}[] | undefined;
|
|
3445
3495
|
shortId?: string | undefined;
|
|
3446
3496
|
priority?: number | undefined;
|
|
3497
|
+
descriptionUpdatedAt?: string | undefined;
|
|
3447
3498
|
statusLog?: {
|
|
3448
3499
|
id: string;
|
|
3449
3500
|
date: string;
|
|
@@ -3485,6 +3536,7 @@ export declare const PlanWorkspaceSchema: z.ZodObject<{
|
|
|
3485
3536
|
}[] | undefined;
|
|
3486
3537
|
shortId?: string | undefined;
|
|
3487
3538
|
priority?: number | undefined;
|
|
3539
|
+
descriptionUpdatedAt?: string | undefined;
|
|
3488
3540
|
statusLog?: {
|
|
3489
3541
|
id: string;
|
|
3490
3542
|
date: string;
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,eAAe,aAAwB,CAAC;AACrD,eAAO,MAAM,UAAU,aAAiD,CAAC;AAEzE,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBhC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;IAK5B;;mFAE+E;;;;;;;;;;;;;;;;;;;;;;;;;;EAM/E,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAMzB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAOjC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;IAE9B,8EAA8E;;IAE9E,+DAA+D;;IAE/D,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvE,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAexB,gGAAgG;;;;IAIhG,oGAAoG;;;QAlCpG,8EAA8E;;QAE9E,+DAA+D;;QAE/D,uEAAuE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCvE,CAAC;AAEH,eAAO,MAAM,mBAAmB,yGAAuG,CAAC;AACxI,eAAO,MAAM,gBAAgB,yGAAuG,CAAC;AACrI,eAAO,MAAM,iBAAiB,+HAA6H,CAAC;AAC5J,eAAO,MAAM,uBAAuB,yGAAuG,CAAC;AAC5I,eAAO,MAAM,mBAAmB,yGAAuG,CAAC;AAExI,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;EAOxB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;IAE9B;;yDAEqD;;;;;;;;;;;;;;EAIrD,CAAC;AAIH,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,aAEzC,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK7E;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAC;AAEH;2EAC2E;AAC3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;EAOpC,CAAC;AAEH,eAAO,MAAM,UAAU;;IAErB;oEACgE;;IAEhE,mJAAmJ
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.js
CHANGED
|
@@ -187,6 +187,8 @@ export const TaskSchema = z.object({
|
|
|
187
187
|
title: z.string().min(1),
|
|
188
188
|
status: TaskStatusSchema,
|
|
189
189
|
description: z.string().default(""),
|
|
190
|
+
/** Updated only when this task's description changes; distinct from entity updatedAt. */
|
|
191
|
+
descriptionUpdatedAt: z.string().default(""),
|
|
190
192
|
notes: z.string().default(""),
|
|
191
193
|
statusLog: z.array(StatusLogEntrySchema).default([]),
|
|
192
194
|
decisions: z.array(z.string().min(1)).default([]),
|
|
@@ -233,6 +235,8 @@ export const PhaseSchema = z.object({
|
|
|
233
235
|
contextReadyReason: z.string().default(""),
|
|
234
236
|
summary: z.string().default(""),
|
|
235
237
|
description: z.string().default(""),
|
|
238
|
+
/** Updated only when this phase's description changes; distinct from entity updatedAt. */
|
|
239
|
+
descriptionUpdatedAt: z.string().default(""),
|
|
236
240
|
notes: z.string().default(""),
|
|
237
241
|
goals: z.array(z.string().min(1)).default([]),
|
|
238
242
|
nonGoals: z.array(z.string().min(1)).default([]),
|
|
@@ -270,6 +274,8 @@ export const FeatureSchema = z.object({
|
|
|
270
274
|
priority: z.number().int().nonnegative().default(0),
|
|
271
275
|
name: z.string().min(1),
|
|
272
276
|
description: z.string().default(""),
|
|
277
|
+
/** Updated only when this feature's description changes; distinct from entity updatedAt. */
|
|
278
|
+
descriptionUpdatedAt: z.string().default(""),
|
|
273
279
|
// NOTE: `status` is intentionally ABSENT — it is DERIVED from child phases
|
|
274
280
|
// at read time and never persisted. The runtime `Feature` type re-adds it.
|
|
275
281
|
discussedAt: z.string().default(""),
|
package/package.json
CHANGED