fix(mdbase): add generated date fields to task schema

This commit is contained in:
callumalpass 2026-03-04 06:13:43 +11:00
parent 53468ba0fc
commit 26ee5898dd
3 changed files with 16 additions and 2 deletions

View file

@ -26,6 +26,7 @@ Example:
## Fixed
- Updated generated `_types/task.md` mdbase schema output so `dateCreated` and `dateModified` include generated values (`now` and `now_on_write`) for automatic timestamp handling on create/write
- Fixed documentation deployment CI failures caused by `docs-builder/src/js/main.js` being excluded by a broad `.gitignore` `main.js` rule
- Added a specific unignore rule so the docs site client script is tracked and available in GitHub Actions builds
- Reduced long-running performance risk from calendar sync token persistence by avoiding full runtime settings side-effects during background sync writes

View file

@ -151,8 +151,15 @@ export class MdbaseSpecService {
description: "Estimated time in minutes.",
});
this.addRoleField(lines, "completedDate", { type: "date" });
this.addRoleField(lines, "dateCreated", { type: "datetime", required: true });
this.addRoleField(lines, "dateModified", { type: "datetime" });
this.addRoleField(lines, "dateCreated", {
type: "datetime",
required: true,
generated: "now",
});
this.addRoleField(lines, "dateModified", {
type: "datetime",
generated: "now_on_write",
});
this.addRoleField(lines, "recurrence", { type: "string" });
this.addRoleField(lines, "recurrenceAnchor", {
type: "enum",
@ -290,6 +297,9 @@ export class MdbaseSpecService {
if (def.required) {
lines.push(`${pad}required: true`);
}
if (def.generated) {
lines.push(`${pad}generated: ${def.generated}`);
}
if (def.values) {
lines.push(`${pad}values: [${def.values.join(", ")}]`);
}
@ -458,6 +468,7 @@ export class MdbaseSpecService {
interface FieldDef {
type: string;
required?: boolean;
generated?: string;
values?: string[];
tn_completed_values?: string[];
default?: string;

View file

@ -391,11 +391,13 @@ describe("MdbaseSpecService", () => {
const block = getFieldBlock(fm, "dateCreated");
expect(block).toContain("type: datetime");
expect(block).toContain("required: true");
expect(block).toContain("generated: now");
});
it("should define dateModified as datetime", () => {
const block = getFieldBlock(fm, "dateModified");
expect(block).toContain("type: datetime");
expect(block).toContain("generated: now_on_write");
});
it("should define recurrence as string", () => {