This repository was archived by the owner on Oct 20, 2026. It is now read-only.
Repository navigation
PDK 0.4.1
Security
pdk promotewithout--to-projectcould write into the target project from a folder that belonged to it (one
left by an earlier promote): every promote now starts from the sandbox, like style classes and scripts already
did.act(inpdk inspectandpdk screenshot) runs a view's own event scripts on the gateway, so it now works only
on sandbox views; a view promoted to the target is looked at without it.
Fixed
- The eyes close the Perspective sessions they open on promoted views too: the module refused to close sessions
outside the sandbox, so every look at a target view left one open until it timed out (on Maker, which caps them,
that ran out of sessions). Each page is closed in the project it was opened in. Needs the module reinstalled
(pdk gateway install --restart). - The MCP server's browser no longer closes for being idle while a call is running, and Playwright errors come back
as eyes errors (with their hint) instead of a traceback; a screenshot of a component with no size fails at once
instead of after 30 s. - A collapsed component is reported once, as its V007: a scroll or an overflow of the component itself (its
content poking out of a zero-height box) no longer adds a V014 or V002. pdk inspectwith a step it cannot read (A005) stops before opening the view, aspdk screenshotdoes, instead
of checking the expectations on the page before any step.- Validating a directory builds each project once (it rebuilt the project's reference graph for every view), and
focuson an info code across a directory shows those views. pdk validateand the hook check a view pulled towork/<project>/against that project, likepdk deploy
does, so a missing embedded view (R010) shows before the deploy refuses it.- A deploy over a style class or script that already exists and was never pulled can be resolved with
--resolved, as views can. - A change from
1totrue(or0tofalse) inside a view is deployed: the comparison with the pulled
version told them apart only at the top level. - Promote leaves PDK's scratch folders (
PDK/_bench/,PDK/_selftest/) unless--tonames the destination. - R013 no longer flags an embedded view whose whole
paramsobject is bound; BP006 no longer takes a component's
write toself.view.custom.xfor its own property, and checks view-level change scripts (self.params.x). - Module errors map to the right codes:
BUSYandINTERRUPTEDare G012 (busy, retry), a missing history
provider is G007, deleting a folder that is not empty is G009; a test keeps the map, the module and the REST
reference in step. - The MCP server refreshes only the skill, the subagents and the CLAUDE.md section of a folder after an upgrade:
it rewrote thepdkentry of.mcp.json(dropping itsenv) and the hook.pdk initkeeps thatenvand the
hook's timeout. - A folder set up with
pdk initfrom a clone keeps its pulled views in its ownwork/(they went to the clone's),
andpdk_refswrites its inventory under the work folder (PDK_WORK_DIR). - The sample memory tags the tutorial, the README and the skill use ship with the package:
pdk tags apply sample
(bench/tags/sandbox.jsonwas only in a clone). - What the target project takes is stated the same way everywhere (SECURITY.md, the README, the docs and the G006
hint): views, style classes and scripts outsidePDK/, the stylesheet, and the eyes' preview pages. The skill
and the server's instructions say promote copies, and give the order that works for a view that embedsPDK/
views; the B011 hint no longer suggeststag(), which BP001 flags. - The setup for other MCP clients (Codex, Gemini CLI, VS Code, Cursor) works without a clone:
pdk-mcpwith
PDK_WORK_DIR, with each client's format in the agents guide.
Suggested from the changes since v0.4.0: v0.4.1. Publishing this draft releases it: it tags
main, attaches the wheel, publishes to PyPI and moves these notes under [0.4.1] in CHANGELOG.md.
To release another version, change the tag before publishing (vX.Y.Z).