Added conditional compilation to initialize the logger with 'dev' in DEBUG builds and 'prod' otherwise. This ensures appropriate logging configuration based on the build environment.
Replaces the custom ICompatibleLogger and TraceLogger with log4net for logging, introducing LoggingBootstrap for environment-aware log4net initialization. Refactors all resource tools to use IApiEndpoint and moves them to the ApiEndpoints namespace. Updates project references, configuration, and adds a log4net.config for consistent logging setup.
Introduces a TraceError class for enhanced stack tracing and logging, and adds a __export__ utility to wrap functions with error handling and naming. Also adds a console.trace method and updates bootstrap.js to use the new main function structure.
The UseObject function now accepts an optional fallback callback, which is invoked if the main callback throws an error. This improves error handling and allows custom recovery logic.
Corrects type checking for callback and position parameters in app.js and pipe-ipc.js, ensuring proper function behavior. Also updates the version string in pipe-ipc.js to 0.1.26.
Enhanced UseObject to accept a custom dispose function, improving resource management flexibility. Updated pipe-ipc.js to utilize this feature, preventing unintended disposal in repositionObject and ensuring correct stream handling. Bumped module version to 0.1.25.
Expanded the 'availableModels' array for the 'friendiai' engine profile to include several new LLM models, increasing the range of supported models for inference.
Introduces support for the FriendIAI (LGAI-EXAONE) LLM engine, including its API endpoint, model configuration, request formatting, and response handling. Updates the version to 0.1.12 to reflect the new integration.
Modularized the deployment of base files, optional data files, and entrypoint in HandleTargetFilePath. Improved error handling and validation for file paths and extensions. Replaced the previous CopyDirectoryRecursive implementation with a new version supporting required/optional directories and simplified file copying logic.
Truncate the email body to a maximum of 2000 characters when adding it to the prompt context to reduce token usage and avoid sending overly large or sensitive content.
Updated the 'outlook_open_outlook_with_chatgpt' test to search emails by sender or recipient, collect email data, and generate a prompt for AI-based reply suggestions using OpenAI via the language-inference-engine. Improved logging, increased result count, and added full body previews for context.
Enhanced Outlook-related test implementations to include a body preview (first 160 characters) when listing or searching mails. Updated log messages for clarity and consistency.
Reworked Outlook.ItemsFiltered to support generic item sources and improved forEach logic. Enhanced code comments for clarity, added getClass to MailItem, and clarified filter implementations for Jet and DASL. This improves maintainability and interoperability of Outlook item filtering and searching.
Updated search methods to use appropriate Jet or DASL filters for sender and recipient queries, improving reliability and compatibility. Sender email equality now uses DASL display-from matching, and legacy filter names are preserved for compatibility.
Updated Outlook search methods to use DASL filters for recipient searches and introduced a new ItemsMerged class to combine results from multiple Restrict calls. Cleaned up comments and improved clarity in filter functions, ensuring sender and recipient searches are handled separately and merged in JavaScript.
Separated Jet and DASL filter logic in Outlook.Search.filters to avoid mixing filter syntaxes. Added DASL-specific escaping and recipient filter functions, and provided clear helpers for sender and recipient filters in both Jet and DASL. This improves clarity and prevents errors when constructing Outlook search queries.
Added 'var Office = require("lib/msoffice");' at the start of each Outlook-related test function in testloader.js to ensure the Office module is available within each function's scope.
Replaced usage of the old Outlook API with the new Office.Outlook API throughout test implementations. Updated object instantiations, method calls, and type checks to use the Office.Outlook namespace for improved clarity and maintainability.
Introduced new Outlook-related test implementations in testloader.js, including session opening, inbox listing, mail body reading, sender/recipient search, draft creation, and an end-to-end automation test. Updated corresponding test IDs in data/test-msoffice.json to match the new function names for consistency.
Added multiple test cases for Microsoft Outlook including session management, mail reading, searching, and draft creation. Updated existing test descriptions from Korean to English for consistency and clarity.
Introduces multiple search helper methods to the Outlook class, including sender/recipient/subject filters and date-based queries. Adds detailed logging for MAPI session management and folder selection. Implements ItemsFiltered for predicate-based filtering and refactors folder path resolution for improved robustness.
Introduces Outlook integration in msoffice.js, including folder navigation, item access, and mail operations. Updates filetypes.json to include Outlook-related file extensions and types for improved compatibility.
Wrapped the main evaluation logic in Program.cs with a try-catch block to provide clearer error messages on failure. Updated Tls12OfflineInspector to use Path.Combine for system DLL path construction, improving cross-platform compatibility and code clarity.
Introduces the Catswords.TlsReport project, a .NET Framework 4.7.2 console application for offline inspection of Windows TLS 1.2 readiness. Includes project files, configuration, and a comprehensive Tls12OfflineInspector utility that checks OS, registry, and crypto policy for TLS 1.2 support. Updates the solution file to include the new project.
Replaced the Catswords.Phantomizer.dll.gz resource with a new version. This may include bug fixes, new features, or other improvements in the Phantomizer component.
Replaces the existing Catswords.Phantomizer.dll.gz in the launcher resources with a new version. This may include bug fixes, new features, or other improvements in the updated binary.
Eliminated an unnecessary check for HttpStatusCode.NotFound in AssemblyLoader.cs, as EnsureSuccessStatusCode already throws for non-success responses. Updated Catswords.Phantomizer.dll.gz to reflect the latest changes.
Changed AddIntegrityHash to log a warning and return when given a null or whitespace hash, instead of throwing an exception. This prevents unnecessary exceptions and improves robustness.
Updated AssemblyLoader to pass HttpClient explicitly to GetStreamFromUrl for improved flexibility and testability. Simplified GZip download logic to use the new method signature. Updated binary resource Catswords.Phantomizer.dll.gz.
Replaced the Catswords.Phantomizer.dll.gz resource with a new version. This may include bug fixes, new features, or other improvements in the Phantomizer component.
Added case-insensitive parsing for SecurityProtocolType and enforced that integrity hashes must be loaded before using the curl fallback. This ensures more robust protocol handling and prevents curl.exe from being used without prior integrity verification.
Removed all telemetry-related code and configuration from WelsonJS.Launcher, including source files, resource strings, and app.config keys. Enhanced AssemblyLoader to support fallback to curl.exe for downloads on legacy Windows, with integrity hash verification. Updated documentation and resource files to reflect the new curl fallback mechanism and added the required integrity hash for curl.exe.
Introduced EnsureSecurityProtocols and EnsureSecurityProtocolByName methods to programmatically enable TLS 1.2 and optionally TLS 1.3 if available. This improves security and compatibility by ensuring required protocols are set at runtime, with logging for protocol changes and error handling.
Updated the Download-File function to use curl as a fallback if PowerShell download fails. Also added curl.exe and curl-ca-bundle.crt to the installer in setup.iss to ensure curl is available during installation.
Expanded TLS protocol support to include TLS 1.0, 1.1, 1.2, and conditionally TLS 1.3 for better compatibility. Added error handling and warning output if TLS configuration fails.
Relocated the TLS 1.2/1.3 configuration from the script's global scope to within the Download-File function. This ensures secure protocol settings are applied specifically when downloading files, improving reliability and scope control.
Enhanced Extract-CompressedFile and Extract-TarGzArchive to use 7zr.exe as a fallback when native extraction methods fail or are unavailable. Added Invoke-7zr helper for consistent 7zr invocation. Improved script root resolution for better compatibility with older PowerShell versions.
Changed setup.iss to reference the launcher executable from the application directory (bin/x86) instead of the user app data directory. Updated file sources and icon/command paths accordingly. Improved postInstall.ps1 to handle cases where PSCommandPath is not set by falling back to MyInvocation.MyCommand.Path.