Skip to content

Feat/corex_mcp - #74

Merged
karim-semmoud merged 16 commits into
mainfrom
feat/unreleased
Jul 17, 2026
Merged

Feat/corex_mcp#74
karim-semmoud merged 16 commits into
mainfrom
feat/unreleased

Conversation

@karim-semmoud

Copy link
Copy Markdown
Member

Summary

  • Extract MCP to Hex package corex_mcp; split helpers into Attrs / ValueBinding / form contracts; LiveView controlled-attr snapshot + Phoenix form bridge.
  • Rename mix corex.codemix corex.design.code; add corex.design.options; Tableau mix corex.tableau.new --lang scaffolding; e2e form suite / doc-parity / demo id guards.

Breaking (see CHANGELOG Unreleased)

  • Multi-value datasets use JSON (not comma lists)
  • FormField.assign_form_field/2 leaves invalid off by default (auto_invalid / explicit invalid)
  • form_field / field_used no longer public attrs on select/combobox
  • Form controls require :id when no :field
  • MCP: {:corex_mcp, "~> 0.2", only: :dev}; config under config :corex_mcp

karim-semmoud and others added 7 commits July 17, 2026 15:18
…tracts

Introduce JSON multi-value datasets, FormField auto_invalid defaults,
Connect.ItemNav, and shared form_control attrs. Helpers re-export for
compatibility.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add controlled-attr-snapshot, phoenix-form-bridge, and zag-live-hook;
update hooks and rebuild priv/static assets for LV form sync.

Co-authored-by: Cursor <cursoragent@cursor.com>
Move MCP server/tools out of lib/mcp into the mcp/ companion package
with design-aware tools; apps depend on {:corex_mcp, only: :dev}.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expose human-readable design axis options, rename mix corex.code to
mix corex.design.code, and apply minor CSS/tooling polish.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add gettext/locale scaffolding to corex.tableau.new and document
Tableau localization.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expand e2e form coverage for auto_invalid/JSON values, add form suite
migration fields, and enforce demo id/field guards.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@karim-semmoud karim-semmoud self-assigned this Jul 17, 2026
karim-semmoud and others added 9 commits July 17, 2026 15:30
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Match root mix Code.ensure_loaded?(:json) for corex_mcp so OTP 26
compiles without :json warnings, and drop duplicate data-table patterns
paths that broke DocA11yRoutesCoverageTest.

Co-authored-by: Cursor <cursoragent@cursor.com>
Normalize pin attrs to string keys once, guard LiveView upload tmp
paths before File.rm, and exclude the admin form from PathTraversal
like the other upload LiveView.

Co-authored-by: Cursor <cursoragent@cursor.com>
ValueBinding encodes select values as JSON arrays; align the form
LiveView assertions with the component unit tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use Enum.map_join, handle json_polyfill start failures, add castore
for excoveralls on design/mcp, and drop the removed
MissingTelemetryInLiveViewMount Credo check from package configs.

Co-authored-by: Cursor <cursoragent@cursor.com>
tags-input delete-trigger handler uses PointerEvent; declare it like
MouseEvent so pnpm lint passes under no-undef.

Co-authored-by: Cursor <cursoragent@cursor.com>
…pdate

Accept one-element list values for single-mode date pickers (form display
helpers), and re-render the menu tree on LiveView updated so trigger
aria-disabled/tabindex stay in sync after toggling native disabled.

Co-authored-by: Cursor <cursoragent@cursor.com>
The basic form only shows error text; data-invalid is covered by the
dedicated invalid demo that passes FormField.invalid?/1.

Co-authored-by: Cursor <cursoragent@cursor.com>
@karim-semmoud
karim-semmoud merged commit d4d4e60 into main Jul 17, 2026
23 checks passed
@karim-semmoud
karim-semmoud deleted the feat/unreleased branch July 17, 2026 13:56
@coveralls

coveralls commented Jul 20, 2026

Copy link
Copy Markdown

Coverage Status

coverage: 93.629% (+0.5%) from 93.178% — feat/unreleased into main

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