- Restructured documentation: added `docs/README.md` to each sub-project, moved LOGGING and SIGNALR docs into dedicated subfolders with their own `README.md`.
- Updated all cross-references to use new topic folder paths and canonical AyCode.Core doc locations.
- Updated `.csproj` files to auto-include all Markdown docs and project-level `README.md` files.
- Removed obsolete single-file docs, replaced with structured content in topic folders.
- Enforced AI Agent Protocol: session setup, output prefix, no-re-read, and mandatory `docs-check` skill after code changes.
- Added domain-critical reminders and navigation guidance to relevant `README.md` files.
- Switched to new `[LOADED_DOCS: N files (+K this turn: ...)]` prefix format in all protocol docs, with examples and enforcement details.
- Documented `docs-discovery` skill, protocol history, and documentation-first coding requirements.
- Added protocol documentation for `Nop.Plugin.Misc.AIPlugin`.
- Changed SQL connection string to use `FruitBank_DEV` in `appsettings.json`.
- Wrapped `IHubProtocol` debug output in `#if DEBUG` in `PluginNopStartup.cs`.
Update DB config, docs, and SignalR binary protocol setup
- Switched appsettings.json connection string to production DB.
- Added "Shared Agent Skills" section to copilot-instructions.md in both main and Mango.Nop Libraries repos.
- Refactored PluginNopStartup.cs: improved using statements, updated SignalR to use AddAcBinaryProtocol with explicit options, removed manual IHubProtocol registration, and added protocol diagnostics.
- No business logic changes; focused on configuration, documentation, and infrastructure.
Changed connection string to use FruitBank_DEV database. Updated DI registration of AyCodeBinaryHubProtocol to use custom AcBinarySerializerOptions with BufferWriterChunkSize set to 4096. Added import for AyCode.Core.Serializers.Binaries and included a commented alternative DI approach.
Updated the connection string in appsettings.json to use the FruitBank_PROD database instead of FruitBank_DEV. Changed the SignalR hub protocol registration in PluginNopStartup.cs from AcBinaryHubProtocol to AyCodeBinaryHubProtocol.
Registered custom AcBinaryHubProtocol as a singleton IHubProtocol
in PluginNopStartup.cs to enable efficient binary messaging
(via AcBinarySerializer) and eliminate JSON/Base64 overhead.
Updated SIGNALR_ENDPOINTS.md to document the new protocol,
noting WebSocket (TransferFormat.Binary) requirement and
affected hubs (DevAdminSignalRHub, LoggerSignalRHub).
Explicitly set StatefulReconnectBufferSize to 30 MB in both
code and documentation.
Added detailed documentation: ARCHITECTURE.md, CONVENTIONS.md, GLOSSARY.md, and copilot-instructions.md for Mango.Nop.Core, Data, and Services. Updated/added README.md files for all Mango.Nop libraries and the FruitBank nopCommerce plugin, clarifying structure, key types, and usage. Switched appsettings.json connection string from production to development database. These changes improve developer onboarding and enforce architectural consistency.
Replaced hardcoded Debug paths in all .csproj files with $(Configuration) for AyCode and FruitBank DLL references, enabling correct DLL resolution for any build configuration. Switched appsettings.json connection string to use the FruitBank_PROD database. Added a null check for StockTaking in StockSignalREndpointServer.cs to prevent possible null reference exceptions. Noted some encoding issues in .csproj comments and copyright fields. No other functional changes.
Refactored StockSignalREndpointServer to use helper methods for creating and updating StockTakingItem objects. Added a new SignalR endpoint to refresh StockTakingItem values. Updated order item retrieval logic and switched the connection string to use the FruitBank_DEV database. Commented-out logic for handling virtual stock was moved to helper methods.
Uncommented the stock quantity and weight update during stock taking closure, ensuring inventory is updated in the database. Changed the log level for this operation from Info to Debug. Added a new using directive and left a commented block for potential future handling of "virtual" stock items.
Cleaned up the repository by deleting auto-generated files, including assembly attributes, MSBuild and NuGet cache files, global usings, editorconfig, and project asset/restore files. Also removed project.assets.json and project.nuget.cache, clearing all NuGet package and project dependency metadata. No source code or logic was changed. This helps prevent tracking of build artifacts in version control.
Added AddPartner to FruitBankDataController, enabling partner creation via SignalR. The method logs the action, inserts the partner into the database, and returns the newly created partner, including ShippingDocuments if available.
Added the AyCode.Core.Extensions namespace to StockSignalREndpointServer.cs to enable access to its extension methods and utilities. No other changes were made.
Added using statements for AyCode.Core.Helpers across several files and AyCode.Core.Serializers.Binaries in DevAdminSignalRHubSandbox.cs to enable new helper and serializer functionalities. No other code changes were made.
Refactored Mango.Sandbox.EndPoints to enable minimal, dependency-light SignalR endpoint testing. Introduced DevAdminSignalRHubSandbox and TestSignalREndpoint for protocol/contract tests without full NopCommerce/FruitBank infra. Added SignalRClientSandbox and comprehensive MSTest coverage for all parameter types. Simplified Program.cs startup, updated project references, and added minimal logger. Original SignalREndpointTests replaced with focused, low-level and high-level tests. CORS and DTOs updated for compatibility.
Enhanced stock-taking functionality by introducing the `CloseStockTaking` method in `StockTakingDbContext` to manage session closures with validation. Added the `IsReadyForClose` method to `IMgStockTaking` and its implementation in `MgStockTaking`. Integrated `FruitBankDbContext` for stock updates.
Improved logging in `StockSignalREndpointServer` and added a new SignalR endpoint for closing stock-taking sessions. Updated `AddStockTaking` to initialize properties for new entries.
Simplified loading logic in `OrderItemDtoDbTable` by commenting out unnecessary `.ThenLoad` chains. Enhanced validation in `RefreshStockTakingItemMeasuredValuesFromPallets` and adjusted return statements in `AddOrUpdateMeasuredStockTakingItemPallet` and `UpdateStockTakingItemPallet` to fetch updated entities.
These changes improve maintainability, robustness, and functionality across the codebase.