Skip to content

Fix 3 UI bugs found during exploratory testing#21

Merged
intel352 merged 1 commit into
mainfrom
fix/ui-exploratory-testing-bugs
Feb 10, 2026
Merged

Fix 3 UI bugs found during exploratory testing#21
intel352 merged 1 commit into
mainfrom
fix/ui-exploratory-testing-bugs

Conversation

@intel352
Copy link
Copy Markdown
Contributor

Summary

  • Fix node handle mapping: http.router, http.handler, http.proxy, api.handler, and chimux.router were all mapped to HTTPServerNode (which has hasInput={false}), making them unable to receive incoming connections. Now only http.server maps to httpNode; all other HTTP types map to httpRouterNode with both input and output handles.
  • Fix dynamic component API field mismatch: createDynamicComponent in api.ts sent { name, source, language } but the Go server at dynamic/api.go expects { id, source }. Changed to { id: name, source, language }.
  • Fix missing undo history for property edits: updateNodeConfig() and updateNodeName() now call pushHistory() before mutating state, so property changes via the PropertyPanel can be undone with Ctrl+Z.

Test plan

  • All 100 unit tests pass (6 test files)
  • Browser-verified: HTTP Router node has both target and source handles
  • Browser-verified: Edge connection from HTTP Server → HTTP Router succeeds
  • Browser-verified: Rename node → Ctrl+Z → name reverts
  • CI checks pass

🤖 Generated with Claude Code

- Fix node handle mapping: http.router/handler/proxy were mapped to
  HTTPServerNode (no input handle), preventing incoming connections.
  Now only http.server maps to httpNode; other http.* types map to
  httpRouterNode which has both input and output handles.

- Fix dynamic component API field mismatch: createDynamicComponent
  sent {name} but Go server expects {id}. Changed to {id: name}.

- Fix missing undo history for property edits: updateNodeConfig and
  updateNodeName now call pushHistory() before mutating state, so
  property changes can be undone with Ctrl+Z.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@intel352 intel352 merged commit 662aafc into main Feb 10, 2026
8 checks passed
@intel352 intel352 deleted the fix/ui-exploratory-testing-bugs branch February 10, 2026 18:05
intel352 added a commit that referenced this pull request Feb 17, 2026
- Validate plugin name against directory traversal in CompositeRegistry.Install()
- Add isSafePathComponent() to validate plugin name/version in HTTP handler
- Validate planID in FileStateStore.GetPlan() to prevent path traversal

Fixes code scanning alerts #20, #21, #22.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
intel352 added a commit that referenced this pull request Jun 1, 2026
* ci(iac/admin): fail on stale vendored infra.proto descriptor

Adds scripts/check-vendored-proto.sh and .github/workflows/proto-vendor-staleness.yml
to catch upstream drift in iac/admin/testdata/infra.proto.

How the script works:
1. Reads '// Source version: <tag>' from the vendored file header
2. Fetches the upstream proto from GoCodeAlone/workflow-plugin-infra@<tag>
   via the GitHub raw API (no local checkout required)
3. Extracts the *Config message name sets from both files
4. Diffs them; exit 1 + operator-readable error if any message was added
   or removed (with 'make vendor-infra-proto' refresh instructions)

Verified locally:
  bash scripts/check-vendored-proto.sh  → exit 0 (in-sync)
  (mutate proto) && bash ...            → exit 1 (drift detected)
  actionlint proto-vendor-staleness.yml → exit 0 (no YAML issues)

The CI job runs on push/PR to main when the proto or script changes,
plus a weekly cron to catch upstream drift even when the local file
is not touched.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs(scripts): annotate extract_config_messages scope matches catalog parity test

Per spec-reviewer cosmetic suggestion: explain that *Config message
scope is intentional — matches catalog_proto_parity_test.go surface.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(scripts): use sed -E (ERE) for BSD/macOS portability in extract_config_messages

\+ is a GNU BRE extension unsupported by BSD sed; -E with + works on
both macOS and Linux. CI (ubuntu-latest) was correct either way;
this fixes local dev experience on macOS.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant