Changelog
This changelog lists platform-level changes by date, including updates to the UI, the Platform API, and tenant management. It doesn’t cover changes to individual Timefold models. Each model maintains its own changelog, listed on its documentation site. See the model catalog for links to each model’s documentation.
|
Subscribe to the Timefold changelog to receive email notifications, or subscribe to its RSS feed, and get notified as soon as new updates are published. |
1.8
Give stakeholders and auditors safe, read-only tenant access
Tenants can now add members with a new Viewer role. Viewers can see everything in a tenant, models, datasets, configuration profiles, and saved comparisons shared with tenant members, but can’t start, edit, or delete datasets, or manage comparisons. This is useful for stakeholders or auditors who only need read access. See Viewer role for details.
Experiments (preview)
Experiments let you compare how your Timefold model performs across different scenarios and datasets in a single run, instead of manually submitting and comparing individual datasets. You define the variables up front, and the platform runs all combinations automatically, producing a comparison report where each column represents a scenario. This saves time compared to submitting each combination by hand, and experiments run on a separate solve queue, so they don’t affect or slow down your production solves. Experiments are available in preview starting with this release. See Experiments for more information and to request access.
More accurate score analysis and recommendations with configuration profile overrides
Overrides specified in a configuration profile are now applied when calling the score analysis and recommendations endpoints. Previously, these endpoints reflected the dataset’s original configuration even when overrides had been applied. Results now accurately reflect the profile you configured, giving more accurate score analysis and recommendations.
Interpret and share dataset comparisons more easily
Comparisons can now show diffs as a percentage instead of only an absolute value, making it easier to judge the relative impact of a change. The radar diagram in dataset comparisons can also be exported as an SVG file, making it easier to include in reports and presentations. See Comparing datasets for more details.
Back up and share configuration profiles as JSON files
Configuration profiles can now be exported and imported as JSON files. This makes it easy to back up a profile before making risky changes, or to share a profile configuration between team members or environments. See Export and import profiles for more details.
Improved documentation search
The documentation site now has a dedicated search page, in addition to the in-page search modal. From the search modal, click "See all results" to open the full search results page, which supports paging and filtering by book and product.
See your most-used destinations first in the command palette
Opening the command palette without typing a query now shows your recently used entries first, topped up with the highest-priority entries, instead of an empty dialog. See Using the Command Palette for more details.
1.7
Constraint scores in dataset comparison
The comparison table now includes a "Constraint scores" group that shows the per-constraint score breakdown for each dataset. Scores are color-coded and sorted using the score analysis sort order. This is available when comparing single datasets; support for grouped dataset columns is planned for a future release. This is useful to see the impact on specific constraint score during goal alignment experiments. See Comparing datasets for details.
Sort constraints in score analysis
The constraint table in score analysis now supports sorting by name (useful to get started with a model), number of matches (useful to explore justifications), or constraint weight, in addition to the default sort by score. Each sort option orders constraints within their group first, then orders the groups themselves by the same criterion. See Score analysis for more details.
Power-tune the default smart termination
By default, solving on the platform stops automatically once score improvements diminish; this is the default smart termination strategy, and for most datasets the defaults work well out of the box and is the best balance between time, cost and solution quality. For specific datasets where you want more control, "Advanced configuration" in a configuration profile now exposes two parameters: sliding window duration and minimum improvement ratio. See solve settings to learn about the parameters and tweak them.
1.6
Radar chart tooltips with percentages
In dataset comparison radar charts, each axis in the tooltip now includes a percentage delta alongside the absolute value, making it easier to compare scenarios at a glance. See comparing datasets for more details.
Discover caller identity
The platform has a new GET /api/aboutme endpoint that returns information about the API key behind the current request like the tenant it belongs to, and the access permissions granted to it. See Discovering caller identity for more details.
1.5
Dataset timeline now shown for non-solved datasets
The dataset timeline is now also visible for datasets that are submitted without solving. Operations such as validation can take a while for large datasets, and the timeline now reflects that progress. Previously, the timeline was only shown when a dataset was submitted for solving.
Maximum constraint weight enforced
Constraint weights are now capped at 1,000,000,000,000 (one trillion). The limit prevents score overflow and nonsensical optimization results that can occur when weights are set too high. It is enforced when saving a configuration profile and when submitting a dataset.
Maximum distance from road defaults to null (self-hosted only)
The maximum distance from road parameter now defaults to null for self-hosted instances, meaning no distance limit is applied unless you configure one explicitly. See Installation instructions for details.
1.4
Insights (preview)
Our new Insights feature lets you track the quality and behavior of your planning datasets over time. Instead of reviewing individual results in isolation, you can now monitor key metrics across your last 30 datasets or across a 1-week, 1-month, or 3-month window. You can filter by dataset tags to focus on specific business units, regions, or planning types, and customize which input and output metrics are shown. This makes it easy to spot if changes improve or degrade solution quality, or whether key metrics are trending in the right direction over time. See Insights for more information and to get access.
Searchable sub-group select for configuration overrides
The configuration override selector now supports search and sub-group organization, making it easier to find and apply overrides in larger configurations.
1.2
Radar chart in the Comparison UI
When comparing three or more datasets, you can now view a radar chart of key metrics alongside chosen priority metrics, allowing for better customization of and insights into your comparison reports. Additionally, you can now compare the configuration and constraint weights of two datasets directly in the comparison UI, not just the output metrics. This makes it easier to understand what drove a difference in results. See Comparing datasets for more details.
1.0
Configuration overrides in submit, re-solve, and patch dialogs
When submitting a new plan, re-solving, or patching an existing dataset, you can now specify configuration overrides directly from the UI dialog. This makes it easy to quickly experiment with small changes, e.g. disabling a specific constraint or tweaking a termination setting, without modifying your configuration profile. Overrides take priority over the values defined in the profile. The resulting configuration that will be applied can be validated on the dataset’s configuration page. See the configuration documentation for more details.
Solve queue priority in submit, re-solve, and patch dialogs
When submitting a new plan, re-solving, or patching an existing dataset via the UI, you can now set the solve queue priority directly from the dialog. See Solve queue for more details.
Comparison UI improvements
Move evaluation speed and move evaluation count are now visible in the comparison UI. See Comparing datasets for more details.
Faster dataset detail page
General speed improvements make the dataset detail page load more responsively.
New Helm chart for self-hosted installations (self-hosted only)
This release introduces a renamed Helm chart (timefold-platform-selfhosted, previously orbit-platform). If you self-host Timefold, a one-time update to your upgrade command is required to reference the new chart. See the v1.0.0 upgrade guide for details.
0.63
Solve queue priority in submit and re-solve dialogs
When submitting a new plan or re-solving an existing dataset via the UI, you can now set the solve queue priority directly from the dialog. Previously, priority could only be configured through the API or in the UI after submission.
Audit log action type descriptions
Hovering over an action type in the Audit Log now shows a short description, making it easier to understand what each event represents without leaving the page. See Audit log for more details.
0.62
Solve queue for controlled concurrency (optional)
We’ve introduced a new Solve queue that automatically queues solve requests when a tenant’s concurrent threads limit is reached. Instead of being rejected, datasets are accepted, and started automatically as soon as capacity becomes available. The queue is isolated per tenant, processes datasets based on priority and submission time, and can be monitored and managed via Manage tenant → Solve queue (admins can reprioritize queued datasets; users have read-only visibility). By default, tenants are configured so that existing behavior doesn’t change. Read the Solve queue documentation.
Command palette for faster navigation
You can now use the Command Palette to quickly navigate through the platform. Press CMD+K (or Ctrl+K on Windows/Linux) to open the palette and jump directly to specific sections of the app without manually browsing through menus.
Saved comparisons (preview)
If you’re part of the comparison preview program, you can now save comparisons to revisit later or share with other tenant members. Previously, comparisons were temporary; you can now persist the selected datasets and full comparison configuration, name and describe the comparison for clarity, and choose whether it remains private or is shared with other members of your tenant. See the Comparison UI documentation for more details.
Patch existing datasets in the UI (preview)
You can now submit patches to existing datasets directly from the UI, powered by the /from-patch endpoint. This allows you to apply incremental changes without resubmitting the full dataset before re-solving. The /from-patch endpoint is currently in preview and only available to users enrolled in the preview program. See the /from-patch documentation for details.
0.61
Improved solver result visualization with configurable, persistent graphs
You can now choose which score and metric graphs to display and combine multiple graphs to better understand solver tradeoffs and correlations. See Interpreting dataset results for more details.
Automatic map selection
You can now configure "auto-select" for vehicle maps, reducing configuration overhead and improving performance. See automatic map selection for details.
Kubernetes Gateway API support (self-hosted only)
The Timefold Platform now supports the Kubernetes Gateway API as an alternative to Ingress. For self-hosted deployments, Gateway API support is currently optional, but we recommend planning a migration. The existing NGINX Ingress approach is approaching end-of-life, and the Gateway API is the long-term replacement in Kubernetes. If you self-host Timefold, see the v0.61.0 upgrade section in the installation documentation for optional migration instructions, including Gateway API setup, cert-manager configuration, and required Helm changes.
0.60
Webhook logs
Webhook logs have been enhanced for events sent since this v0.60 release: they now include duration information (when available), and you can resend a webhook notification directly from the log by opening the event details.
See Webhook logs for more details.
0.59
Score analysis has been improved
Score Analysis has been improved with clearer insights into how constraints affect solution quality. The table now shows icons for disabled and locked constraints, and includes filters to focus on matched, triggered, or all constraints for easier analysis. See Interpreting dataset results for more information.
Secrets management is now available
Secrets allow you to securely store and reuse sensitive values such as API keys and tokens without exposing them in configuration screens or logs. Secrets are encrypted, write-only, tenant-scoped, and can be safely referenced in supported integrations like webhooks and external map providers. See Secrets Management for more information.
API key permissions have been refined
API key permissions have been refined to give you more precise control over what each key can do. Permissions are now better aligned with API operations, making it easier to follow the principle of least privilege and safely support common integration patterns. See API Key permissions for more information.
Batch deletion of datasets is now supported
Batch deletion of datasets is now supported, allowing you to clean up multiple datasets at once and manage test or outdated data more efficiently.
Dataset configuration transparency has improved
Dataset configuration transparency has improved, as the configuration page now shows which configuration profile was used and the effective configuration values applied during the solve.
Configuration profile editing is safer
Configuration profile editing is safer, with a warning shown when navigating away while there are unsaved changes. See Configuration profiles for more details.
Various bug fixes and stability improvements
Various bug fixes and stability improvements, including faster loading of the datasets overview and dataset detail pages, resulting in a more responsive UI, as well as improved validation feedback when submitting invalid JSON through the UI, making errors easier to understand and fix.
0.58
Model version information for each dataset
Model version data is now stored directly on each dataset at the time it is submitted or solved. This includes the model version, SDK version, build time, build commit, and branch. These fields can be shown as columns or used as filters in the datasets overview, making it easier to trace which model version produced which results.
0.56
Webhook failure notifications
The Timefold Platform now provides smarter failure alerts for webhooks. After 10 failed retries, Tenant administrators receive an email notification with a direct link to the webhook logs in the platform. (To prevent spam, you’ll only get one email per webhook every two hours, even if multiple failures occur, and no emails once the webhook starts working again.) See Webhooks → Retry Strategy for details.
Webhook logs
The Timefold Platform now provides detailed logs for webhooks. You can view these logs under Tenant settings → Webhooks → [your webhook]. Webhook activity logs include: Timestamp, Status, Model name and version, Dataset ID and a Message (indicating why it failed). (Logs are retained for up to 30 days.) See Webhooks → Logs for details.
Model version information
On Tenant Settings → Models, you can now choose to see model version, sdk version, solver version, build time and build commit on the overview table. Previously this information was only available in the dialog. Use "manage columns" (top right) to change which columns are shown. This helps when running customized models or comparing installed versions against changelog releases.
Maximum payload size increased
When submitting datasets to the Timefold APIs, the maximum size limit of the payload has been increased to 100mb (compressed) and 2gb (uncompressed). See "Dealing with large datasets" for details.
0.55
Filter datasets by status
You can now filter datasets based on their status (e.g. "Solving", "Dataset invalid", "Failed", etc.). This makes it easier to monitor ongoing solves or quickly find datasets that need attention. Learn more about dataset statuses.
0.54
Real-time replanning with /from-patch (preview) and related UI updates
We’re introducing a preview API endpoint for real-time replanning: /from-patch. This allows you to make incremental changes to an existing dataset instead of resubmitting the full dataset (for example, updating an employee’s availability, pinning a shift, adding urgent visits) while keeping traceability across versions. Each patched dataset is a new revision linked to its parent, making it easier to experiment, roll back, and analyze the impact of changes. This feature is currently available as a preview.
You’ll see the Platform UI has been updated to reflect these new capabilities:
-
Single datasets now show the parent and origin dataset IDs.
-
A dropdown lets you easily jump between revisions of the same plan.
-
On the Plans overview, you can toggle between showing only original plans versus all revisions, including datasets created from patches.
-
We have updated the webhook configuration UI so you can now also filter on the new datasets statuses (DATASET_COMPUTED and DATASET_INVALID) introduced in v0.53.
-
At the API level we have made sure that datasets created from other datasets (via
{id}/from-inputand{id}/from-patchendpoints) now inherit their configs from their parent, unless overridden.
Read the full guide on real-time planning with /from-patch (preview).
(Customizable) HMAC support for webhooks
You can now secure your webhook integrations with HMAC authorization. This verifies that requests come from the Timefold Platform and haven’t been tampered with, protecting against forged or replayed requests.
By default, webhooks are signed using a standard HMAC header format (as used by many APIs), but you can also customize how signatures are calculated and sent, including using the request path or your own header names.
Ability to submit plans as a reference dataset
You can now submit a planning problem as a static plan, without triggering further optimization. The submitted problem will still be scored and evaluated, and input and output metrics will be computed. Do this by calling the endpoints to submit planning problems with the parameter ?operation=NONE. (See API specs for details.)
You can use this functionality to compare how plans have been executed in reality with plans optimized in Timefold, or compare plans optimized by other software to plans optimized in Timefold.
Ability to set a default configuration profile
You can now set a default configuration profile for each model. This configuration profile is automatically used when creating new datasets, unless another profile is specified. Default profiles make it easier to standardize settings across datasets and ensure consistency when experimenting with different configurations. Read the configuration profile documentation.
Improved filtering the audit log
In Tenant settings → Audit log, you can now filter by multiple event types at once. This makes it easier to review related changes together. For example, viewing all adds, updates, and deletes for configuration profiles, or tracking multiple types of changes to Tenant Members. See Audit log for more details.
Zooming on the score graph
You can now select and zoom in on a portion of the score graph to inspect that part of the solving process in more detail. This helps you spot subtle improvements or changes that may not be visible in the full view. The score graph shows how a solution’s score evolves during solving and, when hovered, displays the corresponding output metrics. This helps you understand whether the solution is still improving and what trade-offs the model is making. See Solve graphs for more details.
0.53
Terminology update - from "runs" to "datasets"
We are renaming "runs" to "datasets" throughout the platform and documentation. We are doing this in preparation for new functionality coming later. (This will include the ability to easily make changes to a dataset, or comparing optimized datasets with reference datasets.) Both in the UI, in the documentation, in the OpenAPI specs of the models, and in the API responses you will see related changes. Any changes to the model API’s are backwards compatible.
Dataset ID improvements
From the overview of datasets you can now easily filter on dataset id, and on the detail page of a dataset we’ve added a quick copy-to-clipboard option.
Step count smart termination
We have added a smart termination that stops the solve operation after a predetermined amount of steps. This termination isn’t recommended for production use, but useful to benchmark your models, configurations and datasets. You can configure the termination via a configuration profile in the Platform UI or directly when submitting datasets. See configuration profiles for more details.
0.51
New Benelux + Germany map
A new map covering Belgium, the Netherlands, Luxembourg, and Germany is now available. See Available maps for an overview of all available maps.
0.50
Model build information in tenant settings
You can now view detailed build info for your models directly in tenant settings, including: Solver version, SDK version, Build commit, Build time. This helps you verify the version that is being used. (Especially useful for customers that run custom versions of models.)
New smart termination: "After initial solution"
This option stops a run immediately after the construction heuristic produces the first solution. It’s useful when you want a quick look at the initial plan before further optimization. See solve settings to learn about the parameter.
0.47
Audit log filters
Some audit log event types were missing from the filtering options. These are now correctly displayed. See Audit log for more details.
0.46
"Input" now showing unprocessed file
For any new runs, the "Input" page for a Model Run will now show the JSON file as it was submitted to the platform, without pre-processing. Before today we showed a version where default configuration values (e.g. from the configuration profile or tenant plan) were mixed in.
0.45
Support for external map providers for the Cloud platform
We now also support connecting external map providers to tenants on the Timefold Cloud Platform, not only on self-hosted installations. Learn more about external map providers. We have also made sure any configuration changes to location sets, maps deployments and external providers are logged to the Audit Log.
Ability to plan routing problems spanning the full US
We now have a map in production spanning the full United States. View all available maps. (We still recommend people pick the map with the smallest fitting region, as it will speed up the solving process.)
Improved dataset lifecycle documentation
We have improved our documentation on the lifecycle of runs in the platform to clarify what happens if a run is cancelled, and when webhooks are triggered.
0.44
Improved member invite flows
When you invite colleagues to your tenant, they will now receive an email with an invitation they must accept. This adds an extra layer of verification and clarity in onboarding.
EU AI Act compliance documentation
We’ve published a new document detailing how Timefold complies with the EU AI Act. It highlights our transparent, deterministic approach and explains what this means for users.
0.43
Ability to configure machine type to run the solving operations
When you set-up a configuration profile, you can now also apply extra scheduling policy labels that let you choose between running solve operations on AMD64 or ARM64 architecture. Configure specific machine types to find the best runtime for your type of dataset and learn which one yields better results.
Maps service documentation
We have improved the Maps service documentation with more detailed information on map availability.
0.42
Filter on configuration profile via Platform UI
It’s now possible to filter the runs overview of your models by the configuration profile that was used. On the overview, click "Add filter", and choose "Configuration profile". We’ve also added Configuration profile as one of the possible columns for your overview. Click on the three dots at the end of the header of the table to choose which columns you want to view. See which configuration profile was used for each run.
0.41
Audit log
We have added the ability to see the audit log of changes made to your tenant via the Platform’s UI. Anytime a user is added or removed, anytime a webhook is created or changed, or other configuration changes, information about this change is logged to the Audit Log. By going to Tenant Settings → Audit Log, you are now able to see those changes. The UI supports filtering for certain types of event, Actor, IP and date. See Audit log for more details.
Ordering of metrics on run overview
It’s now possible to define the order of the columns when seeing the run overview of your model. You can pick from input and output metrics, as well as run data, and decide which information you want to see, and in what order. This change makes it easier for you to compare those metrics between runs you care most about. On the Runs Overview, click the dots at the end of the header row.
Support for multiple vehicle types
We now have support for multiple vehicle types in our Maps service: cars, bicycles, and walking. We have set up a bicycle map for Georgia, USA as a demo. We have also improved our documentation of the maps service.
0.39
New smart termination "Diminished returns" as default
There is now a new smart termination option for runs. It’s enabled for all models by default. "Diminished returns" terminates the solver early if expected improvements are minimal. It is used if no "unimproved time" configuration is set. See documentation for more details.
Improved troubleshooting script (self-hosted only)
Improved troubleshooting script and documentation for self-hosted installations to help report version information.
See Improved troubleshooting script for more details.
0.38
See and compare the amount of scheduled entities and other problem size metrics
When viewing details of a single model run, we’ll now also show some metrics related to the input. These metrics indicate the problem size and will give you more context when comparing multiple runs.
Expiry dates for tenant members
In cases where you want colleagues or partners to have temporary access to your Timefold tenant, you are now able to set an expiry date. You can use this feature to e.g. give Timefold Solution Engineers temporary access to your tenant to help you with a certain project or troubleshooting.
Ability to self-host the Timefold Platform on OpenShift
We added support for OpenShift deployment for self hosted installations. See updated Installation instructions for details.
Documentation updates
We have added a guide to help you troubleshoot failing runs for self-hosted installations.
0.37
Support for excluding runs with certain tags when filtering
When filtering the run overview, you can now choose to exclude runs with a certain tag. This gives you greater flexibility in finding and comparing certain runs. (E.g. you could label any simulation runs with a tag, and then exclude it when you want to look at only production runs.)
Self-hosted platforms are now single tenant (self-hosted only)
We’re limiting the ability for self-hosted platforms to create additional tenants. We’re doing this to limit the complexity, and we recommend self-hosted customers have multiple installations of the platform instead. More details about self-hosting the Timefold Platform versus using the Timefold Cloud Platform can be found in this comparison guide.
Rework of run policies
We have reworked the policy limiting the amount of simultaneous runs to check simultaneous threads instead. When you have e.g. 10 simultaneous threads available in your plan, you can use it to do 10 simultaneous runs each using 1 thread, or 5 simultaneous runs each using 2 threads. We have dropped the policy that checks the maximum runs per hour.
0.36
New "Incomplete" status and statuses visualization (breaking change)
We’re introducing a new status "Incomplete", it will be used when a run ends before the construction heuristics phase of the run finished. Previously these runs were marked as successful, but the output would likely not contain all entities. With this new status users now know this is the case - we recommend setting a longer termination time when this happens. Additionally, we’ve added a timeline view of each of the different stages of a run on the Run Detail page, so it’s clearer how long each stage takes.
Different API calls for deletion and termination of runs (breaking change)
We have separated the endpoints to delete a model run from the platform, and to terminate a run in progress. Now the deletion of a run from storage is no longer done when terminating a run, but is instead done in a separate endpoint. To delete a run from the storage, the run must be in a terminated state (complete, failed or incomplete).
Improved configuration profiles
We’ve removed the CPU setting from configuration profiles in favor of threads. We’re also indicating the maximum amount of memory per thread more clearly.
Change to trial process
We’re making a small change to the trial sign-up process - we now ask for some details about your project before approving a trial.
Documentation
We’ve added a how-to guide to explain how and why to categorize your model runs using tags.
0.35
Added optimization gain and metric evolution to Run Details page
We have added the optimization gain (the difference between the first and the last solution) for every metric on the Run Details page. Hover over the score graph to see the evolution of the metrics to understand the tradeoffs the software is making during optimization. See "Interpreting model run results" for more information. These changes are useful to see the real-world impact (in metrics) of the duration of solving and to understand better how different metrics impact each other (e.g. if assigned visits goes up, this also impacts technician costs and to some extent overtime).
Showing constraints per group in score analysis
The Score Analysis overview of a run on the Run Details page now groups all constraints logically. This way you can see related constraints together to understand the model better. Our documentation site explains the features of a model per constraint group, so this way it’ll be easier to connect the features explained in the documentation to how they behave for a specific model run.
Export justifications
We have added an export button to the Run Details page that exports the justifications for a run to a .json file. You can use this to understand which constraints aren’t fully satisfied and why.
Improved maps documentation
We have improved our documentation that explains the maps service. Updates are specifically useful for customers that self-host the platform.
0.34
Configuration profiles
We’ve introduced configuration profiles for the Timefold Platform. With these profiles you can create reusable sets of constraint weights, model configuration parameters and run settings. These profiles will make it a lot easier to do goal alignment, or model benchmarking. We’ve written documentation on how you can use configuration profiles to tweak optimization goals, and how to use them for the Field Service Routing and Employee Shift Scheduling models.
Filtering on dates in the Model Runs Overview
It’s now possible to set specific date ranges when filtering on the Model Runs overview page. This should make it easier to find a specific historic run.
0.33
Webhook filtering options
It’s now possible to define per webhook for which run statuses, names or tags they should trigger. You can use tags to e.g. segment your model runs by region, and then use this feature to trigger different workflows per region. See Webhooks for more information.
Added metadata from the run and model in webhook payload
The payload of a webhook will now contain extra metadata from the run and model. See Webhooks for more information.
Score analysis with justifications is no longer limited to 100 per constraint
Our score analysis API-endpoint now supports downloading the complete set of justifications.
0.31
Tag and run name management via UI
You can now edit the name and the tags of a run via the Platform UI (after it’s finished solving). Use this to make specific runs easier to find, or to distinguish between production runs and tests or simulations.
New endpoint to re-run a dataset
POST …/{id}/new-run: Each model now has a new endpoint that allows you to re-run a specific dataset. The endpoint will solve the dataset again, but with the new configuration parameters you submit. This endpoint wants to make it easier to tweak configuration parameters to get to the desired result.
New endpoint to retrieve a run’s configuration
GET …/{id}/config: Each model now has a new endpoint that returns all the configuration parameters that were used for a specific run. You can use this endpoint to audit whether different configuration parameters had an effect on the results of different runs.
IP tracked in Audit Log
The Timefold Platform keeps an audit log for administrative actions. (The audit log isn’t yet exposed in the UI.) For safety reasons, we are now also storing the IP of the user that did the action.
docs.timefold.ai
Our documentation website has been updated with the following improvements:
See docs.timefold.ai for more details.
0.30
Soft delete of run data
We now have support for restoring deleted runs for a limited amount of time. When you delete a run from your model’s run overview, they are now kept in trash for 7 days. After those 7 days the run will be permanently deleted. During those 7 days you can go to your run overview and add a filter for the property "Deleted". If you filter on those, you can select previously deleted runs and click the Restore button.
Dark Mode
We’re launching Dark Mode on the platform. By default the UI will use your system settings, but if you prefer to override that, go to the footer of the platform to choose between light or dark.
0.29
Tag filtering
Finding the run you’re looking for has just become a lot easier. When you do a run that contains a tag, the UI will now display those tags on the model run details and overview pages. Use the "Add filter" button, or click an existing tag to filter on all runs with that tag. See Categorizing datasets for more details.
Unified error responses (including breaking change for API)
We have made sure error responses for all platform API endpoints now return the same format: { id: "string", code: "string", message: "string", details: … }.
While doing so we changed the /logs endpoints (like /v1/route-plans/{id}/logs) to return a { details: "string" } object. If you depended on this endpoint, this is a breaking change.
Better error reporting when uploading custom files via UI
When you upload a custom JSON file via the Platform UI, validation errors and warnings will now be displayed in a cleaner way. We’ve moved all details to a separate dialog with the option to copy all errors and warnings as a JSON structure.
Improvements to trials
We’re now allowing newly added Tenant admins to also extend trials of models, and we’ve improved the UX when doing so.
Displaying maximum values for resource settings
When making configuration changes for a model, we’ll now display the maximum values for the resource settings (CPUs, memory, and threads), so it’s clear what range of options you have for the model’s configuration.
0.28
End-to-end encryption
All internal network traffic between different components of the Timefold Platform is now end-to-end encrypted. (External traffic was already encrypted.) (For self-hosted installations, see our updated Installation Instructions for how to enable end-to-end encryption.)
Improved Search in Model Runs
The search functionality on the Model Runs Overview page now searches across multiple pages. Searching is case-insensitive and supports partial exact matches.
Stricter password policies
When registering on app.timefold.ai we now enforce three more password policies:
-
You can’t reuse previous passwords.
-
You can’t use passwords from a dictionary of the most common passwords.
-
We disallow passwords that contain any part of provided personal data (like your name, email).
Documentation updates
The platform documentation is restructured. A new high level product diagram was added to our Platform Concepts guide. There is a new guide explaining how to submit feature requests. And we have added documentation comparing using the Timefold Cloud Platform versus self-hosting our platform.
0.27
Subscribe to get changelog notifications
We are now using a new system for changelog communication. Additionally, you can now filter the changelog on components or types of updates. See the Timefold changelog for more details.
Improved model run logs
The Logs page of a Model Run now contains only the output of the Timefold Solver itself.
Confirmation before deletion
When deleting items in Tenant Settings via the Platform UI (e.g. webhooks, or api keys), we now require users to type the name of the item they’re deleting. We’ve added this extra layer of confirmation for destructive actions that can’t be undone to prevent mistakes.
0.26
0.26.3
Security fix for Timefold Platform
We have released an update to the Timefold Platform to fix a security issue (affecting versions v0.25.0 and v0.26.2). A certain API endpoint of the platform exposed sensitive keys. This has been remedied with the release of v0.26.3, which was deployed to app.timefold.ai on Oct 17th at 8:26PM GMT+2. We recommend self-hosted solutions to upgrade to v0.26.3 and to revoke the applicable keys:
-
For Azure:
secrets.data.azureStoreConnectionString -
For AWS:
secrets.data.awsAccessKeyandsecrets.data.awsAccessSecret -
For GCP:
secrets.stringData.serviceAccountKey
0.26.2
Redesigned UI and self-service trials
Timefold Platform has a new look. We’ve redesigned the UI to look more modern, professional and clean. Additionally, the platform is now easier to use on mobile devices. Users can now self-register on app.timefold.ai and try out our Timefold Models.
Terms & Privacy Policy updates
Our Privacy Policy and Terms of Use have been updated to govern the use of (trials on) the Timefold Platform.
0.25
Documentation and stability improvements
We have introduced documentation about Scheduling API concepts, to help understand the concepts used in Timefold software.
0.23
Pagination and bug fixes
We have added pagination to a model’s run overview.
Documentation updates
There is now documentation about how to interpret the results of a model run, including tips for next steps to take.
0.21
Improved model discovery
You can now easily explore all models that Timefold Platform supports. You can see the features and documentation of other available models even when you’re not logged in, or if you don’t have a specific model installed on your tenant yet.
GZIP support in API
Our API now supports sending compressed payloads and replying with compressed responses. This is especially useful when posting big payloads to the planning endpoints.
Configure multi-threading in the UI
Multi-threading support was added to the API in a previous version, now it’s also available to configure in the platform UI. Go to Tenant settings → Models and create configurations for models to configure the number of threads to use.
Improved error pages
We have improved the error pages in our platform. (We hope you’ll never see this work.)
Distinguish initializing and solving states
The platform now distinguishes between when a new run is initializing (e.g. a maps plugin is loading) and when it starts solving. You can see this in the platform’s UI on the Model Run page.
Model maturity documentation
Our platform documentation has been updated to include information about model versions, model maturity labels, and demo data. See Models for more information.
0.20
Multi-threading support via API
When you start a new run of a model with the API, you can now define the number of threads that can be used by the solver. By using multithreading, you can get better results faster. You can specify the number of threads via the config.run.maxThreadCount variable in the JSON payload when starting a new run. Go to your Model’s API Spec page in the platform to learn more. It’s not yet possible to configure this via the platform’s UI.
Option to specify headers for webhooks
It’s now possible to configure one or more headers to send along with your webhooks. You could use this feature to send Authorization headers. See Webhooks for more details.
Configure data retention
On a tenant’s new Configuration page you can now configure how long run data, audit data, and score events should be stored in your tenant’s database.
Added a changelog page
We are introducing a Changelog Page (You’re reading it now) on the platform. We will use this page to communicate new features and changes to the Timefold Platform as well as the models it’s running. Find it via the link in the footer of the platform.
0.19
Initial version of the Timefold Platform is live
We are really proud and happy to make the Timefold Platform available in production for the first time!
This initial public version of the Timefold Platform includes:
-
a REST API for easy use of the Timefold Models,
-
a UI for following up on the status and outcomes of Model Runs (including score results, score analysis results with constraint scores and justifications,
-
and a best score graph showing the evolution of scores during solving),
-
and tenant management, including member, API key, and webhook management.