Rad Studio
[+] : Adicionado suporte para Rad Studio 13.1:: a nova plataforma WinARM64EC é compatível.[+] : Novo componente TsgcWSFirewall: firewall completo para servidores WebSocket com lista de bloqueio/permissão de IPs (suporte a CIDR), proteção contra brute force com auto-bloqueio, detecção de SQL injection, detecção de XSS, rate limiting e proteção contra flood.
[+] : Novo demo para Server Firewall: mostra os principais recursos do novo Firewall e está localizado na pasta: "Demos\04.WebSocket_Other_Samples\13.Firewall".
[+] : Novo demo para HTTP/2 Large File Transfer: demo de servidor + cliente para testar downloads de arquivos de 1GB+ via HTTP/2, localizado em "Demos\20.HTTP_Protocol\13.HTTP2_LargeFile_Transfer".
[+] : Novo log de depuração HTTP/2: envio/recepção de frames, incrementos de WINDOW_UPDATE e leituras de chunks em streaming são logados via LoggerPro quando {$DEFINE SGC_DEBUG} está habilitado em sgcVer.inc.
[+] : Cliente MQTT aprimorado: nova propriedade RcvMsg para obter access to the latest MQTT message received do server.
[+] : Novo componente TsgcTCPClient: cliente TCP completo baseado na infraestrutura do cliente WebSocket, com suporte a TLS/SSL, proxy, watchdog e integração de protocolos. Protocolos (MQTT, AMQP, STOMP, WAMP, etc.) agora podem usar tanto TsgcTCPClient quanto TsgcWebSocketClient através da propriedade Client.
[+] : Novo OAuth2 Client Token Revocation support (RFC 7009): método Revoke() com eventos OnBeforeRevokeToken, OnAfterRevokeToken e OnRevokeTokenError.
[+] : Novo OAuth2 Client Token Introspection support (RFC 7662): método Introspect() com eventos OnBeforeIntrospectToken, OnAfterIntrospectToken e OnIntrospectTokenError.
[+] : Novo OAuth2 Client Device Authorization Grant (RFC 8628): tipo de grant auth2DeviceCode com polling automático, eventos OnDeviceCode e OnDeviceCodeExpired.
[+] : Novo OAuth2 Server Token Revocation endpoint (RFC 7009): /sgc/oauth2/revoke com evento OnOAuth2AfterRevokeToken.
[+] : Novo OAuth2 Server Token Introspection endpoint (RFC 7662): /sgc/oauth2/introspect com evento OnOAuth2AfterIntrospectToken.
[+] : Novo OAuth2 Server Device Authorization endpoint (RFC 8628): /sgc/oauth2/device and /sgc/oauth2/device/verify com eventos OnOAuth2DeviceAuthorization e OnOAuth2DeviceCodeVerification.
[+] : Novo OAuth2 Server manipulação do grant Resource Owner Password Credentials (grant_type password).
[+] : Novo OAuth2 Server troca de tokens via Device Code (grant_type urn:ietf:params:oauth:grant-type:device_code).
[+] : Novo OAuth2 Client DPoP support (RFC 9449): tokens vinculados ao emissor via DPoPOptions com assinatura ES256/RS256, geração automática de JWT de prova DPoP, cálculo de thumbprint JWK (RFC 7638) e tratamento de retry para DPoP-Nonce.
[+] : Novo OAuth2 Client DPoP methods: GetDPoPProof() para requisições de recurso, GetDPoPJWKThumbprint() para verificação de vínculo de token.
[+] : Novo OAuth2 Server DPoP support (RFC 9449): validação de prova DPoP, vínculo de token via thumbprint JWK, emissão de token_type DPoP e evento OnOAuth2ValidateDPoP.
[+] : Extensão Deflate aprimorada: a velocidade foi aprimorada especialmente para mensagens pequenas. (Obrigado a Michael pela correção).
[+] : Novo componente TsgcWebView2: wrapper VCL visual para o Microsoft Edge WebView2 com navegação, JavaScript (scripts async/sync/init), gerenciamento de cookies, controle de downloads, gerenciamento de perfis, impressão, áudio/mudo, tratamento de certificados, menus de contexto, favicon, mapeamento de host virtual, captura de screenshot e mais de 20 eventos. Compatível com Delphi 7 até Delphi 13.
[+] : Novo demo para WebView2 Browser: mostra navegação, execução de JavaScript, cookies, impressão, mudo, limpeza de dados, mapeamento de host virtual e log de eventos. Localizado em "Demos\50.Other\WebView2_Browser".
[+] : Nova API Gemini: integração com Google Gemini para geração de conteúdo (com streaming), Vision, saída JSON estruturada, uso de ferramentas (function calling), contagem de tokens, embeddings e listagem de modelos.
[+] : Nova API DeepSeek: integração com DeepSeek para Chat Completions (com streaming), Vision, uso de ferramentas (function calling) e listagem de modelos.
[+] : Nova API Ollama: integração com LLM local Ollama com Chat Completions (com streaming), gerenciamento de modelos (show, pull, delete, list tags) e embeddings.
[+] : Nova API Grok: integração com xAI Grok para Chat Completions (com streaming), Vision, uso de ferramentas (function calling) e listagem de modelos.
[+] : Nova API Mistral: integração com Mistral AI para Chat Completions (com streaming), Vision, saída JSON estruturada, uso de ferramentas (function calling), embeddings e listagem de modelos.
[*] : Corrigido HTTP/2 server-side streaming for large responses: elimina crashes por falta de memória ao servir arquivos grandes e reduz o pico de memória do servidor.
[*] : Corrigido HTTP/2 client-side memory reallocation when receiving large responses: o buffer de payload agora usa uma estratégia de crescimento de capacidade com limites por plataforma (128 MB no Win32, 1 GB no Win64) em vez de realocar a cada frame DATA.
[*] : Corrigido HTTP/2 SSL write deadlock on large file transfers: WINDOW_UPDATEs agora são enfileirados e despachados entre iterações de leitura em vez de serem gravados inline durante o processamento de frame, evitando que cliente e servidor bloqueiem simultaneamente no SSL_write.
[*] : Corrigido HTTP/2 Integer overflow for files larger than 2 GB: alteradas FrameLength, Offset, WindowSize, PayLoadCapacity, ReadWindowSize e os acumuladores de controle de fluxo de Integer para Int64.
[*] : Corrigido HTTP/2 stream state: frames RST_STREAM recebidos em streams ociosos (após limpeza) agora transitam suavemente para closed em vez de lançar um PROTOCOL_ERROR.
[*] : Corrigido HPACK encoder: GetBestMatchingIndex agora retorna corretamente correspondências por nome apenas da tabela estática, evitando erros de compressão em conexões HTTP/2.
[*] : Corrigido HPACK encoder: a máscara de bits Huffman usa a operação de shift-left correta.
[*] : Corrigido HPACK decoder: os cálculos de contagem de bytes e bytes disponíveis agora consideram corretamente o offset do buffer.
[*] : Corrigido SetBytesFromInteger: extrações intermediárias de bytes agora são mascaradas com $FF para evitar erros de range check em valores como incrementos de WINDOW_UPDATE.
[*] : Corrigidas incompatibilidades de ponteiro tipado incompatibilities when compiling com o option active "Typed @ operator".
[*] : Corrigido JWT RSA signing: o parâmetro vLength em DoSignRSA estava declarado como Integer em vez de TIdNativeUInt, podendo causar corrupção de pilha em plataformas 64-bit. (Obrigado a Gabriel pela correção).
[*] : Corrigido Win64 pointer truncation in sgcHTTP_API_OpenAI: chamadas mciSendCommand usavam cast Cardinal() em ponteiros, substituído por NativeUInt().
[*] : Corrigido OAuth2 Server: vazamento de memória em SetOAuth2Options corrigido.
[*] : Corrigido AWS Signature V4: corrigida a ordenação de parâmetros da query string na requisição canônica.
[*] : Corrigido Bitfinex violação de acesso ao cancelar a inscrição em um canal.
[*] : Corrigido vazamento de memórias in Indy Servers causados por inicialização lazy não thread-safe dos campos FSpecifications e FConnections. Threads de worker Indy concorrentes podiam disputar a criação, deixando instâncias órfãs.
[/] : O evento OnMQTTPublishEx teve sua assinatura alterada adding a novo parâmetro aMessage of type TsgcWSMQTTMessage.
.NET
[+] : Novo componente TsgcWSFirewall: firewall completo para servidores WebSocket com lista de bloqueio/permissão de IPs (suporte a CIDR), proteção contra brute force com auto-bloqueio, detecção de SQL injection, detecção de XSS, rate limiting e proteção contra flood.[+] : Novo demo para Server Firewall: mostra os principais recursos do novo Firewall e está localizado na pasta: "Demos\04.WebSocket_Other_Samples\13.Firewall".
[+] : Novo demo para HTTP/2 Large File Transfer: demo de servidor + cliente para testar downloads de arquivos de 1GB+ via HTTP/2, localizado em "Demos\20.HTTP_Protocol\13.HTTP2_LargeFile_Transfer".
[+] : Novo OAuth2 Client Token Revocation support (RFC 7009): método Revoke() com eventos OnBeforeRevokeToken, OnAfterRevokeToken e OnRevokeTokenError.
[+] : Novo OAuth2 Client Token Introspection support (RFC 7662): método Introspect() com eventos OnBeforeIntrospectToken, OnAfterIntrospectToken e OnIntrospectTokenError.
[+] : Novo OAuth2 Client Device Authorization Grant (RFC 8628): tipo de grant auth2DeviceCode com polling automático, eventos OnDeviceCode e OnDeviceCodeExpired.
[+] : Novo OAuth2 Server Token Revocation endpoint (RFC 7009): /sgc/oauth2/revoke com evento OnOAuth2AfterRevokeToken.
[+] : Novo OAuth2 Server Token Introspection endpoint (RFC 7662): /sgc/oauth2/introspect com evento OnOAuth2AfterIntrospectToken.
[+] : Novo OAuth2 Server Device Authorization endpoint (RFC 8628): /sgc/oauth2/device and /sgc/oauth2/device/verify com eventos OnOAuth2DeviceAuthorization e OnOAuth2DeviceCodeVerification.
[+] : Novo OAuth2 Server manipulação do grant Resource Owner Password Credentials (grant_type password).
[+] : Novo OAuth2 Server troca de tokens via Device Code (grant_type urn:ietf:params:oauth:grant-type:device_code).
[+] : Novo OAuth2 Client DPoP support (RFC 9449): tokens vinculados ao emissor via DPoPOptions com assinatura ES256/RS256, geração automática de JWT de prova DPoP, cálculo de thumbprint JWK (RFC 7638) e tratamento de retry para DPoP-Nonce.
[+] : Novo OAuth2 Client DPoP methods: GetDPoPProof() para requisições de recurso, GetDPoPJWKThumbprint() para verificação de vínculo de token.
[+] : Novo OAuth2 Server DPoP support (RFC 9449): validação de prova DPoP, vínculo de token via thumbprint JWK, emissão de token_type DPoP e evento OnOAuth2ValidateDPoP.
[+] : Extensão Deflate aprimorada: a velocidade foi aprimorada especialmente para mensagens pequenas. (Obrigado a Michael pela correção).
[+] : Nova API Gemini: integração com Google Gemini para geração de conteúdo (com streaming), Vision, saída JSON estruturada, uso de ferramentas (function calling), contagem de tokens, embeddings e listagem de modelos.
[+] : Nova API DeepSeek: integração com DeepSeek para Chat Completions (com streaming), Vision, uso de ferramentas (function calling) e listagem de modelos.
[+] : Nova API Ollama: integração com LLM local Ollama com Chat Completions (com streaming), gerenciamento de modelos (show, pull, delete, list tags) e embeddings.
[+] : Nova API Grok: integração com xAI Grok para Chat Completions (com streaming), Vision, uso de ferramentas (function calling) e listagem de modelos.
[+] : Nova API Mistral: integração com Mistral AI para Chat Completions (com streaming), Vision, saída JSON estruturada, uso de ferramentas (function calling), embeddings e listagem de modelos.
[*] : Corrigido HTTP/2 server-side streaming for large responses: elimina crashes por falta de memória ao servir arquivos grandes e reduz o pico de memória do servidor.
[*] : Corrigido HTTP/2 client-side memory reallocation when receiving large responses: o buffer de payload agora usa uma estratégia de crescimento de capacidade com limites por plataforma (128 MB no Win32, 1 GB no Win64) em vez de realocar a cada frame DATA.
[*] : Corrigido HTTP/2 SSL write deadlock on large file transfers: WINDOW_UPDATEs agora são enfileirados e despachados entre iterações de leitura em vez de serem gravados inline durante o processamento de frame, evitando que cliente e servidor bloqueiem simultaneamente no SSL_write.
[*] : Corrigido HTTP/2 Integer overflow for files larger than 2 GB: alteradas FrameLength, Offset, WindowSize, PayLoadCapacity, ReadWindowSize e os acumuladores de controle de fluxo de Integer para Int64.
[*] : Corrigido HTTP/2 stream state: frames RST_STREAM recebidos em streams ociosos (após limpeza) agora transitam suavemente para closed em vez de lançar um PROTOCOL_ERROR.
[*] : Corrigido HPACK encoder: GetBestMatchingIndex agora retorna corretamente correspondências por nome apenas da tabela estática, evitando erros de compressão em conexões HTTP/2.
[*] : Corrigido HPACK encoder: a máscara de bits Huffman usa a operação de shift-left correta.
[*] : Corrigido HPACK decoder: os cálculos de contagem de bytes e bytes disponíveis agora consideram corretamente o offset do buffer.
[*] : Corrigido SetBytesFromInteger: extrações intermediárias de bytes agora são mascaradas com $FF para evitar erros de range check em valores como incrementos de WINDOW_UPDATE.
[*] : Corrigidas incompatibilidades de ponteiro tipado incompatibilities when compiling com o option active "Typed @ operator".
[*] : Corrigido JWT RSA signing: o parâmetro vLength em DoSignRSA estava declarado como Integer em vez de TIdNativeUInt, podendo causar corrupção de pilha em plataformas 64-bit. (Obrigado a Gabriel pela correção).
[*] : Corrigido Win64 pointer truncation in sgcHTTP_API_OpenAI: chamadas mciSendCommand usavam cast Cardinal() em ponteiros, substituído por NativeUInt().
[*] : Corrigido OAuth2 Server: vazamento de memória em SetOAuth2Options corrigido.
[*] : Corrigido Bitfinex violação de acesso ao cancelar a inscrição em um canal.
[*] : Corrigido vazamento de memórias in Indy Servers causados por inicialização lazy não thread-safe dos campos FSpecifications e FConnections. Threads de worker Indy concorrentes podiam disputar a criação, deixando instâncias órfãs.
