24569 Commits

Author SHA1 Message Date
Miguel de Benito Delgado
38dd656abd 🚧 WIP 25.3 Cleanup: remove manual schema versioning, clean docstrings
AI-assisted-by: deepseek-flash, gpt-6.1-sol
2026-11-05 11:18:15 +01:00
Miguel de Benito Delgado
4bd78c4958 🚧 WIP 25.2 Safer deletion and symlink handling
AI-assisted-by: deepseek-flash, gpt-6.1-sol
2026-11-05 11:18:15 +01:00
Miguel de Benito Delgado
fed4342ece 🚧 WIP 25.1 Cleanup.
More consistent args.
Avoid importing unnecessary namespaces.
Improve file write error handling.

AI-assisted-by: deepseek-flash, gpt-6.1-sol
2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
a0cb39b5bf 🚧 WIP 25 complete runner, drop pilot
AI-assisted-by: deepseek-flash, gpt-6.1-sol
2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
0cf1609123 ✨ Add retained renderer benchmark builds and host
Add prepared build artifacts, browser host and the build and
purge commands for the CLJS renderer benchmarks.

Each preparation attempt gets a build ID and a retained directory with
its manifest, log, Node case catalog, browser bundle, renderer files
and host page. Ready builds load their matching catalog in process and
serve only their own directory through an owned loopback host.

Own Chromium through a bounded process group, verify the compiled build
identity before execution and retain failed preparations for diagnosis.
Wire the diagnostic pilot to the same build, catalog, server and
browser APIs.

Add real boundary tests for artifacts, processes, servers, browsers and
CLI parsing, and register them with the performance test runner. Rename
the benchmark lint and test scripts to match the suite.

AI-assisted-by: deepseek-flash
2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
f073b901b4 🐛 Fix render-wasm wrapper skipping compilation and copying
./build and pnpm run build:wasm produced no artifacts, dropped extra
Cargo arguments, and watch compiled outside the lock without copying.

Build now runs cargo build and copy_target_artifacts under the
existing lock. Cargo arguments survive as an array, and watch re-entry
no longer duplicates profile flags.
Destinations accept environment overrides so callers can stage
artifacts outside the public paths.

AI-assisted-by: deepseek-flash
2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
3100ae2aee 🚧 WIP 24 Relocate all code, delete old benchmarks 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
646aa48b20 🚧 WIP 23 Results and reporting. Cleanup 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
db9e589cf1 📎 Improve clj-kondo hooks, including if-let 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
c41b377191 🚧 WIP Step 22 nicer macros 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
9a176b96d1 📎 clj-kondo hooks for benchmark macros 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
c6e2a0834d 🚧 WIP Step 21.2 Cosmetic simplifications 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
cfcf394008 🚧 WIP Step 21.2 Docstrings 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
d473102b60 🚧 WIP Step 21.2 Docstrings 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
b7d979356b 🚧 WIP Step 21.1 Remove unnecessary kondo rule 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
e8b1d933ee 🚧 WIP Step 21 Refactor namespaces 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
d3b6c3a282 🚧 WIP Step 20 test last round of features 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
00d46f4c16 🚧 WIP Step 19.2 Missing browser utils 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
2eef465d6b 🚧 WIP Step 19.1 Allow selecting cases in pilot 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
23f9223845 🚧 WIP Step 19 New scenes, use camera 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
0311449db0 🚧 WIP Step 18 Camera ops 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
0e206f4986 🚧 WIP Step 17 Support path construction 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
84d56cd928 🚧 WIP Step 16.4 Refactor failures, remove legacy validation, cleanup 2026-11-05 11:18:14 +01:00
Miguel de Benito Delgado
fcf754e30b 🚧 WIP Step 16.3 Cleanup pilot 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
e7ed64bb6c 🚧 WIP Step 16.2 Renames and fixes 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
8c67ac7fb6 🚧 WIP Step 16.1 Relax scene macro constraints 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
e5958db3aa 🚧 WIP Step 16 Introduce hooks for the browser and load-scene 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
cf6af0cf62 🚧 WIP Step 15.1, cosmetic 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
dbd37c73a2 🚧 WIP Step 15, Use transit to simplify validation 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
eb566b0c47 🚧 WIP Step 14, Grab correct w/h attrs from context 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
d12df5058b 🚧 WIP Step 13, Track failure causes
AI-assisted-by: muse-spark, GLM-5.3
2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
09ac810229 🚧 WIP Step 12.4, Comments
AI-assisted-by: gpt6-astra
2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
5b2e4679f3 🚧 WIP Step 12.3, Test cleanup + missing coverage
AI-assisted-by: muse-spark, deepseek-flash
2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
16966cf190 🚧 WIP Step 12.2, Fix browser bridge, lifecycle
AI-assisted-by: muse-spark, glm-5.3
2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
a8f10b6058 🚧 WIP Step 12.1, Improve case validation
AI-assisted-by: muse-spark, glm-5.3
2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
ccd7648901 🚧 WIP Step 12, temporary pilot
- pilot runner for testing
- will be entirely removed later

AI-assisted-by: muse-spark-1.3, deepseek-flash, glm-5.3
2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
b43b2fbdf1 🚧 WIP Step 11, browser bridge
- New schema:viewport
- Browser bridge (with some temp code)
- Move prepare-scene out measured regions
-
AI-assisted-by: muse-spark-1.3, deepseek-flash, glm-5.3
2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
f9cd9843ac 🚧 WIP Step 10, scene upload 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
5691183c04 🚧 WIP Step 10, defcase body validation, docs 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
c89a58e182 🚧 WIP Step 9, fix naming conventions 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
796c76559e 🚧 WIP Step 8, simplify and clean up tests 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
c2b43cb92b 🚧 WIP Step 7, scene and case declarations 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
242a621e5e 🚧 WIP Step 6, ellipses 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
76cc5f02a9 🚧 WIP Step 5, bools 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
882e585b13 🚧 WIP Step 4, frames and groups 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
9e0600df0b 🚧 WIP Step 3, fixture macros, prng, defaults, placeholder scene 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
32c3dba17c 🚧 WIP Step 2, common scene code, validation 2026-11-05 11:18:13 +01:00
Miguel de Benito Delgado
9caddb7596 🚧 WIP Step 1, scaffold cljs benchmark runner 2026-11-05 11:18:12 +01:00
Andrey Antukh
9d898b8b31
🔧 Normalize the tenant to lowercase (#12843)
An operator writing `PENPOT_TENANT=ACME` and one writing `acme` name the
same tenant: the value is compared as an exact string in the keys and
rows it lands in, and one uppercase letter would otherwise split one
tenant into two.

The value is normalized when the configuration is read, so nothing
downstream has to care about case, and the validated form accepts only
lowercase labels from then on.

AI-assisted-by: deepseek-v4.1-flash
2026-11-05 08:45:01 +01:00
Alonso Torres
eb9594a614
🐛 Fix ChatGPT tool discovery with the submit_feedback tool (#12845)
* 🐛 Fix ChatGPT tool discovery with the submit_feedback tool

ChatGPT compiles the regex patterns advertised in tool input schemas
with Python, which rejects Unicode property escapes such as \P{Cc}. The
submit_feedback subject pattern used one, so ChatGPT dropped the whole
tool list ("action discovery failed") on deployments that register the
tool.

The subject pattern now spells out the Cc range as a character class,
which accepts the same input. A test asserts that no advertised pattern
uses \p{...} or \P{...}.

AI-assisted-by: claude-opus-5-5

* 🐛 Fix MCP plugin test stub for the version check

plugin.ts checks version compatibility with extractMinorVersion, but the
tests loaded it with a require stub that returned the same dummy object
for every import, so the check threw once the UI initialized.

The plugin.ts tests now share a stub that supplies the real
VersionCompatibility, ErrorUtils and TaskHandler modules, stubs only the
code execution handler and rejects unexpected imports. TaskHandler is
transpiled for the sandbox because Node's type stripping cannot load its
parameter properties.

AI-assisted-by: claude-opus-5-5

* 🐛 Fix Management tests for backend-confirmed setters

Management setters save to the backend first and update the object only
when the save succeeds, so seven live tests failed:

- setter tests now wait for the new value before reading it
- createProject checks fileCount by listing the project again, as
  fileCount is the count from when the project was listed
- project moveTo no longer calls remove on the target team, which teams
  do not have; the live CI driver deletes temporary teams
- renaming the open file waits for its restore, which made the next
  navigation test fail

The README notes on setters, fileCount and team cleanup match this.

AI-assisted-by: claude-opus-5-5
2026-11-04 21:47:55 +01:00