100 Commits
Author SHA1 Message Date
Loretta c1b29a71fa Merge from FruitBank_v0.0.8.0 into master 2026-07-21 08:25:21 +02:00
Loretta 3b415fccd5 Update GIAAPP consumer map entry for repo/path accuracy
Corrected the GIAAPP entry in the consumer map:
- Changed repository name from GiaApp to Gia.App
- Updated workspace path from Mango/Source/GiaApp to Mango/Source/Gia.App
This ensures the mapping matches the actual repo and folder structure.
2026-07-21 08:23:18 +02:00
Loretta 1ce86d1371 Server-side grid virtualization: DxGrid adapter & API
Implemented MgGridVirtualizedDataSource<T> for DevExpress DxGrid integration, enabling server-side paging/filtering/sorting via SignalR. Added developer-only test page and menu entry. Extended IFruitBankDataControllerCommon and client DTOs for virtualized queries. Renamed ToPagedListAsync to ToGridListAsync and improved AcGridCriteriaTranslator to whitelist only real DB columns. Temporarily relaxed relation-path filtering/sorting for closed testing (see ACCORE-SIGVDS-T-R7X2). Updated documentation, TODOs, icons, CSS, and local dev tooling. Feature is developer-only and not enabled in production grids.
2026-07-20 10:33:35 +02:00
Loretta 40e6c613cd Replace [NotGridFilterable] with [NoGridOperations]
Replaced all references to `[NotGridFilterable]` with the new `[NoGridOperations]` attribute, which controls all grid operations (filter, sort, group, search) per property and supports a scope parameter (`Local`, `Server`, `Both`). Updated documentation to clarify handling of computed properties, detail DevExpress grid API support for disabling operations, and explain the rationale for the new attribute. Documented the grid column override API and updated TODOs to reference `[NoGridOperations]` as the standard opt-out mechanism. These changes ensure explicit, visible, and layer-appropriate grid operation restrictions.
2026-07-20 06:28:55 +02:00
Loretta 31ef0e22c6 Expand DevExpress grid virtualization docs
Significantly enhanced documentation for DevExpress grid integration and server-side virtualization. Added a curated index of DxGrid examples, documented migration constraints, feature limitations, and clarified handling of computed/unbound columns. Introduced a repo-local GRID/ docs folder for product-specific grid decisions and TODOs. Updated ADRs and cross-links to reflect parity requirements and improved navigation. Added ADR 0007 for framework docs-mirror access. Improved overall clarity and maintainability of grid-related docs.
2026-07-19 19:31:45 +02:00
Loretta a52fbe9174 Implement SignalR DataSource split & virtualization base
Implements client half of ADR 0004: splits SignalR DataSource into new base class (AcSignalRDataSourceBase), collection sibling (AcSignalRDataSource), and new virtualized sibling (AcSignalRVirtualizedDataSource) for server-side grid paging. Refactors context, sync, and save logic to the base; updates all related docs, contracts, and TODOs. Adds SIGNALR_VIRTUALIZED_DATASOURCE topic, updates ADR 0004, introduces ADR 0006 for PopulateMerge, and clarifies terminology. No grids/endpoints yet migrated; groundwork for server virtualization is complete.
2026-07-19 18:37:08 +02:00
Loretta 3928022252 Implement server-side grid data virtualization (ADR 0004)
Server-side paging/filtering/sorting/counting for SignalR grid endpoints is now complete and documented. Introduced AcGridCriteriaTranslator for secure DevExpress criteria parsing and AcGridDataQueryExtensions for ORM-neutral query materialization. SignalR hub base now supports Task<T>/ValueTask<T> for grid endpoints. SearchText is present but hard-rejected server-side pending design. DevExpress.Data 25.1.3 added as a dependency. Documentation, build/test scripts, and settings updated. Endpoints will opt-in per-grid; client integration is next.
2026-07-19 06:06:00 +02:00
Loretta 72e458fddb Refactor SignalR response kind to enum-based model
Replaced IsRawBytesData with SignalResponseDataKind enum for extensible transport response handling (Default, RawBytes, GridDataQuery). Updated all protocol, client, and server logic to use the new enum. Dispatcher now validates and fills GridDataQuery responses, with error handling for non-upgraded endpoints. Updated XML docs, ADR 0004, and all related documentation and TODOs. Marked AcGridDataQuery<T> as [AcBinarySerializable(false)]. No functional change for existing calls; new logic is opt-in.
2026-07-19 05:07:10 +02:00
Loretta b9f874eb92 Unify grid data request/response as AcGridDataQuery<T>
Replaced the dual-object grid data virtualization model with a single round-trip carrier, AcGridDataQuery<TDataItem>, now used for both request and response. Added IAcGridDataQuery interface. Updated all docs, ADR 0004, and TODOs to reflect the new design. Removed AcGridDataRequest.cs and migrated all references to the new type. Updated dispatcher, endpoint, and sort descriptor docs for the revised contract. Adjusted build/test scripts for the new structure.
2026-07-19 03:49:03 +02:00
Loretta c896e4ecba Scaffold grid data virtualization types and docs
Introduced initial scaffolding for grid data virtualization (ADR 0004) in AyCode.Core and AyCode.Blazor. Added `GridDataMode` enum, `AcGridDataRequest`, and `AcGridSortDescriptor` types for future server-side grid filtering and paging. Updated documentation and ADRs to reflect these inert declarations; no functional changes or parameter exposure yet.
2026-07-18 09:33:34 +02:00
Loretta 9c31276357 Unify grid data virtualization ADRs and docs
- Major rewrite of ADR 0004: now covers unified server-side data virtualization (filtering, sorting, paging, count) via AcGridDataRequest in SignalParams; phased approach replaced by single feature; security, rollout, and alternatives updated.
- New ADR 0005: introduces IAcDataTransport abstraction for Blazor Server in-process data transport, enabling grid stack reuse across SignalR and in-process modes; covers DI scoping and serialization avoidance.
- Updated MGGRID and SIGNALR_DATASOURCE docs to reflect new virtualization design, terminology, and ADR cross-references; TODOs/status updated.
- GLOSSARY and README revised: AcExpressionNode marked deprecated, grid filtering clarified as DevExpress criteria, ADR index/status updated.
- Technical clarifications: consistent metadata/request/response patterns, SignalParams usage, and separation of transport/dispatcher/endpoint concerns; future work noted.
2026-07-18 08:46:17 +02:00
Loretta b44c1d3687 Add TODO for filter panel sorting; expand ADR on ordering
Added ACBLAZOR-GRID-T-K9F4 to MGGRID_TODO.md for sorting lookup items in MgGridFilterPanelTagBox via new OrderItemsByText and OrderItemsDescending properties. Updated ADR for MgGridLayoutSave and filter-panel restore to document the framework-level sorting decision and rationale. Clarified DevExpress DxTagBox lacks a sort API; sorting will be handled internally. No code changes—documentation and planning only.
2026-07-17 15:43:03 +02:00
Loretta 11d1ae1d17 Improve filter panel restore logic and doc clarity
Major overhaul of MgGridFilterPanelTagBox restore/healing logic:
- Level-triggered healing prevents lost filter criteria after async loads.
- Healing now only triggers when needed; delayed assert ensures stability.
- ValuesChanged event guarded to avoid accidental filter clearing.
- Diagnostics dormant but retained for future debugging.
- Comments and summaries updated for clarity.

Docs (MGGRID_PARAMETERS.md, 0004-signalr-datasource-server-side-filtering.md) updated to explain new logic, rationale, and future plans.

Minor refactor in GridShippingDocument.razor for reload clarity.
No functional change in ShippingsAdmin.razor (comment only).
2026-07-17 15:23:24 +02:00
Loretta efd4c67cc0 Fix filter panel restore race; doc v2 plan & logging
Refactored MgGridFilterPanelTagBox to robustly heal filter criteria vs. async lookup data race, using level-triggered snapshot detection and reload. Added diagnostic logging. Updated MGGRID docs to explain the new logic, rationale, and planned v2 layout envelope solution. Minor unrelated shell command tweaks in settings.local.json.
2026-07-17 06:31:41 +02:00
Loretta d164a99ed9 Fix: TagBox reloads on in-place Data refill
Improved MgGridFilterPanelTagBox<TData, TValue> to detect in-place Data collection refills and trigger DevExpress editor Reload(), ensuring tags resolve when the collection is updated without changing its reference. Updated MGGRID_PARAMETERS.md to document this behavior and clarify why Reload() is needed for in-place fills.
2026-07-17 05:51:31 +02:00
Loretta b06d321bfb Refactor grid filter panel system for clarity/extensibility
Refactored the grid filter panel system:
- Renamed "quick-filter panel" to "filter panel" throughout.
- Introduced IMgGridFilterPanelComponent interface for filter panel contract.
- Split MgTagBox (now behavior-free) and new MgGridFilterPanelTagBox for grid filter logic.
- Grid tracks filter panel components, synchronizes criteria, and exposes new filter panel methods.
- Filter panel always rendered (CSS-hidden when off) to prevent invisible filtering.
- Added right-aligned "Clear Filters" button for panel-owned filters.
- Updated docs, parameter tables, and glossary for new terminology and structure.
- Updated usages to new component; legacy grid class implements no-op interface.
- Documented edge cases and updated CSS for new layout.
2026-07-17 05:34:01 +02:00
Loretta 1e518d9a1e Refactor MgGridBase filter panel & unify filter criteria
- Moved quick-filter panel below toolbar in MgGridBase for improved layout and visual alignment; FilterPanel now renders as a styled band between toolbar and group panel.
- Exposed GridSizeMode on IMgGridBase and MgGridBase; MgTagBox now inherits grid density by default for consistent sizing.
- Renamed FilterText to CustomFilterCriteria across grid/data source classes and tests to clarify its role as a DevExpress criteria string.
- Updated documentation (README.md, MGGRID_PARAMETERS.md, GLOSSARY.md, ADR 0004) to reflect filter panel placement, parameter naming, and sizing/layout changes.
- Adjusted CSS for new filter panel layout and visual integration.
- Updated example usages and tests to match new API and layout.
2026-07-16 15:01:37 +02:00
Loretta 2d62fad300 Add quick-filter panel slot to MgGridBase
Introduced a flexible quick-filter panel to the grid system via a new FilterPanel slot in MgGridBase. Added interface and implementation for filter panel visibility and toggle logic. Updated toolbar to show a Show/Hide Filters button when applicable. MgTagBox now applies per-field quick-filters using SetFieldQuickFilter. Removed redundant MgGridFilterPanelBase. Updated documentation and ADR 0004 to cover the new feature. Added CSS for consistent filter panel styling and demonstrated usage in GridPartner.razor. Legacy MgGridBase updated for compatibility.
2026-07-16 06:28:55 +02:00
Loretta 4eb0d1566c Add quick-filter panel support to MgGridBase
Introduced a FilterPanel slot and supporting components for per-field quick filtering in DevExpress Blazor grids. Added MgGridFilterPanelBase and MgTagBox for declarative, AND-combined field filters. Updated IMgGridBase and base classes to support SetFieldQuickFilter. Documented the extension in ADR 0004 and clarified SearchText handling. Registered DevExpress docs fetch domain and performed minor cleanups.
2026-07-15 15:20:44 +02:00
Loretta 27d5e03955 Centralize environment state in AcEnv framework
Refactored FruitBankConst and FruitBankConstClient to delegate PROD/DEV environment logic to AcEnv.IsProdDb, removing local state and events. Updated MGGRID_TODO.md with ADR reference. Added ADR 0002 documenting the migration of environment infrastructure (BaseUrl, env state, badge) to the framework. Updated settings.local.json with new doc/code read commands and improved build error reporting.
2026-07-15 10:16:26 +02:00
Loretta 3d377c542d Clarify agent protocol: sequential doc reads required
Added critical instructions to AGENTS.md mandating that `.github/copilot-instructions.md` must be read first in every session, with all session-start steps executed before any code or query actions. Documented a strict sequential execution override, prohibiting parallel doc/code reads, and mapped Copilot tool names to Codex shell commands. No functional changes to appsettings.json.
2026-07-13 14:04:34 +02:00
Loretta 60a5599214 Isolate InfoPanel templates, document DataItem contract
- Added MGGRID_TODO.md entry (ACBLAZOR-GRID-T-E3B6) for ErrorBoundary isolation of consumer templates and DataItem contract documentation.
- Updated GridShippingDocumentInfoPanel.razor to guard against null ShippingItems after add/save, preventing unhandled exceptions.
- Added PowerShell command in settings.local.json to count MGGRID_TODO.md lines for monitoring.
2026-07-13 08:57:06 +02:00
Loretta 9a0c077f2a Update MgGrid reload logic, add IsProd env flag, doc fixes
- MgGridBase: call Reload after item changes to refresh grid view
- Add IsProd environment flag (FruitBankConst, IFruitBankDataControllerCommon, SignalRTags, client/server wiring)
- Logger DI: fix constructor param, default AppType to Web in configs and DI setup
- Docs: clarify MgGrid edit flow, editor requirements, companion component structure, and disposal logic
- Add PowerShell test command for EkaerTradeCardValidatorTests
2026-07-12 14:32:05 +02:00
Loretta a254dbe722 InfoPanel: custom edit templates & null edit model fix
- Add InfoPanelEditTemplate to MgGridDataColumn for custom InfoPanel editors with refresh support
- Introduce MgGridInfoPanelEditContext for edit context/refresh
- Harden OnCustomizeEditModel to handle null edit models, preventing InfoPanel crashes and logging warnings
- Update docs: usage, editor resolution order, and new issue entry (ACBLAZOR-GRID-I-N7K2)
- Refactor grid templates to use new features and ensure consistent editor behavior
- Minor doc and formatting improvements
2026-07-12 08:36:20 +02:00
Loretta 076162f6ee Enable server-roaming for grid layouts; EKÁER depot guard
Extended MgGridBase to support server-roaming of user grid layouts via SignalR, controlled by the new EnableServerLayouts parameter. Updated Save/Load/HasUserLayoutAsync logic and documentation. Added SignalR API methods for grid layout storage. In EKÁER, added TryDepotError to require PartnerDepot before XML generation and enforced gross weight > 0 per line. Updated docs and settings.local.json for new features and automation.
2026-07-10 15:37:26 +02:00
Loretta bd65d70d60 Update config for local dev; add AyCode.Blazor consumers doc
- Added AyCode.Blazor/CONSUMERS.md to document consumer repos and usage for impact assessment.
- Switched appsettings.json URLs to localhost for local development; production URLs are now commented out.
- Commented out Blazor/DevExpress compression and optimization settings in .csproj files.
- Minor whitespace and indentation cleanups.
- No functional code changes.
2026-07-09 13:12:25 +02:00
Loretta 7322af703b Switch archive policy to year-month buckets (LLMP-DEC-67)
Updated all docs, skills, and examples to use year-month archive files (`*_<YYYY>_<MM>.md`) for `_ISSUES.md`, `_TODO.md`, and `LLM_PROTOCOL_DECISIONS.md`. Decision Log rolling window now governed by LLMP-DEC-67 (last 15 entries active). Clarified archive file handling, updated uniqueness checks, and revised references throughout. Closed and documented resolution for `FBANKAPP-DMODEL-I-P6X4` in `DATAMODEL_ISSUES.md`.
2026-06-15 18:01:44 +02:00
Loretta 7c47d212f2 EKÁER grid: status enum fix, batch create, UI/UX, DB guard
- Fixed EkaerHistory status persistence (int+enum wrapper for linq2db)
- Added batch EKÁER record creation (toolbar date picker, SignalR, UI)
- Enhanced GridEkaerHistory: status, error, XML copy, manual edit
- Improved column display format handling in MgGridInfoPanel
- Updated SignalR binary protocol streaming strategy doc
- Added DB guard PowerShell hook: blocks non-_DEV DB shell access
- New styles for EKÁER toolbar date picker
2026-06-11 08:52:09 +02:00
Loretta 04f0d7d3e3 Refactor: remove Server DLLs, unify SignalR references
- Removed all AyCode.Services.Server and Server DLL references from projects and code; now use only AyCode.Services and AyCode.Services.SignalRs.
- Updated all documentation links to reference AyCode.Services/docs/SIGNALR_DATASOURCE/README.md.
- Enabled AOT compilation in FruitBankHybrid.Web.Client.
- Added InternalsVisibleTo for AyCode.Services.Server.Tests to support internal testing.
- Introduced AcBinaryProtocolThreadPoolTests for thread-pool regression and contract testing.
- Added P2 feature TODO for per-message protocol mode selection in AcBinaryHubProtocol.
- Cleaned up using directives and removed obsolete Server-specific references.
- Minor formatting and whitespace improvements.
2026-06-08 16:53:27 +02:00
Loretta 8e5b13e90c Add logger support to grids, data sources, and helpers
- Added optional logger to TaskHelper.Forget for fire-and-forget error logging
- Updated MgGridBase and data sources to accept and use logger instances
- Refactored AcSignalRDataSource to log deserialization faults
- Modified constructors and usages of SignalRDataSourceList/Observable for logger injection
- Added CountryCode to CargoTruck and displayed in new GridCargoTruck
- Introduced GridCargoTruck.razor and base class with logger integration
- Updated GridCargoPartner to use new cargo truck grid as detail row
- Improved code style and ensured consistent error handling throughout
2026-05-30 06:47:05 +02:00
Loretta 92296c479b Add XML doc standards; enable compiler-generated files
Added "XML Documentation" section to CONVENTIONS.md, specifying usage of <summary> tags for developer-facing comments and restricting implementation details to external docs. Enabled EmitCompilerGeneratedFiles in FruitBank.Common.csproj for improved debugging and analysis.
2026-05-23 09:27:29 +02:00
Loretta b61b8085df [LOADED_DOCS: 3 files, no new loads]
Refactor SIGDS docs, archive DEC log, add pipe tests

- Updated all references to AcSignalRDataSource docs to new SIGNALR_DATASOURCE/README.md location; introduced SIGDS topic and paired issues/TODO files.
- Implemented new Decision Log archival policy: last-15-active entries remain, older entries moved to year-month archive (LLMP-DEC-65, 67); updated docs-archive skill for two-rule rotation.
- Added new SIGDS architectural TODO (ACCORE-SIGDS-T-D9F2) for relocating DataSource code.
- Updated doc tables, glossaries, and conventions for SIGDS.
- Added AcBinarySerializerPipeParallelTests.cs for parallel serialization/deserialization round-trip tests.
2026-04-28 06:36:39 +02:00
Loretta 3cee1e20d7 [LOADED_DOCS: 3 files, no new loads]
Update ID format to use per-repo prefixes and random suffix

Migrated all issue, TODO, and decision IDs to a new 4-part format: <PREFIX>-<TOPIC>-<TYPE>-<RAND>. Added per-repo prefix declarations in copilot-instructions.md and documented conventions in REPO_PREFIXES.md. Updated all topic registries, logs, cross-references, and documentation to use the new format. Introduced MIGRATION_ID_MAPPING.md for old-to-new ID mapping. Enhanced skills and protocol audit logic to validate and enforce per-repo prefixes and topic codes at runtime. Clarified Framework-First doctrine and ensured all references are unambiguous.
2026-04-26 19:12:50 +02:00
Loretta b4d68e1fa4 [LOADED_DOCS: 3 files, no new loads]
Add Rule #6, AUTH topic, ADRs, config & doc updates

- Codified Rule #6 (authority, rule scope, skill invocation) in all primary copilot-instructions.md files
- Clarified skill pre-load/lazy-load rules and LOADED_DOCS prefix
- Forbid skill/template version labels in Decision Log governance
- Scaffolded new AUTH topic with README, ISSUES, and TODO files
- Added repo/project ADR folders and templates; new ADR for AcBinaryHubProtocol decorator stack
- Migrated cross-cutting issues/TODOs to Closed with detailed resolution
- Made FruitBankHybrid.Shared/appsettings.json the canonical config source; suppressed Razor SDK auto-publish to avoid file collisions
- Updated protocol/wire format docs for AcBinaryHubProtocol
- Minor config: updated ports, WaitForFlush, and csproj content rules
2026-04-26 13:44:12 +02:00
Loretta 1a7bb3bc10 Add adr-author skill, ADR template, and log security issues
- Introduced the `adr-author` skill for structured ADR creation; updated session setup and shared skills to require pre-loading it.
- Added `SKILL.md` and `ADR_TEMPLATE.md` for ADR authoring workflow and documentation.
- Updated protocol decision log with entries for the new skill and its integration.
- Documented two critical JWT logging security issues in `LOGGING_ISSUES.md`.
- Minor: added a cleanup Bash command in `settings.local.json`.
2026-04-25 07:24:16 +02:00
Loretta 806c6e5351 [LOADED_DOCS: 4 files, no new loads]
Refactor docs: topic folders, TOON, XCUT, protocol sync

- Migrated all topic documentation into dedicated folders with canonical `README.md`, `ISSUES.md`, and `TODO.md` per topic (e.g., `LOGGING/`, `SIGNALR/`, `BINARY/`, `TOON/`).
- Added comprehensive TOON serializer documentation: design, format, options, attributes, inference, issues, and TODOs.
- Introduced `XCUT` folder for cross-cutting issues and TODOs, with canonical entries and topic cross-references.
- Updated all references and navigation to use new folder-based doc paths; fixed links and clarified doc structure.
- Enhanced AI agent protocol: enforce session skill preloading, `[LOADED_DOCS: ...]` short-name prefix, and mandatory `docs-check` skill for doc/code sync.
- Updated `.csproj` to include all `README.md` files for IDE visibility.
- Improved and clarified SignalR, grid, and project-level documentation.
- Minor code/test tweaks and doc content corrections for consistency.
2026-04-24 21:54:03 +02:00
Loretta 5d4f078906 [LOADED_DOCS: NONE]
Update protocol, docs-discovery skill, and doc layering

- Switched AI AGENT CORE PROTOCOL to new `[LOADED_DOCS: N files (+K this turn: ...)]` prefix format in all primary instruction files; updated examples and enforcement details.
- Added `docs-discovery` skill for proactive .md doc loading before code search; documented usage and integration as a shared agent skill.
- Introduced `## Protocol History` section and `LLM_PROTOCOL_DECISIONS.md` decision log for cross-repo protocol change tracking.
- Expanded protocol-audit skill and `REPOS.md` to support 8 instruction files (primary/inherit split), new invariants, and known issues.
- Added/updated structured TODO and issues docs for serialization, logging, and SignalR binary protocol.
- Improved cross-references, doc layering, and clarified documentation-first coding workflow.
- Various minor doc clarifications and formatting for protocol consistency.
2026-04-24 08:21:49 +02:00
Loretta 161ef4bba9 Framework-first doctrine, DI logger factory, config refactor
Introduced framework-first design rules and updated documentation to clarify framework vs. consumer boundaries. Added AcLoggerOptions and DI-based logger factory extensions to AyCode.Core, enabling per-category logger instantiation from appsettings.json. Standardized SignalR connection setup with AddAcDefaults, replacing project-specific code. Enhanced protocol configuration for DI scope isolation. Refactored appsettings.json structure and added MSBuild targets for config propagation. Removed obsolete code and updated comments to match new patterns.
2026-04-23 16:11:22 +02:00
Loretta b39d624406 [LOADED_DOCS: .github\copilot-instructions.md, C:\Users\Fullepi\copilot-instructions.md]
Refactor SignalR client DI and config, add test factory

Refactored FruitBankSignalRClient construction to use DI and centralized configuration from appsettings.json across all platforms. Introduced TestSignalRClientFactory for consistent test setup. Added FruitBankHubConnectionExtensions for reusable SignalR connection and logging configuration. Updated Program.cs and MauiProgram.cs to register logger factories, log writers, and IHubConnectionBuilder via DI. Embedded appsettings.json in MAUI and updated .csproj references for build flexibility. No business logic changes; all updates are infrastructure and test setup.
2026-04-22 22:45:32 +02:00
Loretta f1e93f939f Clarify and enforce doc-first, no-redundant-read policy
Correct rule references for no re-reading of loaded `.md` files. Add explicit "STRICT NO-RE-READ POLICY" section defining context and re-read conditions. Expand context recovery rules with auto-detection triggers and specify directories for recovery. These changes make doc-first and anti-loop policies clearer and more robust, ensuring efficient and up-to-date documentation usage.
2026-04-04 20:50:51 +02:00
Loretta bcea6b3205 Strengthen doc-first, multi-repo protocol and clarify tools
Expanded copilot-instructions.md to enforce strict doc-first and cross-repo hard-gate rules, including per-question doc checks and a no re-read policy with explicit penalties. Broadened consent requirements for all file modifications. Updated context recovery paths. In CLAUDE.md, added sequential execution override and mapped Copilot tool names to Claude Code equivalents, ensuring protocol consistency across tools.
2026-04-04 09:27:49 +02:00
Loretta d5fdd57ddd Enforce strict AI agent protocol, doc sync, and glossary
- Added "AI AGENT CORE PROTOCOL" to all copilot-instructions.md files: mandates [LOADED_DOCS] prefix, hard-gates tool usage, enforces no-re-read of .md files, and requires user consent for doc/code changes.
- Updated CLAUDE.md to require reading copilot-instructions.md first.
- Added topic-based doc separation and folder navigation rules.
- Changed doc sync: agent now passively detects discrepancies and asks before updating docs.
- Every code-modifying response must end with a [DOCUMENTATION CHECK] section.
- Centralized measurement system and domain traps in new FruitBank.Common/docs/GLOSSARY.md; updated references in FruitBankHybridApp GLOSSARY.md.
- Clarified schema and doc locations in FruitBankHybridApp README.md.
- Added hybrid execution model section to AyCode.Core BINARY_FEATURES.md.
- Removed unnecessary BeginUpdate/EndUpdate calls in MgGridBase.cs for layout persistence.
- Removed full Toon schema from plugin SCHEMA.md to avoid duplication.
2026-04-02 09:02:54 +02:00
LorettaandClaude Opus 4.6 045b8e1526 Update LLM instruction files for token efficiency and cross-repo navigation
- CLAUDE.md: reduced to single-line pointer to copilot-instructions.md (eliminates redundant auto-loaded content)
- copilot-instructions.md: added @repo name field, relative paths in own-dep-repos, "do not re-read .md files" rule, and explicit permission to navigate external repos

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 16:15:01 +02:00
Loretta da11df5384 Clarify and expand copilot-instructions conventions
- Clarified DllReference usage for AyCode.Core projects, noting its necessity for build isolation and nopCommerce plugin compatibility.
- Reworded redundancy guideline to stress checking for and reusing existing methods before adding new logic.
- Expanded .md file sync rule: update relevant docs when code changes, resolve contradictions in favor of code, and address shared broken references; during review, suggest (not add) new documentation for useful behaviors.
- Rephrased AyCode.Core solution description for clarity regarding type locations.
2026-03-30 10:15:46 +02:00
Loretta b062c4c712 Add structured metadata and update doc references
- Introduce @repo and @project metadata blocks in copilot-instructions.md and README.md for all projects, declaring type, dependencies, and layer.
- Update all documentation links to reference canonical AyCode.Core and AyCode.Blazor repo locations, removing hardcoded paths.
- Move MgGridBase and related doc references to AyCode.Blazor.Components/docs/ to reflect repo reorg.
- Expand project READMEs with purpose, key files, and dependency tables for clearer architecture.
- Update glossary, conventions, and architecture docs to match new doc structure and reference locations.
- Apply minor corrections to terminology and file references for consistency and accuracy.
- Standardize documentation and make project relationships explicit.
2026-03-30 08:54:33 +02:00
Loretta d1567323d8 Refactor MgGrid documentation into modular files
Split MGGRID.md into focused docs (parameters, CRUD, layout, detail, rendering, InfoPanel, toolbar, columns, datasource) under AyCode.Blazor.Components/docs/. Updated all references, READMEs, and project/solution files to match new structure. Clarified doc layering conventions and core doc links. No code changes—documentation and project organization only.
2026-03-30 08:00:53 +02:00
Loretta 453e21a844 Expand and clarify MgGrid system documentation
Major overhaul of MgGrid-related documentation:
- README.md: Reference full technical docs, update key files list, add new components.
- ARCHITECTURE.md: Add MgGridToolbarTemplate, MgGridSignalRDataSource; clarify component roles.
- GLOSSARY.md: Add comprehensive MgGrid System section with cross-references.
- MGGRID.md: Rewrite overview, hierarchy, CRUD, event wiring, lifecycle, layout, InfoPanel, toolbar, and data column sections for accuracy and completeness.
- copilot-instructions.md: Refine .md sync convention, add documentation layering rule.
- CONVENTIONS.md: Remove redundant code reuse section.

Brings docs in sync with codebase and improves clarity for developers.
2026-03-29 18:29:24 +02:00
Loretta 52131fdf25 Clarify AyCode.Core usage in docs; add MGGRID.md to solution
Expanded documentation in copilot-instructions.md, CLAUDE.md, and ARCHITECTURE.md to clarify that core framework types are defined in AyCode.Core and should be referenced there. Added a "Related Solutions" section and updated the dependency graph. Included docs\MGGRID.md in the solution items list. Improved guidance for locating and using AyCode.Core types.
2026-03-29 10:06:11 +02:00
Loretta 6cce23a124 Add MgGrid system documentation and architecture overview
Added a new section to ARCHITECTURE.md summarizing the MgGrid component system, its hierarchy, and key behaviors, with a link to the new MGGRID.md. Created MGGRID.md with comprehensive documentation on MgGrid design, usage, parameters, lifecycle, events, layout persistence, master-detail, InfoPanel, fullscreen, and public interface. Includes code examples, tables, and diagrams for developer reference.
2026-03-29 10:01:12 +02:00
Loretta b80b117a38 Update docs: enforce .md sync, clarify structure & TFMs
Expanded and clarified solution/project documentation:
- Added all top-level docs and docs/ folder as solution items in .sln files
- Inserted maintenance notices in all project and subfolder READMEs: require .md sync with code
- Main READMEs now include project tables with TFM, purpose, and README links
- ARCHITECTURE.md now details dependency graph and TFM rationale
- CONVENTIONS.md and copilot-instructions.md require code reuse, no redundancy
- Glossary and conventions updated to require terminology/rule updates with code changes
- Emphasized DLL-only AyCode.Core refs and nopCommerce .NET 9.0 requirement
- Clarified domain terms and intentional typos
- No code logic changes; documentation and guidance only
2026-03-29 09:26:15 +02:00
Loretta 79eceff47a Add LLM onboarding docs and standardize project READMEs
- Introduced `.github/copilot-instructions.md` as the single source of truth for domain rules, conventions, and pitfalls in each solution.
- Added `CLAUDE.md` to guide Claude to read domain rules, glossary, and README before code generation.
- Updated all solution and project `README.md` files to document project purpose, structure, key files, and LLM context (Copilot/Claude/Cursor).
- Added or revised `docs/ARCHITECTURE.md`, `docs/CONVENTIONS.md`, and `docs/GLOSSARY.md` to clarify dependency graphs, naming, patterns, and terminology.
- For FruitBankHybridApp, added `docs/SCHEMA.md` (Toon format) and expanded the glossary with business/measurement terms and common traps.
- Updated all subfolder READMEs to list key files, conventions, and LLM maintenance notes.
- Ensured all documentation is cross-referenced, up-to-date, and includes explicit instructions for LLMs to keep docs in sync with code and avoid suggesting removal/rollback as a solution.
- Standardized documentation and onboarding for maintainability and LLM/code quality across all solutions.
2026-03-28 22:38:23 +01:00
Loretta 85dbb853c7 Update ToonTests to serialize type metadata only
Replaced AcToonSerializer.Serialize with SerializeTypeMetadata<FullProcessModel> in ToonTests. The test now serializes only the type metadata for FullProcessModel using the domain description, rather than serializing the actual data instance. Assertions and comments remain unchanged.
2026-03-28 17:25:12 +01:00
Loretta 56475da43b Merge branch 'FruitBank_v0.0.7.0' into FruitBank_v0.0.8.0 2026-03-28 16:21:51 +01:00
Loretta cc2ab55402 Refactor MgGridDataColumn URL templating & update csproj refs
Refactored MgGridDataColumn to efficiently parse and cache URL templates and property accessors, improving cell rendering performance. Replaced Regex.Replace with a compiled, cached approach using [GeneratedRegex]. Updated all project files to use $(Configuration) in DLL HintPaths for correct build output. Added Microsoft.AspNetCore.App framework reference and removed unused references. No breaking API changes.
2026-03-24 18:38:44 +01:00
Loretta 518cfa6865 Refactor measuring UI, centralize status logic
- Reworked MeasuringIn to use tabbed interface with card view and improved form layout
- Unified status badge/text/color logic via new MeasurementService helpers
- Updated MeasuringOut to use centralized status display and improved order note handling
- Added shipping date column to GridShippingDocument
- Improved link styling in MgGridDataColumn
- Removed redundant code and applied minor UI/layout tweaks for consistency and maintainability
2026-03-23 17:43:06 +01:00
Loretta 873ffe91d2 Add scroll-to-item support to MgCardView component
- Introduced `Height`, `ScrollToItem`, and `ItemKeySelector` parameters to MgCardView for scroll targeting and internal scroll area.
- Cards now have stable DOM ids for precise JS-based scrolling.
- Added mgCardView.js with smooth scroll logic; included script in app.
- Updated CSS for scrollable card area.
- Updated MeasuringOut.razor to use new scroll features and fixed time format.
2026-03-23 05:32:15 +01:00
Loretta 40223f9182 Add MgCardView component & refactor MeasuringOut to tabs
Introduced a reusable, responsive MgCardView<TItem> component for displaying data as cards with optional filtering and paging. Refactored the MeasuringOut page to use a tabbed interface: daily tasks are now shown as filterable cards, and measuring details are separated into a dedicated tab. Improved UI clarity, code organization, and maintainability.
2026-03-22 20:01:49 +01:00
Loretta 0da7b67c60 Allow info panel collapse, improve grids, update SignalR
- Enable collapsing of info panel in MgGridWithInfoPanel for better UX
- Refactor GridStockTakingItem columns to use nameof(), clarify bindings, and improve maintainability
- Enhance MeasuringOut order selector with advanced search and clear button
- Update SignalR.Core reference to 9.0.14 in project file
- Minor cleanup of commented group display logic in grid
2026-03-22 16:04:17 +01:00
Loretta ac244fb9fb Enable source-generated binary serialization & AOT
Added AcBinarySerializable and ToonDescription to DTOs/entities for source-generated serialization. Enabled AOT compilation for Blazor/WebAssembly projects. Integrated AyCode.Core.Serializers.SourceGenerator as analyzer. Updated solution and project files, improved entity metadata, and adjusted imports. Commented out InitializeComponent in WinUI App for startup handling.
2026-03-07 14:05:39 +01:00
Loretta 6a95f1cc00 Merge branch 'FruitBank_v0.0.7.0' into FruitBank_v0.0.8.0 2026-03-06 14:51:18 +01:00
Loretta d5a908a46f Update BuildUrlFromTemplate to use Regex with lambda
Refactored BuildUrlFromTemplate to use Regex.Replace with a lambda for dynamic property replacement in template strings. Added a TODO comment about optimizing with cached delegates.
2026-02-23 18:21:20 +01:00
Loretta 9fc12e2fcc Improve toolbar controls and async UX in stock taking
- Added EnableNew and EnableEdit parameters to MgGridToolbarTemplate for finer control of toolbar button states.
- Disabled "New", "Edit", and "Delete" actions in history and item grids by passing explicit parameters.
- Introduced DxLoadingPanel in StockTakingTemplate for better async feedback.
- Disabled "New" and "Close" buttons during async operations to prevent duplicates.
- Enhanced combo boxes with search/filter and usability features.
- Updated new/close stock taking logic to show loading, handle errors, and prevent duplicate actions.
- Set focus to item combo box after saving a StockTakingItemPallet.
- Removed global loading panel from StockTaking.razor; loading is now handled locally.
- Performed minor code cleanups and removed obsolete code.
2026-02-07 08:55:00 +01:00
Loretta 46cafcf382 Merge branch 'FruitBank_v0.0.7.0' into FruitBank_v0.0.8.0 2026-01-12 07:21:47 +01:00
Loretta 7041b795ad Refactor SignalR hub registration and background tasks
- Use Forget() extension for fire-and-forget tasks in MgGridSignalRDataSource
- Remove legacy commented DevAdminSignalRHub code
- Switch to DynamicMethodRegistry for hub method registration, improving startup performance by deferring reflection
- Add clarifying comment for remaining legacy message handling code
2026-01-06 08:55:38 +01:00
Loretta b6f51bc2a1 Add LINQ Expression JSON serialization & SignalR grid source
- Introduce AcExpressionHelper and related classes for serializing/deserializing LINQ Expression trees and IQueryable queries to/from JSON, enabling remote transport and execution.
- Add MgGridSignalRDataSource<TDataItem, TId> for instant local filtering and background refresh in DevExpress grids using SignalR.
- Update bunit NuGet package to v2.4.2 in test projects.
- Minor: update FruitBank base URL comment, add new test in OrderClientTests.
2025-12-30 19:29:50 +01:00
Loretta 500e39a514 Enable conditional Delete button in grid toolbars
Add EnableDelete parameter to MgGridToolbarTemplate and set it dynamically in GridShippingDocument and GridShippingItemTemplate based on MeasuringStatus. Import relevant enums, make Grid_CustomizeElement static, and remove checked attribute from NavMenu. Improves safety and user experience for deletions.
2025-12-24 16:58:19 +01:00
Loretta f95602e82d Add AI process modal to shipping grid with toolbar button
Added an "AI process" toolbar button to the shipping document grid, styled with a new magic/sparkles icon. Clicking the button opens a large modal (DxWindow) containing an iframe-based AI processing form (AiProcessFormTemplate). The modal reloads grid data on close. Also includes related CSS for the icon, minor grid layout logic improvements, and retains commented file upload code for reference.
2025-12-23 15:22:52 +01:00
Loretta c468583afd Add user layout management to grids with toolbar actions
- Introduced separate auto-save and user-save layout storage keys
- Added IMgGridBase methods for saving, loading, resetting, and checking user layouts
- Updated grid toolbar with "Layout" menu (load, save, reset) and new icons
- Improved layout persistence logic and default layout restore
- Enabled forced grid re-render on layout reset
- Adjusted grid pager and page size defaults
- Updated related components to use new storage keys
- Fixed minor bugs and set RELEASE log level to Debug
2025-12-23 11:10:19 +01:00
Loretta 4dbeb507fe Add URL link support to grid columns and info panel
- Introduced UrlLink parameter to MgGridDataColumn for clickable cell links with property placeholder support.
- Updated MgGridInfoPanel to render links for columns with UrlLink.
- Added unit tests for UrlLink rendering and value replacement.
- Added DynamicColumnAddingEventArgs and OnDynamicColumnAttributeAdding for dynamic column customization.
- Refactored layout storage key logic and enabled persistent info panel splitter size in MgGridWithInfoPanel.
- Updated product/order grids to use MgGridDataColumn with UrlLink and switched ProductDtos to AcObservableCollection for reactivity.
- Added AddPartner method to IFruitBankDataControllerCommon and FruitBankSignalRClient.
- Miscellaneous fixes: logger initialization, code cleanup, and improved comments.
2025-12-22 14:37:55 +01:00
Loretta bad4e50c17 Add MgLazyLoadContent, grid layout refactor, tests
- Introduced MgLazyLoadContent component with JS observer for lazy rendering of heavy content.
- Refactored MgGridBase for user-specific, customizable layout persistence using JS interop.
- Improved MgGridInfoPanel caching and state batching for performance.
- Updated PDF viewer to use lazy loading for better UX.
- Added AyCode.Blazor.Components.Tests project with bUnit/MSTest grid layout tests.
- Updated solution/project files and removed obsolete code.
- Minor UI and JS module loading improvements.
2025-12-21 16:29:36 +01:00
Loretta 9d682bd741 DevExpress Fluent theme: grid/info panel refactor
Major refactor for DevExpress Fluent theme compatibility:
- InfoPanel templates now use strongly-typed context (`InfoPanelContext`)
- Unified grid layout with `MgGridWithInfoPanel` wrapper
- CSS updated to use Fluent theme variables and container queries
- App-wide CSS cleanup and formatting improvements
- `.editorconfig` added for modern CSS support
- Improved InfoPanel instance resolution for nested grids
- Codebase is cleaner, more maintainable, and ready for further customization
2025-12-21 08:24:40 +01:00
Loretta 057f576375 Improve info panel tables, PDF support, and splash screen
Refactor shipping document info panel tables for better appearance and responsiveness using Bootstrap classes and improved CSS. Add PDF.js and custom PDF viewer scripts to enable PDF rendering in the info panel. Update splash screen handling for better Windows compatibility. Expand allowed Bash commands for development. Ensure UI updates in MgGridBase are properly scheduled with InvokeAsync.
2025-12-20 10:20:51 +01:00
Loretta 15776ca537 Refactor fullscreen grid UI; add serializer diagnostics/tests
- Replaced DxWindow with custom Bootstrap 5 fullscreen overlay for grid components, improving fullscreen UX and styling.
- Added new CSS for fullscreen overlay, header, and body; retained legacy DxWindow styles for compatibility.
- Introduced SignalRSerializerDiagnosticLog flag to control binary serializer diagnostics at runtime.
- Enabled diagnostics in DevAdminSignalRHub, FruitBankSignalRClient, and Program.cs based on the new flag.
- Updated OrderClientTests to use GetStockTakings(false).
- Added StockTakingSerializerTests for binary serialization/deserialization validation and debugging.
2025-12-20 08:40:03 +01:00
Loretta 017eb16c4b Refactor MgGridInfoPanel for theme, UX, and PDF perf
- Refactored MgGridInfoPanel for DevExpress theme compatibility and improved usability; streamlined HTML/CSS, added OnDataItemChanged event, and enhanced empty state handling.
- Updated CSS to use theme variables, improved responsive grid and table styling, and enhanced integration with DevExpress components.
- GridShippingDocumentInfoPanel now uses OnDataItemChanged to load a random PDF per row selection; table layout and totals improved.
- Optimized pdfViewer.js to cache rendered PDFs, skip redundant renders, and improve logging and error handling.
- Added empty helper classes for future extensibility.
- Minor: MainLayout now uses RefreshMainLayout for UI refresh after auto-login.
2025-12-19 13:59:00 +01:00
Loretta 4c86914884 Add fullscreen grid support and PDF preview in info panel
- Added fullscreen mode to grid and info panel components, including toolbar toggle and fullscreen styling.
- Introduced embedded PDF viewing in the info panel using PDF.js and a custom JavaScript viewer.
- Updated interfaces, CSS, and toolbar templates to support new features.
- Added new PDF asset (2_BANK  FRA.pdf) for document preview.
- Minor: Added local settings for Bash permission, fixed text encoding, and improved info panel table layout.
- No code changes in other referenced PDF files; added for informational or asset purposes only.
2025-12-19 07:15:54 +01:00
Loretta 5255917210 Enhance MgGridInfoPanel with responsive/fixed columns
Add support for both responsive and fixed column layouts in MgGridInfoPanel via new parameters (TwoColumnBreakpoint, ThreeColumnBreakpoint, FourColumnBreakpoint, FixedColumnCount). Refactor CSS to use variables for breakpoints, add fixed column classes, and update container queries. Move styles to a new global mg-grid-info-panel.css, referenced in App.razor and index.html. Improve view mode styling and accessibility. Add Partner.Country column to GridPartner.razor.
2025-12-18 11:41:07 +01:00
Loretta 739d0fa808 Refactor: decouple InfoPanel using MgGridWithInfoPanel
Major refactor to decouple InfoPanel logic from grid base. Introduces MgGridWithInfoPanel wrapper component to manage grid and InfoPanel layout and communication. InfoPanels are now customizable via Razor templates with named slots (header, footer, etc.), and grid-to-InfoPanel communication is routed through the wrapper. Removes legacy C#-only InfoPanel base classes and parameters from grid base. This improves flexibility, composability, and maintainability of grid+InfoPanel UIs.
2025-12-18 11:02:53 +01:00
Loretta 112d633590 Add extensible InfoPanel system with custom templates
Introduce a flexible InfoPanel architecture for grid components, allowing per-grid customization via a new InfoPanelType parameter. Add MgInfoPanelTemplateBase for code-based InfoPanel templates with overridable header, content, and footer sections. Support custom templates in MgGridInfoPanel via new RenderFragment parameters. Add MgGridDataColumn for InfoPanel-specific column settings. Demonstrate usage with a custom InfoPanel for ShippingDocument grid. Maintains backward compatibility with default InfoPanel behavior.
2025-12-18 10:03:32 +01:00
Loretta fe1a59a0bd Refactor grid toolbar and InfoPanel for reusability
Introduce reusable MgGridToolbarBase and MgGridToolbarTemplate components, replacing old toolbar implementations. InfoPanel now displays grid captions and includes a toolbar for quick actions. Refactor InfoPanel value rendering for improved DevExpress-like appearance. Update IMgGridBase and related classes to support captions and use new abstractions. Update usings and project structure accordingly.
2025-12-17 18:31:59 +01:00
Loretta 90f12a160e Refactor InfoPanel: non-generic, nested grid support
- Replace generic InfoPanel with non-generic version using IInfoPanelBase
- Add ParentGrid, GetRootGrid, and InfoPanelInstance to IMgGridBase for nested grid hierarchy
- Only root grid displays InfoPanel; nested grids inherit context
- InfoPanel now handles any data type via reflection and object
- All grid-to-InfoPanel communication routed through root grid
- Add option to show/hide readonly fields in edit mode
- Improve InfoPanel CSS for up to 4 responsive columns
- Remove redundant code and add debug output for InfoPanel data flow
2025-12-17 13:54:07 +01:00
Loretta 109a4b82b4 Refactor grid InfoPanel: sticky, responsive, new icons
- Redesigned MgGridInfoPanel to use a sticky, scroll-aware layout via JavaScript for better UX when scrolling.
- InfoPanel now uses a responsive CSS grid layout with container queries for 1/2/3 column display based on width.
- Added new toolbar icons using SVG masks for a modern, consistent look; updated toolbar item class names.
- Added "Prev Row" and "Next Row" navigation buttons to the grid toolbar, with corresponding methods in grid base classes.
- Unified edit state enum naming to MgGridEditState and updated all references.
- Improved InfoPanel cell rendering for better text overflow handling and tooltips.
- Updated CSS for InfoPanel and grid, including sticky pane support and icon styles.
- Registered mgGridInfoPanel.js in App.razor and index.html for JS interop.
- Minor UI/UX tweaks: InfoPanel header, background colors, and panel sizing.
2025-12-17 10:20:17 +01:00
Loretta 45294199cf Refactor grid editing, info panel, and toolbar system
- Introduce MgEditState enum and expose EditState on IMgGridBase
- Replace event-based syncing state with property-based state
- Redesign MgGridInfoPanel to support both view and edit modes with dynamic DevExpress editors and two-way binding
- Add visual distinction for edit/view modes in info panel
- Replace FruitBankToolbarTemplate with generic MgGridToolbarTemplate; toolbar adapts to grid edit/sync state
- Update all grid usages to use new toolbar
- Improve robustness, error handling, and maintainability throughout grid, info panel, and toolbar code
2025-12-17 06:21:21 +01:00
Loretta c1cf30b8f0 Add dynamic Info Panel to grids and update app splash image
Introduced a dynamic Info Panel to MgGridBase, allowing users to view details of the selected row in a side panel. Added the MgGridInfoPanel component with automatic form generation and styling. Updated all grid usages to use the new OnGridFocusedRowChanged event and enabled the info panel in GridPartner. Changed app logo and splash screen references in the Windows packaging manifest and added a placeholder splash image. Also included minor using fixes.
2025-12-16 16:12:38 +01:00
Loretta 920bc299aa Add grid sync state tracking and robust login redirection
Introduce IsSyncing and OnSyncingStateChanged to IMgGridBase and MgGridBase for real-time sync state tracking and event notification. Update FruitBankToolbarTemplate to enable/disable the reload button based on grid sync and reload state, subscribing to sync events and cleaning up on disposal. Implement IAsyncDisposable in MgGridBase to prevent memory leaks. Update login navigation to use forceLoad for reliability. These changes improve UI responsiveness and resource management.
2025-12-09 11:27:21 +01:00
Loretta 06f397e285 Refactor, enhance, and improve test coverage
Refactored `OnDataSourceLoaded` to be asynchronous for better state handling. Downgraded `Newtonsoft.Json` to version `13.0.3` across multiple projects for compatibility. Enhanced `MeasuringItemPalletBase` with `SetParentPropToNull` and `SetForeignKey` methods. Refactored `OrderItemPallet`, `ShippingItemPallet`, and `StockTakingItemPallet` to simplify table attributes and improve parent-child relationship handling.

Added `IsReadyForClose` to `StockTaking` for better closure validation. Updated SignalR tag constants to reflect new functionality. Improved Razor components (`PalletItemComponent`, `StockTakingTemplate`, `MeasuringIn`, `MeasuringOut`) to streamline logic and maintain proper references.

Introduced `JsonExtensionTests` for comprehensive validation of JSON serialization/deserialization, including deep hierarchies, circular references, and hybrid references. Added `test_debug.ps1` for streamlined test debugging. Performed general code cleanup and improved test coverage.
2025-12-08 15:50:57 +01:00
Loretta 0e2d31aa4b .Net10, VS2026; StockTaking in progress... 2025-12-01 16:18:47 +01:00
Loretta 687b745b4d Upgrade to .net10 and Visual Studio 2026; StockTaking in progress... 2025-11-28 08:15:58 +01:00
Loretta 06c266cc78 improvements, fixes 2025-11-26 09:42:16 +01:00
Loretta baaceacdd3 improvements 2025-11-21 16:28:49 +01:00
Loretta 44103b9613 improvements 2025-11-21 07:20:26 +01:00
Loretta dc4321c1d6 improvements, fixes 2025-11-20 08:30:49 +01:00
Loretta 8d4dd5aa90 improvements, fixes, etc... 2025-11-12 17:19:02 +01:00
Loretta 650066becf MgGridBase improvements, fixes 2025-11-08 06:34:18 +01:00
Loretta 935b6abf9a MgGridBase improvements, fixes 2025-11-07 14:10:49 +01:00
Loretta 5e74b93135 improvements 2025-11-06 21:11:46 +01:00
Loretta b7c2e7ea16 Merge branch 'TIAM_v0.0.6.0' into FruitBank_v0.0.7.0 2025-11-06 15:11:20 +01:00
Loretta 9d0ee493ac MgGridBase... 2025-11-06 15:06:10 +01:00
Loretta 7a76138d9a MsBuild targets 2025-11-06 14:40:31 +01:00
Loretta 85032a98fc Add AyCode.Blazor projects; 2025-11-05 15:09:47 +01:00
Loretta 7db379cd81 Remove AdminSignalRHub; etc... 2025-08-31 13:32:45 +02:00