Skip to content

Conversation

@datakurre
Copy link
Owner

No description provided.

- Defer initial onSubmit() by one event loop tick to ensure CodeMirror and
  AutoCompletePopup are fully initialized before submission
- Initialize autoCompleteHandler.setQuery() synchronously during state
  initialization to prevent typeahead suggestions from failing
- Add category suggestions when no other suggestions are available
- Fix date picker null handling and improve cursor position management
- Improve CodeMirror hints dropdown styling with proper z-index and layout
- Switch from react-filter-box to @waylay/react-filter-box fork
- Cast SimpleReactFilterBox to 'any' to avoid React type conflicts
- Use useRef for query tracking in customRenderCompletionItem callback

Without these fixes, the FilterBox would partially work with syntax
highlighting but no typeahead suggestions, and filter changes wouldn't
update the actual REST requests.
- Fix viewer initialization by waiting for container resize event
- Use ResizeObserver to detect when container is ready for BPMN rendering
- Fix zoom reset to properly fit viewport and reset scroll position
- Improve sequence flow toggle to properly maintain state using array mutation
- Remove debug console.log from ToggleSequenceFlowButton
- Add setTimeout to ensure canvas operations complete after viewer attachment

These changes fix issues where the BPMN diagram wouldn't render properly
on initial load and sequence flow toggling would lose state.
- Use array mutation (splice) to properly maintain sequence flow state
- Check array length before attempting to render or clear sequence flows
- Prevents sequence flow from being lost on repeated toggle operations

This ensures the sequence flow toggle button maintains proper state
across multiple on/off cycles.
- Extract renderActivities function from inline implementations
- Add proper BPMNModdle type imports to replace deprecated types
- Fix Activity and Point types to use BPMNModdle.Activity and BPMNModdle.Bounds
- Improve type safety throughout sequence flow rendering code
- Format nested ternary operators for better readability

This consolidates duplicate activity rendering logic and improves
type safety by using the canonical BPMNModdle type definitions.
- Replace deprecated bpmn-moddle types with BPMNModdle namespace types
- Change inherits import from 'inherits' to 'inherits-browser' for browser compatibility
- Add TypeScript ignore comment for BaseRenderer.call to handle ES6 class inheritance
- Improve Element type for drawShape parent parameter

These changes fix build warnings and improve type safety in the custom
BPMN renderer for robot tasks.
- Add conditional sourcemap generation based on NODE_ENV
- Add React and ReactDOM aliases to force single instance (fixes hooks errors)
- Remove inherits browser alias (no longer needed)
- Improve NODE_ENV handling with proper defaults
- Add SASS deprecation warning silencing for legacy-js-api
- Add __dirname polyfill for ESM compatibility

The React aliasing is critical to prevent 'Invalid hook call' errors
when dependencies like react-filter-box bundle their own React instance.
Major upgrades:
- bpmn-js: 13.1.0 -> 18.6.2
- camunda-bpmn-js-behaviors: 0.5.0 -> 1.10.0
- diagram-js: 12.1.0 -> 15.3.0
- react: 18.2.0 -> 18.3.0
- react-datepicker: 4.11.0 -> 8.4.0
- rollup: 3.23.0 -> 4.44.1
- typescript: 5.0.4 -> 5.8.3
- Switch from react-filter-box to @waylay/react-filter-box fork
- Add postinstall script to build @waylay/react-filter-box grammar
- Set NODE_ENV=development in watch script for consistent behavior
- Upgrade all @rollup plugins and @babel packages
- Upgrade sass, prettier, and other dev dependencies

These upgrades improve compatibility, fix bugs, and provide access to
new features in the BPMN rendering stack.
- Switch from podman to devcontainer module
- Add Operaton package with port 8080
- Configure Caddy reverse proxy on port 8000 for plugin development
- Set up script path rewriting to serve local plugin files
- Enable yarn alongside npm for package management
- Update flake inputs: remove unstable, add mvn2nix and operaton modules
- Update nixpkgs to latest master branch
- Add full-vim profile with VSCode, Vim, and Podman support
- Lock file updates for all dependency changes

This configuration enables seamless local development of Cockpit plugins
with live reload capabilities and proper Operaton integration.
- Add Makefile with targets for build, watch, format, check, and upgrade
- Add develop target for opinionated IDE setup with devenv
- Add up target to launch devenv fixtures
- Add .envrc for direnv integration with devenv
- Set DIRENV_WARN_TIMEOUT to 20s for slow operations
- Add .devcontainer.json for GitHub Codespaces and VS Code dev containers
- Configure recommended extensions: Nix, TOML, GitLens, Copilot, Gemini, direnv
- Add comprehensive AGENTS.md guide covering:
  - Project structure and plugin entrypoints
  - Development workflow and build pipeline
  - Deployment instructions
  - Component documentation
  - Known issues and their fixes (FilterBox race condition)

This infrastructure enables consistent development across environments
and provides clear guidance for AI assistants and developers.
- Remove Apache 2.0 license header from config.js (not needed for config)
- Delete obsolete custom type definitions:
  - @types/bpmn-js/index.d.ts (now provided by npm package)
  - @types/diagram-js/index.d.ts (now provided by npm package)
  - @types/tiny-svg/index.d.ts (now provided by npm package)

These type definitions are superseded by the official packages
or are no longer needed with the upgraded dependencies.
…ance

- Replace react-final-form with react-hook-form
- Implement complete modification instruction support:
  * startBeforeActivity, startAfterActivity, startTransition, cancel
  * Support for activityInstanceId for targeted cancellation
  * ancestorActivityInstanceId for scope specification
  * Proper variable type system with value, type, and local fields
- Load activities and sequence flows from BPMN using bpmn-moddle
- Use history API endpoint with unfinished filter for active instances
- Filter ancestor instances to show only subprocess/process scopes
- Add JSON validation for variables with visual error feedback
- Show full IDs without ellipsis for all instance selectors
- Implement dynamic cancel method selection (all/specific instances)
- Add comprehensive error handling and loading states
- Update dependencies: remove final-form, add react-hook-form
- Restructure devenv.nix to use profile-based modules (shell, devcontainer, devcontainer-rhel, devcontainer-nixos)
- Update devenv.yaml to set default profile to 'shell' and reorganize configuration
- Add DEVCONTAINER_PROFILE variable and node_modules target to Makefile
- Update .gitignore to exclude .devcontainer.json (now generated)
- Remove .devcontainer.json (now generated from devenv profiles)
- Remove devenv.local.nix.example (no longer needed)
- Update dependencies in devenv.lock
@datakurre datakurre force-pushed the refactor branch 3 times, most recently from a362b22 to b4e391d Compare January 15, 2026 12:06
- Remove early return that caused success messages to show in red
- Add proper conditional styling for success (green) vs error (red) messages
- Keep form visible when showing success/error messages instead of early return
- Handle loading errors separately from post-submission messages
- Update AGENTS.md with detailed plugin descriptions
@datakurre datakurre force-pushed the refactor branch 3 times, most recently from 56990b7 to 7b7675a Compare January 15, 2026 12:07
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.

2 participants