LibreChat/packages
Danny Avila 104bbc8633 🔓 fix: Don't Lock Skills Out of Saving Over Pre-Existing Malformed Flags
Three findings from the self-review's completeness pass.

A skill whose STORED SKILL.md already carried a malformed flag became unsavable.
`validateBodyDerivedColumns` ran on every body-carrying update, and the skill
editor resubmits the whole file on every save, so a body containing
`user-invocable: yes` rejected edits to unrelated fields — the user could not
even fix the description. Those documents exist precisely because pre-fix import
returned 201 for that value, and `yes`/`no`/`on`/`off` read as booleans in YAML
1.1, so it is an ordinary authoring shape. The stored-body scan is now taken
before validation and a flag that was already malformed no longer blocks the
save; a value this edit introduces is still rejected.

The end-to-end spec never ran in CI: `test:ci` ignores `\.*integration\.`, and
the named integration scripts are scoped to cache, s3 and agents, so the only
test asserting the issue's reproduction against a real `createSkill` was skipped
everywhere. Renamed to `import.db.spec.ts`, matching the several packages/api
specs that already boot MongoMemoryServer in the default run.

Parity between the two frontmatter readers was asserted only in a commit
message. `parity.db.spec.ts` now feeds 23 shapes through both the upload path and
the inline-body path and requires identical columns, with the two known
asymmetries pinned as their own cases: tab indentation, which only the YAML
parser rejects, and duplicate keys differing in case, which the file leaves
ambiguous. Neither can release a restriction.

Skill validation failures now carry `message`, as the import handler already did.
The client falls back to a generic string when it is absent, so a rejected flag
line was previously undiagnosable from the UI.
2026-08-04 09:52:39 -04:00
..
api 🔓 fix: Don't Lock Skills Out of Saving Over Pre-Existing Malformed Flags 2026-08-04 09:52:39 -04:00
client 🌀 ci: Deterministic Circular Dependency Checks (#14579) 2026-08-01 14:43:26 -04:00
data-provider fix: Bind Action Servers to Metadata Ports (#14575) 2026-08-02 13:41:31 -04:00
data-schemas 🔓 fix: Don't Lock Skills Out of Saving Over Pre-Existing Malformed Flags 2026-08-04 09:52:39 -04:00