Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
3.30.4
Released on 15-10-2025
Fixed
cross-validation evaluation in case of empty result and different stable and current screen
3.30.3
Released on 09-10-2025
Fixed
backward compatibility for log generation from metadata, None argument on draw_boxes method
3.30.2
Released on 08-10-2025
Fixed
bearer token expiration overlap to avoid race conditions (401 http-error for token expiration)
3.30.1
Released on 07-10-2025
Fixed
build of agent-docker container, update linux signing keys
validity of a new screenshot in the memory, when process is forced to wait for new screenshot
resize of the screenshot in DesktopRobot, to match the resolution of the screen
calculation of robot’s internal metrics (invoices, LLM tokens, cache, emails)
3.30.0
Released on 02-10-2025
Added
process_actions_response()to convert LLM response into the Aiviro-like actionTextToActionthat converts and executes robot actions from user prompts using LLMretry logic for 403 errors in
CloudClient, as the user’s API scopes might have changedupdated code formatting and linting rules with Ruff configuration improvements
an example to the documentation on how to reset the working area, using
setmethodnew
ReportBuilderstructure for creating comprehensive HTML reports with multiple sections, performance metrics and markdown supportnew
send_report_via_email_client()method inBaseScenariofor sending reports generated byReportBuilderargument
categoryintoIconsearch-object, to find objects by their categoryIconCategoryenum with all available categories, available asaiviro.icon_categorydoc-strings & documentation references for each Action
BaseWinRunAction- Actions for executing commands and powershell scripts via Run Window on Windows devicesaction
StringTableReaderwhich converts a string to a structured table object
Changed
applying a mask to
PDFRobot, it’s now only applied to the current page, instead of all pagescomputation time of applying opaque masks to images is reduced by ~70%
location of additional functionality of robot’s method to Action objects
calls via
TextToActionto the updated LLM API generating Actions from text promptsallow option to send images to API for LLM text processing
Fixed
expiration of Bearer token in
CloudClient, add 15 minutes overlap to avoid race conditionsgenerating of image-logs from metadata, backward compatibility with old metadata format
timezone comparison in metadata timestamps
calculation of the screen resolution with zoom scale in Windows environment at
DesktopRobotempty recipient field in Outlook email
Deprecated
EmailNotifierclass and related functionality - users should migrate toReportBuilderfor creating and sending reportsemail_notifier()method inBaseScenario- usereport_builder()andsend_report_via_email_client()instead
Removed
internal filtering of OCR elements by icons’ texts
LayoutService, split into multiple methods
3.29.1
Released on 06-08-2025
Added
examples on using inverted
Maskinstead ofWorkingArea
Changed
simplify
aiviro-cli deploy reader-clientimplementation, to omit usage of PDFRobot
Fixed
add default 30-second timeout to MS Graph requests to prevent robots from getting stuck
3.29.0
Released on 30-07-2025
Added
aiviro exception
HttpResponseErrorfor any errors related to API callsvalidation tests for UI-detection into the CI
ProcessTextaction for processing unstructured text using LLMs with structured outputtimestamp for each screenshot image, to recognize if new image is captured or not
excel & CSV actions
recalculated Bounding boxes into the InvoiceReader’s output
documentation section for Aiviro App to README.md and docs explaining relationship with Aiviro Core
Changed
metrics & request arguments to Pydantic models in
CloudClientperformance improvements of 5-10% in actions execution, due to image timestamp handling
objects as
BoundBox&Areaare now processed instantly, without cross-validationstorage of image-log metadata methods into Pydantic
Removed
old implementation of BoundBox JSON (de)serializer
3.28.1
Released on 03-07-2025
Added
aiviro-cli config pathscommand to show paths to configuration files
Changed
documentation section for aiviro configuration
Fixed
missing logging files from sub-services
cannot pickle generator object error at
move_awayaction
3.28.0
Released on 27-06-2025
Added
calls to Aiviro Reader Service endpoint v2 for InvoiceReader
support with logging for pyfreerdp4.0 into
aiviro-cli test-connection rdpcommandarguments into Aiviro Exception to contain detailed information
integration of API for the new Aiviro-Reader Service
bar-codes and QR-codes modules to actions
Changed
configuration
GlobalConfiginto Pydantic modelAiviroConfiglogging context, to always create unique folder for each script-run
Fixed
deployment of Gradio apps, due to invalid dependency version
generating local stats by reading timestamp correctly
closing of
StreamingServiceforStaticRobotprevent clicking on masked areas during empty space detection in move_away action
Removed
folder with unused demo-scripts from the repository
3.27.3
Released on 22-05-2025
Added
pyInstaller hook for automatic collection of package data files when building desktop applications
Changed
request timeout for ‘/invoice’ endpoint to 3 minutes
default request timeout from 30 to 60 seconds
3.27.2
Released on 09-05-2025
Added
custom initialization scripts support via init.d directory for agent deployment
Changed
dependency versions for
[email]extra, update theminternal passing of param
robot_idin Actions
Fixed
flow runs duplication when created from prefect
3.27.1
Released on 11-04-2025
Added
action
set_target_fpsandget_target_fpsfor robotsmall optimization in
LoopUpServiceto instantly processAreaobjects
Changed
internal logic of calculating target and real FPS
Fixed
missing Authorization header in snapshot upload-client
missing
versionkey, which was pop in v2 RDP robot
3.27.0
Released on 08-04-2025
Added
extraction of
notefield from isdoc filesaving output for local stats and raw output for prefect stats
refactor of commands and its internal usage
option for single mask as argument in
setcommandretry-afterheader processing for 503 responsesdeprecation warnings for unused masks and working areas methods
support for requests to llm-service endpoints added into
CloudClientextra dependencies for Desktop & Web robot, same as RDP works
Changed
renamed
commandstoactionsversions of extra dependencies for Desktop, Web & PDF robot
Fixed
correct division of report and error logs for prefect log analysis
references in documentation
Removed
configuration loading from .env file for server & agent deployment
option to use
docker-composecommand, use onlydocker compose
3.26.0
Released on 14-03-2025
Added
unified cloud client for making requests to the backend server for all services
email notification of custom scenario metric as a percentage
support for pyfreerdp 4.0.0
create_rdp_robot_v2that supports pyfreerdp 4.0.0close & create logic for running-device in case it fails
deployment examples for prefect server ip & agent multiple environments
Changed
parameter
metricof the decoratorstepto typeStepMetric
Fixed
parsing of isdoc file with multiple tax-rates, selects total tax value
KeyErrorin cache hdf5 filevalidation tests for Reader, table splits
references for reader objects in documentation
missing default value for
extras_areasargument inWorkingAreaAsIntersection
Deprecated
method
create_rdo_robot
Removed
support for python3.8 & python3.9
more than a year deprecated functionality
NotifierManager, use onlyEmailNotifierinsteadold implementation of Reader -
Universal Parsertext_find_methodsvariable in Aivirocommand
add_mask_by_boundaries, useBoundaryAreacommand
add_mask_by_margin, useCustomBoxcommand
set_working_area_by_boundaries, useBoundaryArea
3.25.0
Released on 12-02-2025
Added
method
set()into the BaseRobot to create working areas and masksnew objects -
Mask,MaskByDisplay,MaskWindowsTaskbar,WorkingArea,WorkingAreaByDisplay,WorkingAreaByGrid,WorkingAreaAsIntersectionwait logic for 60 seconds to ensure the device (RDP) is in a running state after establishing the connection
execute_as_powershell_scriptmethod intoShellCommandsto execute any length of command as a PowerShell script.new structure and attributes for InvoiceData’s customer and vendor -
InvoiceCustomer,InvoiceVendornew parameter into the
ReaderConfig-known_customer_tax_id,known_vendor_tax_id
Fixed
parsing more than one bank account in InvoiceReader
incorrectly assigning customer’s data as vendor’s and vice versa
Deprecated
set_working_areamethod inBaseRobotset_working_area_by_gridmethod inBaseRobotset_working_area_as_intersectionmethod inBaseRobotadd_maskmethod inBaseRobotadd_mask_by_displaymethod inBaseRobotadd_mask_windows_taskbarmethod inBaseRobot
3.24.2
Released on 31-01-2025
Added
retry logic if screen isn’t stable for way too long
device running health-check after successful reconnection
Fixed
changes of the page size when image or text is added into PDF
3.24.1
Released on 24-01-2025
Added
additional logging into
InvoiceReader, to see which internal-processor is currently running
Fixed
handling of error-responses from CloudProcessor, reduce tries & stop in case of server error
3.24.0
Released on 15-01-2025
Added
installation of the odbc sql driver when deploying Aiviro agent
detailed usage of applying masks and working areas with picture examples
thresholdargument intocheck_elements_colorprocessing of tables from Cloud response in
InvoiceReaderparsers for search of tax recapitulation in the invoice tables
implicit rdp-connection restart in case of network failure
separate exceptions for child-process errors
using pyproject.toml for project’s build configuration
Changed
installation of all optional dependencies via new key
allinstead ofall_extras
Fixed
parsing of ICO attribute in InvoiceReader
windows script-file encoding in PowerShell commands
search for a predict element with an EXCLUSIVE find-method
normalization email’s file-attachment name containing whitespace characters
seecommand withassert_not=Truewhen SearchObjectError is raised internallydecoding of
EFpdf section as<PDFObjRef>containing file-attachments
3.23.1
Released on 18-11-2024
Added
additional keywords and logic to improve PDF cutting
check into runner-process to see if device is still running
reading exchange rate into the InvoiceReader when processing pdf invoices
Fixed
log warning instead of raising an exception when display-mask is out of the screen boundary
convert_to_decimalto remove whitespace characters from the input stringAttributeErrorin cloud processor when extracting currency code
3.23.0
Released on 25-10-2024
Added
reading secondary totals from ISDOC files via InvoiceReader
aiviro-cli deploy toolkitfor deploying Reader, Image Recognition, and other services in one gradio appmerge_files_into_pdfmethod intoPDFRobotto merge multiple PDF or Image files into a single PDF filetwo columns into prefect stats report markdown_report & markdown_error
cut_pdf_to_valid_pagesmethod intoPDFRobotto cut a PDF file to valid pages onlyability to read primary and secondary totals and currencies via InvoiceReader
Changed
reading prefix of the local bank account to 2-6 characters
merge
excelextra requirement intoreader
Fixed
TypeError: cannot pickle '_regex.Match' objecterror when usingRegexTextrequests to Reader server, re-open file with each failed request to prevent 422 http-error
raise exception
RequestFailedExceptionwhen APIClient stops retrying request to the server
3.22.0
Released on 10-10-2024
Added
command to extract text & ui elements from an image
get_raw_elementsdoc-example into
PDFRobotgetcommand to extract all texts or words from a pageinvoiceField to indicate if vendor is not a tax payer into InvoiceReader
convertors module, to convert string into Decimal, Datetime and to convert result if
getcommanddocumentation section
Aiviro Utilities > Convertorsenhanced quality of reading bank accounts in InvoiceReader
searching for more than one order number per page in pdf when using InvoiceReader
gradio Explorer into deployment as a separate service
aiviro-cli log statscommand for generating statistics using local & prefect logssection of scenario performance metrics into email-notification
metricargument into@stepdecorator to define custom metrics for a scenarioemail_metricsargument intosend_reportmethod in EmailNotifier to include performance section in emailadditional keywords and logic for DueDate in InvoiceReader
Changed
internal implementation of bound-box to Pydantic 2.0
interface of Gradio Explorer app
disallowing empty title & content for Notification blocks & messages
update pre-commit to use ruff instead of other linters
Fixed
value-error while converting IBAN to Local account bank number
filtering of already used IDs and tax IDs when using InvoiceReader
print format of BoundBox in logger
parsing of old-format of run-folders
merging of
YAMLConfigobjects
3.21.2
Released on 16-09-2024
Added
enhanced reading of due dates in InvoiceReader via checking payment term or texts like “payable in XX days”
removal of all Unicode characters at the beginning of the text for text normalization, instead of just the first character
getting company name from ARES’ response when parsing invoice via InvoiceReader
Fixed
calculation of wait-time for new screen, change negative value to 0
normalization of email attachment’s name in Outlook connector
3.21.1
Released on 09-09-2024
Added
field for local-bank-account in reader-client app
Fixed
search-settings for order-number in reader-client app, now search through every page
Removed
previously added check if device is running, due to failures in production
3.21.0
Released on 27-08-2024
Added
check for correctness of a parsed IBAN
PDFRobotnow uses dynamically calculated DPI for better handling of PDFs with different page sizes.improvements in Reader’s ability to read tax IDs
path attribute for str/repr into Image search-object
the
tmp_folderattribute forBaseScenariowhich enables automatic creation of temporary folder(s) for the scenariothe
__auto_folderoption which automatically creates shared-folder in RDPRobot via YAML configuration file
Changed
to unidecode and lowercase comparison of identifiers and reader’s items
Fixed
currency reading (especially invoices with multiple currencies)
fixed bug that application tried to interact with already closed robot
saving email with empty subject
runtime-error when closing robots in scenario - dictionary size changed
3.20.5
Released on 16-08-2024
Added
additional build checks for aiviro build-documentation job
Fixed
condition statement, which allowed passing empty TZ variable to the agent-container
missing references in aiviro documentation
3.20.4
Released on 15-08-2024
Fixed
calculation of waiting time for taking new screenshots & screen stability
3.20.3
Released on 12-08-2024
Added
normalization of the email’s attachments’ filenames (especially characters like ‘/’, ‘’, etc.)
logging for _before_run & _after_run methods in scenario
option to start scenario in
withstatement
Changed
moved
mypyparameters from CI topyproject.toml
Fixed
fixed error in automatic closing of
aivirowhich in some cases could cause a infinite hangincorrect parsing of invoice & due-date in the invoice
Windows fatal exception, when detecting QR codes inpyzbarlibraryencoding problem in PowerShell
create_and_copy_powershell_scriptcommand on Windows
3.20.2
Released on 17-07-2024
Added
TZvariable into agent docker-compose to set the timezone for the agent container
Changed
identifier of
FindMethodin cache-context from value to attribute-name
Fixed
aiviro-cli log generatecreates output folder if it doesn’t exist
3.20.1
Released on 08-07-2024
Added
more detailed logging for API requests
Changed
value of
skip_waitingtoNoneforgo_to_urlcommand
Fixed
endless loop in streaming waiting for new image, in case stream is closed
filtering of word-boxes with single character
€cI build for python package, CentOS 7 reached EOL
video streaming for Static-Robot-Runner (PDF Robot)
3.20.0
Released on 26-06-2024
Added
conversion for Aiviro Reader’s IBAN to a bank account, and vice versa
new log folders for statistics and data-storage
description into
@stepdecoratorerror_stepattribute to access failed step inget_run_contextmethodLoggingsection into documentationcalculation of the net-amount for items in the
InvoiceReaderwarning message when custom api-url is used
best-practices for dataclasses and pathlib into docs
docs for
ISDOCProcessor,Parsersexamplesdocs about key-value search into tips & tricks section
working-area into the debug images (search-object service result)
working-area into robot’s video stream
option for
clear_and_type&clear_textto accept None as element valuewebdriver_typeargument intocreate_web_robotto support additional web browsers - Firefox, Edge, Safariwebdriver_pathargument intocreate_web_robotto override the default path to the web-driver
Changed
structure of the log folders, 3 separate folders -
runs,stats,storagedefault value of maximum disk-size of logs to 20GB
default value of maximum number of log-files to unlimited (limited by disk_size)
primarily unit-price net-amount is extracted from .isdoc files
internal arguments for robot’s initialization method
Fixed
deployment of gitlab-pages in CI, caused by too big artifacts
user-normalization, apply it only when
USER_NORMALIZATIONfind-method flag is setempty item-line in
.isdocdocumentimprovements in reader’s accuracy (mainly tax-date & order-numbers)
Deprecated
setting
webdriver_pathin configuration file, it’s loaded now automatically from $PATH
3.19.0
Released on 15-05-2024
Added
--project-nameargument fordeploy agent startcommand, to set prefect project namedeploy agent start-envcommand to start an agent using existing .env fileAUTOandDYNAMICoption forfind_methodadditional keywords for order-number search in Reader
option to ignore_keywords search in InvoiceReader for order-number search
item-identifiers & tags/category search for
InvoiceItemsimpler (client’s version) of gradio Aiviro Reader app
processing of
.isdocfiles into InvoiceReadernew option into aiviro.find_method CASE_SENSITIVE
Changed
default
find_methodoption fromSIMILARtoAUTOin search-objectsattribute
extratoextra_comparableinstead, for BoundBox hash calculation - same as eq_[breaking] logic for text/element search
timeout for pdf conversion to images from 30 to 60 seconds
normalization of words, first and last characters with length in bytes >= 3 are removed
words with only one character which length in bytes >= 3 are removed
default value of arguments in
start_processcommand,use_likely_area- False to True,sleep_time- 0 to 1text search, by default as CASE_INSENSITIVE
logic for element-search, now only element and text are checked (before element, other type of elements, text)
“improved
InvoiceReaderaccuracy of DUZP field”
Fixed
ModuleNotFoundError('No module named /root/')exception when agent-container is restartedproblem of text merging for icons
extraction of unresolved pdf-attachments
split sentence if texts have too different heights (vertical vs horizontal texts)
duplicated sentences when prediction element splits a sentence
Deprecated
option
CASE_INSENSITIVEin find-method, it’s default option now
Removed
assertions in pdf processing, replace them with PDFError exception
3.18.1
Released on 14-04-2024
Fixed
encoding in mime-multipart emails, from utf8 to utf-8
3.18.0
Released on 04-04-2024
Added
builderGradio app for creating HTML robot’s reportsexplorerGradio app for exploring robot’s logsvideoaiviro-cli command to generate video from robot’s logsautomatic image resize for bigger than 3350x4750x3 pixels, before sending to server
documentation example for @step and @staticmethod
processing of other content-types from smime.p7m files
method
as_imap_messageto convert ‘message/rfc822’ attachment intoIMAPMessageobject
Changed
allow usage of recipients arguments in
EmailNotifier.send_emailmethod
Fixed
digital PDF parsing for words containing only
_(underscore) charactersclosing of streaming-service, handling of ValueError if process is still running
empty text-body of email from imap-basic-auth, extract text from html-body
closing streaming in case of exception
exception for script without initialized logging
handling of negative sleep time in
RunnerProcessIMAPMessageempty-None subject, by default now set to empty string
3.17.3
Released on 12-03-2024
Added
nanotool into agent docker-container
Changed
version of CI python-docker image to 3.11 from 3.9
versions of pre-commit packages to the newest
Fixed
unexpectedly PDF robot switching to OCR, due to missing mask-removal update
sorting of boxes from sub-image search, sort them by position instead of matching-score
3.17.2
Released on 07-03-2024
Added
retry for
TimeoutError('Screen wasn't updated for way too long.')error message when main process ends unexpectedly
Changed
version of pypdf package dependency from 4.0.1 to 3.16.1 due to file corruption problem
Fixed
fix closing of shared memory process
encoding problem of
ErrorHandleron Windowsincluding content of invoice item (text content) into
InvoiceItemdataclassstarting deployment server without running docker service
logging of
robot-idattribute into logs
3.17.1
Released on 21-02-2024
Changed
@stepcan be used also withoutBaseScenariorunning
Fixed
formatting of documentation for rdp shared-folder
3.17.0
Released on 19-02-2024
Added
two methods into
RDPRobotfor working with shared-folder,local_shared_folder&remote_shared_foldernew tab “convert-csv” into reader Gradio app
Changed
repository for
pylinttool in pre-commitnew versions for all pre-commit tools
versions of all dependencies (update them)
Removed
singleton pattern from
LoggingContextclass
3.16.0
Released on 02-02-2024
Added
unique identifier for each run of aiviro-script (run-id)
run-id into logs name and email report content
localization for aiviro package (cs_CZ, sk_SK, de_DE, en_US)
post-processing of invoice items into
InvoiceReaderreading of missing “variable-symbol” from QR code
datetime information into .eml files for email messages
support for np.ndarray as argument in
Imagesearch-objectadditional logging methods,
stop_logging,get_logger,get_logger_advanced,disable_logger@stepdecorator into template module, to separate script into logical blocksnew logging attributes as ‘step_name’, ‘step_id’, ‘step_run_id’
Changed
visual design and structure of the email report
internal structure & implementation of the
loggingmoduledocumentation section “Utility methods” to “Aiviro Utilities” & restructure it
name of “Template” section to “Scenario Structure” & add documentation for
@stepdecorator
Removed
ares-utils dependency as old ARES API is not supported anymore
3.15.2
Released on 18-12-2023
Added
option for agent container to install requirements.txt, using
ENABLE_REQUIREMENTS_INSTALLATIONvariable
Fixed
starting script of the agent docker container
3.15.1
Released on 14-12-2023
Changed
deprecated warning for
skip_waitingargument, it shows only once
Fixed
current working-directory in agent-container
3.15.0
Released on 12-12-2023
Added
exception for agent-container & aiviro-package version mismatch
logging capability into
EmailNotifiernew doc section “Integration Process”
additional tips and tricks from Aiviro Cookbook
new “Best Practices” section from Aiviro Cookbook
local deployment of Aiviro into documentation
new
waitargument, instead ofskip_waitingallowing numeric argument to calltime.sleepfunctionsleep_timeargument intotype_*commands, to sleep between every sub-action, e.g. click, key-shortcut, …restriction of maximum size of a single PDF page, to 3350x4750 pixels
constants section into documentation
SCENARIO_CONFIG_FOLDER_PATHavailable fromaiviro.*module, to access the configuration folder--old-deploymentoption toaiviro-cli create scenariocommandcustomer & vendor IČO fields into InvoiceReader
additional fields into InvoiceReader - customer & vendor name, shipping address & amount due
implicit utf-8 encoding for
aiviro-cli create scenariocommandadditional group-context into
CacheServiceto save results separately for each group (digital PDF or OCR)read smime.p7m files from outlook
documentation how to add additional handlers into aiviro logging
unencrypted option for SMTP server (port 25)
new command
clear_working_area_and_screen_masksinto robots
Changed
hierarchy in documentation based on sections priority
naming from subscriber to customer, supplier to vendor for InvoiceReader
name of parameter
-pnto-pfinaiviro-cli create scenariocommandinternal implementation of switching between digital PDF and OCR texts
Fixed
long block’s title in the notification email
deployment of several flows at once
clearing of working area and masks in
InvoiceReader
Deprecated
the
NotifierManagerclass
Removed
Xlibdependencypath to aiviro-config file from Flow template
3.14.0
Released on 31-10-2023
Added
exchangeLib protocol into
EmailClientnew functionality into Gradio Reader app
cli connectivity test for RDP robot
pre-commit check & installation when creating Aiviro project
new improved implementation of Aiviro Reader
documentation with code examples of main story, email extractor, erp handler and pdf reader
auto-language detection for
InvoiceReader
Changed
new logos in the documentation
Fixed
removal of old records from cache
pre-commit error when new Aiviro project is created
fix a value of max disk size of logs to 5GB, when in docker and initially set to 0
missing page size for empty Invoice page
missing confidence value in Invoice fields
parsing exception of “tax_date” in Reader
Deprecated
old implementation of Aiviro Reader (Universal Parser)
Removed
find_utilsunused sub-module fromreadermoduleaiviro-cli reader findcommand
3.13.3
Released on 20-10-2023
Fixed
converting of Decimal number in Czech QR codes
build of prefect-agent & correct version of chromedriver
exceptions which occur in child process are now properly transferred to main process for handling.
handling of ConnectionError in the Microsoft Graph API calls
loading of aiviro-config in prefect
AiviroNotifyTask
3.13.2
Released on 18-10-2023
Added
plain_loginargument intoimap_basic_authto allow utf-8 login authentication
Changed
base docker-image from python3.8 to python3.11 for prefect-agent
Fixed
version of google-chrome and chromedriver in prefect-agent
handling of 404 client error from Microsoft Graph API
3.13.1
Released on 13-09-2023
Added
flag
docker-composeinto deployment commands to usedocker-composecommandexecute_scriptcommand into WebRobotraise of RuntimeError when robot was closed and user tries to use it
Changed
by default
docker compose(plugin version) is used in aiviro-cli deployment commandscumulative enum implementation to be an extension of python builtin enum type
Fixed
loading of aiviro-config in flows
ci pipeline for prefect-agent build
loading of yaml and aiviro configuration files correctly from old environment variables
converting of total-amount string to Decimal in UniversalParser
3.13.0
Released on 23-08-2023
Added
public method
cleanfor every context-manager to clean up after itselfErrorHandlerfor saving and processing image & text logs when error occursaiviro-cli test-connectioncommands for testing IMAP & SMTP server configurationsunencrypted IMAP mailbox support
parsing of bank-account information into
UniversalParserparsing of due-date information into
UniversalParserparsing of company-name, based on IČO, into
UniversalParserseparate reader analysis for OCR and Digital pdf documents
serverandagentdeploy command intoaiviro-cli deploydeployment section into documentation
docker build into CI for prefect agent & ui
error handling for invalid metadata-log records, skip them
type restriction, arguments of
WaitUntilDisappearcan only be of typeSearchObjectaiviro-cli configcommand to set-up api credentials and other settingsdelete_foldermethod intoEmailClientclass
Changed
context-manager logic from decorator into separate class
loading strategy of aiviro-config files, several options are now available
alignment of boxes in one line, added threshold for which the alignment is ignored
Fixed
context-manager for setting working-area while other context-manager is active
qr-code decoding for empty values
pip dependency backtracking issue
empty string argument in Notifier message object
adding text into PDF when exception occurs
recursion bug when using
BaseKeyin interactive consoleempty file processing in
EmailExtractorrendering of email’s report for desktop Outlook
attribute access in cache-file if attribute does not exist
Deprecated
environment variable “AIVIRO_CONFIG”
Removed
deprecated email-client methods
setup_imapandsetup_smtp
3.12.0
Released on 03-07-2023
Added
bigger retry-waiting time for sending email
standard BoundBox output for UniversalParser lookup objects
post-processing method for UniversalParser lookup objects
auto-rotation functionality of scanned documents into
PDFRobotoutlook authentication token refresh, if 401 is returned
merge functionality for
YAMLConfigwait_until_readymethod forRDPRobotBaseScenarioobject that helps with initialization of some basic Aiviro servicessupport for custom split-condition argument in document items detection
no-verifyargument for ssl certificate verification in SMTP & IMAP basic-auth email methodsdynamic repack of the cache to reduce its disk-size
Changed
default endpoint from “api.*.aiviro.com” to “api.aiviro.com” in doc & config file
Fixed
pSKeyword error while loading pdf-file
handling of ReadTimeout exception for api-calls
adding text to an empty scanned PDF file
improved accuracy of total-amount extraction
recursive loading of Outlook email attachments
streaming initialization error
handling of locked cache file
pDFRobot closing in global-context object
dynamic removal of cache records (time reduction)
Removed
old request structure to api.aiviro.com endpoints
3.11.2
Released on 10-05-2023
Fixed
encoding of PDF attachments
position recalculation when adding text or image into PDF file
3.11.1
Released on 03-05-2023
Added
aiviro-cli deploycommand to deploy certain Aiviro functionality as a web applicationexception handling in global-context, when service cannot be closed properly
Fixed
read error of non-existing temporary folder
3.11.0
Released on 25-04-2023
Added
extraction of attachments & comments from PDF file
new properties
attachmentsandcommentsintoPDFRobotdocuments item parsing into UniversalParser
lazy loading of PDF files for text or image addition
oneDrive module which allows to perform basic operations on user, shared and sites drives
functionality to add new-column in
CSVWriterexcel module to read .xlsx files
documentation examples for
NotifierManagertest into CI for default dependency imports
inactive option (gray color) for notifier
Changed
dependency from PyPDF4 to pypdf
longer waiting/retry time for api requests (up to 5 minutes in total)
CSVWritercan be initialized also with emptyPDFRobotdocumentation for
EmailNotifier
Fixed
loading of PDF files with invalid structure
improved order-number extraction in universal-parser
warning message about package versions in
aiviro-cli logcommandclosing of streaming service when communication pipe between processes is broken
long compression time of complex png images
3.10.0
Released on 14-03-2023
Added
pause&unpausemethods into robotget_last_imagemethod into ImageCollector serviceunit-tests for runner-service
__add__method for CumulativeEnum object, used inBaseKeyactivate robot method into dynamic robots
missing metrics into global-context
Changed
code structure of how streaming is started
Fixed
bug with token normalization replacing wrong elements
initialization of RDP shared-folder, when only path is provided without path-name
3.9.2
Released on 02-03-2023
Fixed
PDFRobotfailing to read some pdfsPDFRobotspliting words at some unicode charsIndexErrorexception while parsing total_amount
3.9.1
Released on 28-02-2023
Added
documentation for
universal-parsermodulenew version of Universal Parser
additional tests for universal-parser
improve universal-parser performance
3.9.0
Released on 13-02-2023
Added
access to created working-area & display masks by
withstatementlast_blockvariable intoNotifierManagersend_reportmethod inNotifierManagerto send messages across all notifiers based on scopeoauth2authentication for SMTP & IMAP into EmailClient.coveragerc file to improve code coverage
evaluation test for universal-parser
global-context object that contains information about script & correctly closes robots & services
additional metadata into aiviro-metrics
method
as_file_attachmentto convertIMAPMessageintoIMAPAttachmentsupport for processing
IMAPAttachmentin send_email methodpoint into image-logs for click commands
unit-tests for desktop, rdp & web devices
additional methods for easier PDF annotation
new search-object
Biggestargument
ignore_exceptioninto QR code decoder, to ignore invalid codestext extraction from body of HTML email content into
email.textvariablerenaming of aiviro processes (on linux only) for better debugging
Changed
updated project metadata information
documentation for Email’s Outlook OAuth2
Fixed
logic for selecting correct working-area by checkpoints
default parameter of
send_reportinEmailNotifier
Removed
support for python3.7
3.8.0
Released on 29-12-2022
Added
command
add_mask_windows_taskbarto cover windows taskbarstrictargument intocheck_are_intersectingcommandNotifierManagerto share messages between several notifiers at oncepowershell command
create_and_copy_powershell_scriptaiviro-cli command
reader findto validate if exported data is present in pdf-filestest coverage reports into GitLab-CI
negative results into cache
dynamic records removal from cache
option
FindMethod.GLOBALwhich finds all occurrences of searches not only the first onemethods for text and image addition to the PDFRobot
method for saving the PDF file, modified or not, was added to the PDFRobot
Changed
imports of notifier components from
aiviro.modules.email.notifiertoaiviro.modules.notifier
Fixed
typing of all functions to follow the newest versions of mypy
error some pdfs failing on decoding error
regex backtracking error
Deprecated
creation of message directly through
EmailNotifier, use insteadNotifierManagerrecipientsargument insend_report()method inEmailNotifier, moved into object’s constructor
3.7.1
Released on 01-12-2022
Added
info log into pdf-robot about the name of parsed pdf-file
Secretobject for better handling of secret/sensitive textslogging support for new pyfreerdp version
Changed
all exceptions which are triggered from worker process now use
ChildProcessErrorclass
Fixed
added timeout handling for starting worker process
3.7.0
Released on 29-11-2022
Added
argument
auto_moveinto EmailExtractor, extract_* methodsemailargument into EmailExtractor ConditionsEmailDatetimeCondition&EmailSubjectConditionnew EmailExtractor conditionssupported python, os & cpu versions into documentation
new version of API calls to backend-vision server
api versioning, new endpoint /v1/detect
aiviro-cli readercommands -stats&extractsearch-object
ClosestElementto find closest object to its referencesimple scenario metrics calculation, cache usage, pdfs, api calls
checkout to master/develop into flow templates
logging of INFO logs into separate text-file
Changed
pillow version to 9 so higher versions of python can use prebuilt wheels
clean-up internal code of Universal Parser
Fixed
report template for microsoft Outlook
Deprecated
old configuration of backend-vision server
3.6.0
Released on 24-10-2022
Added
find_methodvariable instead oftext_find_methodschaining capability for
key,find_method&boundary_typeprocessing of Outlook itemAttachments, as if attachment is additional e-mail
MultiPDFRobot, can extract and hold data of several PDF filesvariable
IS_RUNNING_IN_PREFECTinto aiviro packageget_working_areacommand
Changed
some headless tests into static-robot, to speed them up
version of imap-tools dependency from 0.49.1 to 0.57.0
file & inline email-attachments into file_attachments variable
name of method
do_text_extractiontoparsein PDF robot
Fixed
visibility of Outlook OAuth2 folders
Deprecated
variable
text_find_methodsvariable
working_area_method
Removed
argument
skip_charsargument from PDF robot, moved intoparsemethod
3.5.2
Released on 21-09-2022
Fixed
data-type of shared-folder path in RDP robot
3.5.1
Released on 19-09-2022
Added
groupargument into mask_* commands to add/delete only specific group of masks
Fixed
ci deploy job now working correctly
pdf extraction error which sometimes didn’t split words correctly
3.5.0
Released on 15-09-2022
Added
methods for Outlook with OAuth2.0 & graf.microsoft endpoints into EmailClient
setup_imap_basic_auth&setup_smtp_basic_authmethods in EmailClientunit testing for multiple versions of python (3.7, 3.8, 3.9, 3.10)
Changed
updated versions of dependencies
Fixed
pdf text duplication issue
Deprecated
username&passwordarguments in EmailClientsetup_imap&setup_smtpmethods in EmailClient
3.4.0
Released on 30-08-2022
Added
czech Invoice-Payment decoder for QR codes (https://qr-faktura.cz/)
CheckCommandErrorexception for check_* commandsdocumentation section for aiviro-exceptions
implicit_waitoption into user_config optionsalternatives for some standard fonts in pdf
support for pdfs which don’t have characters in top level
Copy-Itemcommand into PowerShellget_shared_folder_pathvariable into PowerShell to get path on remote machineuniversal_parsermodulexception_to_raiseargument into get, see & wait_* commandscreatecommand into aiviro-cli to initialize Aiviro project structure & add scenarios
Changed
internal use of
os.pathtopathlib.Pathinternal points distance calculation to use math module
name of FindService to SearchObjectService
names of Positioned* to Positional*
location of robots from one big script into separate ones
class
Robot, split intoBaseRobot,DynamicRobot&StaticRobotinternal use of
dequeforOrderedDict
Fixed
pdf robot font parsing
pdf character merging not working sometimes properly
Removed
decoderargument fromCodesExtractor
3.3.1
Released on 25-07-2022
Changed
regex dot changed to new style
3.3.0
Released on 25-07-2022
Added
aiviro-cli log analyzecommandoption to edit Notification type in EmailNotifier -
notification_typevariableargument
email_attachmentsinto EmailNotifieruser_configobject to change similarity_threshold & set custom text-normalizationuser Configuration section into documentation
AutoSelectParsingStrategyfor ParserHandlerignorable_parser_objectsargument into ParserHandlerparserattribute intoParserProcessingErrorforwardmethod into email moduleencodingargument into CSV & YAML configurations
Changed
aiviro-debugger into aiviro-cli
functionality of *_by_boundary commands into
BoundaryAreasearch-object
Fixed
documentation typos in email-notifier section
texts & examples in documentation
loading of duplicated parser-classes
Deprecated
command
add_mask_by_boundariescommand
add_mask_by_margincommand
set_working_area_by_boundaries
Removed
parser_nameattribute fromParserProcessingError
3.2.4
Released on 20-07-2022
Added
missing keys into web-robot
Fixed
bug when creating pdf robot state data
3.2.3
Released on 19-07-2022
Fixed
regex issue when using escaped special character
3.2.2
Released on 11-07-2022
Added
y-alignment of ocr-boxes when merged into common line
regex support for backref characters
Changed
added
normalized_textofBoundBoxto noncomparable keys as it is lazy evaluated
Fixed
ocr-boxes line-grouping into fix order
bound box mutable issue
regex normalization for charclasses containing space
3.2.1
Released on 01-07-2022
Added
current_pageproperty into PDFRobotis_digitalproperty into PDFRobot
Changed
opencv-python-headless dependency back to opencv-python
Fixed
typo in unable-to-process message in EmailNotifier
ocr-box connection for bigger boxes
cache version incompatibility, between <3.1.5 & >=3.1.5
3.2.0
Released on 29-06-2022
Added
pdf robot now uses masks correctly
commonly used Powershell commands for RDP-Robot
subjectargument for sending email-notificationlast_blockproperty into EmailExtractoroption to pass
Msgorstrargument as message for EmailExtractorItemobject for creating notification messagesduration tag into
EmailNotifierfunctionality to load aiviro_config from env-variable in prefect flows
configuration loaders for YAML & CSV files
ignore_exceptionoption to get elementemailExtractor for simplified way of email & attachment extraction
documentation for image-buffer
default values into doc for Aiviro configuration file
skip_charsargument intocreate_pdf_robotmethodcodes module for reading QR & Bar codes from image
Changed
regex normalization to be more intelligent and prevent normalization of regexes with catastrophic backtracking
opencv-python dependency to opencv-python-headless
Fixed
timezone in EmailNotifier & message typo
less verbose log messages when creating pdf robot
duplicated OCR boxes in metadata
box sorting for ocr-line-grouping
bug with memory not releasing before application exit
combination of
paste&blockingargument in transfer_files_to_guests_clipboard cmd
Removed
sorting of email notifications, make it optional
forceoption for robot-streaming
3.1.5
Released on 09-06-2022
Added
check when file exists when using RDP transfer to host
Changed
pip project summary, email, licence
Fixed
reference box filtering in positional elements
wrong argument call to
pyfreerdpwhen using clipboardocr filtering by Icon elements
3.1.4
Released on 20-05-2022
Fixed
error handling of internal errors when parsing pdf
3.1.3
Released on 18-05-2022
Fixed
bug when using cc field in
send_mail
3.1.2
Released on 17-05-2022
Fixed
bug when regex match didn’t appear in unicode texts
robot now correctly releases shared memory
handling of email attachments with no content disposition
email sending to CC and BCC now works correctly
3.1.1
Released on 09-05-2022
Fixed
pdf text extraction now correctly uses clipping boxes
3.1.0
Released on 04-05-2022
Added
email-notification object for creating reports
ability to use non-default port when using RDPRobot
context-manager into
clear_screen_maskscommand to work withwithsleep-time argument into rdp-robot
start-processcommandinterval parameters to debugger
or_indexvariable into bound-box for result ofOrsearch-objectBaseParserandParserHandleras standardized way to implement document data extractionimage logs for
key_*commands
Changed
debugger to use more processor cores to speedup logs generation
Fixed
rdp-robot
start_processcommand issueserror when parsing log names
email sending from alias or shared mailbox
email query when used without parameters
email message operations when the message is not in the same path
too-many-elements exception in
wait-forcommand
3.0.1
Released on 14-04-2022
Fixed
unknown method error in
wait_for_clipboard_file_transfercommand
3.0.0
Released on 09-04-2022
Added
missing RDPRobot clipboard functions.
several new SearchObject exceptions
ability to change name of the folder which is shared with rdp machine
text split by capital letters and special characters as “:”, “.”
PDFRobotwhich is used to read and parse PDF files.
Changed
calculation of area intersection between working-area and detected boxes
email connection handling
core structure for merging core & toolbox together
main logger from
aivirocoreintoaivirolocation of toolbox modules into aiviro package
Fixed
regex correctly searching after normalization.
detection of a scene stability transition
element-index error in line-grouping service
documentation typos
documentation after aiviro + toolbox merge
waiting for rdp file transfer not working correctly
Removed
all deprecated funcionality of 2.x.x aiviro-core versions
unimportant warning messages from wait_* commands
2.6.4
Released on 23-03-2022
Added
command
disable_cross_validationgif generation from image buffer
ignore_timeout_exception argumentforwait-until-disappearcommandbitwise operators
&(and),|(or) for search-objectscommand
close_tabfor WebRobotnew TableAnchor options, that calculates distance between objects based on both axis
more advanced cache into recognition-service, reducing time to find elements
Changed
image hash in cache-service from percentual to sha1
cross-validation is skipped for
Area&BoundBoxelementsprefect version dependency to 1.0.0 from 0.15.6
Fixed
onTheRight/Leftelement search, reference object is removed from the find-resultsdebug-log for
CustomBoxsearch-objecthandling of connection errors to vision server.
some typos in documentation
typo in
text_to_type&check_are_in_rowcommandscross-validation exception in
wait-forcommanderror logs into prefect
merge of
Inputelement with OCR textbehaviour of DISTANCE option in positional search-objects
2.6.3
Released on 14-12-2021
Added
option to run start_process as admin when using RDP robot
Fixed
issue when calculating disjunction of ocr and icon box, could lead to bounding box with negative width
2.6.2
Released on 08-11-2021
Added
print_portoption into configuration file for video-streamargument
use_full_screeninto working-area checkpoint commandsrolling logs that can be specified by maximum disk size, maximum number or both
set_working_area_by_gridcommand, which can be used for tables
Changed
error when image is not set in
StaticRobot
Fixed
get-by-scrollcommand with timeout > 0set-working-area-by-checkpointwhen checkpoint is created with set working-areaincorrect mask generation of
add_mask_by_displaywhen all sides are set to True and include_object set to False
Removed
restriction of saving images locally from buffer in docker environment
unused tests & test-data from repository
2.6.1
Released on 11-10-2021
Added
aiviro-core version into robot’s printout info
limit-working-areacommandexception section into documentation
extra requirement Prefect into setup.py
Changed
wait-*commands to work as get command when timeout is 0command proxy now uses cached property
Fixed
get_by_scrollsometimes didn’t register scroll when application registered scroll slowlyrequired version of pyfreerdp package
changelog text & doc-strings
Removed
unused methods from robot
2.6.0
Released on 22-09-2021
Added
timezone option into config-file for aiviro-logs
create_static_robotwhich can be used when working with images without the need to create another type of robotoption to compress Aiviro-Logs
set_working_area_by_boundariesnow supports multiple rules of bounding box creationmetadata-logging for Aiviro image-logs
option to generate only last-N-log-images
filtering of too big OCR boxes
get_by_scrollcommand which can be used to scroll until the all elements are foundsupport for new version of
pyfreerdp(version 3.0.0)new arguments for
create_rdp_robotwhich allow shared folderintegration tests for RDP robot
documentation for aiviro-config file
automatic import sorting of repo
exception raise in set-working-area-by-checkpoint for images with different shape
automatic generation of
CHANGELOG.mdcollection of all release changes into one file
CHANGELOG.md
Changed
filtering of OCR boxes using Icon elements
documentation examples to use interactive python correctly
versions of required dependency packages
start_processhas now a parameter to check only in lower left corner of the screen for dialog windows. (Most likely place for the run window)start_processwaits for the dialog to disapear to continue execution
Fixed
text splitting for special characters in sentence
generation of documentation changelog
type_textargument call errortype-text command when input element is not found
Deprecated
parameters
upper_boundaryandlower_boundaryofset_working_area_by_boundarieswill are replaced withfirst_boundaryandsecond_boundary
Removed
error logs in cross-validation for wait-until-disappear command
2.5.4
Released on 18-08-2021
Changed
doc-strings & documentation references
Fixed
working-area for get with static-image
log of after-image in type-text command
Removed
ReferenceObjectNotFoundexception
2.5.3
Released on 28-07-2021
Added
ANDsearch-object
Changed
version of pyfreerdp for extra-dependency
Fixed
too-nested-object exception
2.5.2
Released on 21-07-2021
Added
cwdargument for prefect-utils methodrun_shell_commanddoc-string for EXCLUSIVE find-text-method option
unit-tests for devices/
static runner manager & get-elements command from image
Changed
aiviro setup options with extra python packages
reformat source-code with Black
Fixed
image resources for documentation
table-anchor, NO_THRESHOLD option for Above/Below positional elements
Removed
upload file-size restriction
2.5.1
Released on 15-07-2021
Fixed
regex normalization
missing keyboard for RDP-robot
2.5.0
Released on 12-07-2021
Added
filter of reference object in positional search-objects
markdown reporting into Prefect artifact
command to get streaming url
EXCLUSIVEtext-find-method optioncommand to switch between robots as video-streaming source
RegexTextsearch-objectoption to create a robot from env-variable
support for CustomSearchObject & CustomBox
support for webdriver capability setting
Changed
constants value names to a shorter version (deprecated)
Fixed
text merging into lines
exact word search
reference-object & element-index exception for wait_* commands
checkpoint working-area command to work with current working-area
Above/Belowanchor distance thresholds
Removed
deprecated functionality for 2.5.0 version
2.4.6
Released on 23-06-2021
Fixed
merging of different sized text
2.4.5
Released on 01-06-2021
Fixed
correct termination of Aiviro-script in Prefect
empty regex_match is not stored in BoundBox anymore
positional elements overlaping
processing of image-logs & add additional evaluation for wait_* command
2.4.4
Released on 19-05-2021
Changed
streaming settings
2.4.3
Released on 13-05-2021
Added
example code into documentation
Fixed
prefect logging
2.4.2
Released on 28-04-2021
Added
debug messages for cross-validation service
sensitive-data argument to clear-and-type command
SearchObjectErrorexception everywhere, when search-object is not foundprefect logging safeguard
non-case-sensitive option for aiviro.text_find_methods
Changed
updated prefect API for version 0.14.16
Fixed
clear-and-type command causing double-click
image-logging for INFO debug level & INFO level set as default
Iconobject text-reference when texts are too close to each other
2.4.1
Released on 07-04-2021
Fixed
wait-for command for positional element
2.4.0
Released on 02-04-2021
Added
text content into output BoundBox
aiviro custom exceptions
argument for env variables for prefect-utils, run-aiviro-script method
move-away command, mouse moves over empty position at screen
artifacts integration with Prefect
asynchronous logging for stdout/stderr for Prefect Tasks
wait-until-disappear command
regex result into output BoundBox
Changed
optimize Wait-For command
Fixed
robot methods documentation
sub-image search service
configuration constants
cross-validation service
working-area checkpoint command for gray background
2.3.1
Released on 12-03-2021
Added
warning for image-buffer, transfer-file & forbid image-logging and streaming in docker
socket timeout for robot streaming
Changed
return state for NotifyTask
Fixed
context manager for working-area
2.3.0
Released on 09-03-2021
Added
image upload logs to dashboard
api-key check for Aiviro configuration
argument for addional files into image-upload logs
notification task for Prefect
tips & trciks section into Documentation
video streaming static link
Changed
stability checking limited by working-area
method of screen capture for cross-validation service
Fixed
small bugs & sleep-check
2.2.0
Released on 12-02-2021
Added
timeout for recieving a new image
image logging buffer
creation of working-area by checkpoint
Changed
logging of BoundBox object into human readable form
Fixed
sleep-check for type-text command
cache getting duplicated results