<?xml version="1.0" encoding="utf-8"?>
<!--RSS generated by Flaimo.com RSS Builder [2026-08-19 16:38:00]-->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><docs>https://www.casetalk.com/tickets/</docs><link>https://www.casetalk.com/tickets/</link><description><![CDATA[Tickets.CaseTalk - Issues]]></description><title>Tickets.CaseTalk - Issues</title><image><title>Tickets.CaseTalk - Issues</title><url>https://www.casetalk.com/tickets/casetalk/casetalk-tickets.png</url><link>https://www.casetalk.com/tickets/</link><description><![CDATA[Tickets.CaseTalk - Issues]]></description></image><language>en</language><category>All Projects</category><ttl>10</ttl><dc:language>en</dc:language><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><item><title>0005910: Model check reports an invalid default value on roles that have none</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5910</link><description><![CDATA[Running the model checks reports &quot;Default Values must comply with datatype&quot; for roles that do not have a default value at all. The reported value looks empty in the message, so the check appears to complain about nothing, and the role it points at is correct as it stands.&lt;br /&gt;
&lt;br /&gt;
The warning only turns up after the model has been edited in the running session; reopening the project makes it go away again.]]></description><category>Other</category><pubDate>Tue, 18 Aug 2026 13:11:53 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5910</guid><comments>https://www.casetalk.com/tickets/view.php?id=5910#bugnotes</comments></item><item><title>0005909: Adding an expression to a fact type can make the diagram stop showing its expressions</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5909</link><description><![CDATA[After adding an extra expression (a fact type expression or an object type expression) to a fact type, the box for that fact type on the diagram can stop showing its expression lines - not only the new expression, but also the ones that were already there.&lt;br /&gt;
&lt;br /&gt;
It happens when the added expression also makes the fact type usable as an object type. The diagram then redraws the box in its object type shape. Boxes whose expression display was switched on by hand, on a diagram where fact type expressions or object type expressions are switched off as a whole, are the ones affected: after the redraw the box follows the diagram-wide setting again, and its expression lines disappear.&lt;br /&gt;
&lt;br /&gt;
Refreshing the object-fact type does not bring them back, so it looks as though the diagram never picked up the new expression at all.&lt;br /&gt;
&lt;br /&gt;
The same redraw loses the box's own settings for showing rules, for showing example data, and for the position of the name.]]></description><category>User Interface</category><pubDate>Tue, 18 Aug 2026 12:53:40 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5909</guid><comments>https://www.casetalk.com/tickets/view.php?id=5909#bugnotes</comments></item><item><title>0005806: Population is not checked against ring constraints</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5806</link><description><![CDATA[The model quality report checks the population against uniqueness constraints, totality constraints, subset constraints and data types, but not against ring constraints.&lt;br /&gt;
&lt;br /&gt;
As a result a ring constraint can be declared on a fact type while the population contradicts it, and nothing reports it. Examples: a symmetric relationship where both directions have been entered, so the same situation is stated twice; an irreflexive relationship where something is related to itself; an asymmetric relationship where both directions are present; a relationship declared free of cycles where the population contains one.&lt;br /&gt;
&lt;br /&gt;
For a symmetric relationship the useful finding is the redundant one: once symmetry is declared, entering the reverse as well states the same fact twice, which is exactly what a population is supposed to avoid. Both readings can still be verbalized from the single stated fact.&lt;br /&gt;
&lt;br /&gt;
Expected: the population is checked against the declared ring constraint, in the same way as the other constraint types.]]></description><category>Validation</category><pubDate>Mon, 17 Aug 2026 14:47:12 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5806</guid><comments>https://www.casetalk.com/tickets/view.php?id=5806#bugnotes</comments></item><item><title>0004452: CaseTalk crash at end of classification</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=4452</link><description><![CDATA[At end of classification, CaseTalk stops responding. The screen becomes like an image, without any reaction whatsoever to my mouse.&lt;br /&gt;
&lt;br /&gt;
CTRL+ALT+DEL + end task is the only solution, again losing (classified) expressions.]]></description><category>Other</category><pubDate>Mon, 17 Aug 2026 14:46:57 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=4452</guid><comments>https://www.casetalk.com/tickets/view.php?id=4452#bugnotes</comments></item><item><title>0005905: Uploading a model could create a new version with missing content, without reporting an error</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5905</link><description><![CDATA[When a model was uploaded to a SQL Server repository, a row the database rejected could be discarded without any error being shown. The upload continued with the remaining tables, a new version number was created and handed back to the modeller, and the transaction was committed. The result was a version that looked successful but was missing part of the model - in the case that brought this to light, every object-fact type, while all twenty other parts of the model were stored correctly. Opening that version in the portal or downloading it again showed an empty model.&lt;br /&gt;
&lt;br /&gt;
The rejection itself came from model properties added during the 15.0 cycle (definite article, meta level, composite flag, data sensitivity and retention policy). These are mandatory in the repository and carry a default value, but the upload sent an explicit empty value for them instead of letting the default apply, which the database refused. Older models, written before those properties existed, were the ones affected.]]></description><category>Other</category><pubDate>Mon, 17 Aug 2026 14:46:36 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5905</guid><comments>https://www.casetalk.com/tickets/view.php?id=5905#bugnotes</comments></item><item><title>0005906: Option to keep diagram images out of project archives</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5906</link><description><![CDATA[Every time a project is archived - automatically after a save, manually via Archive Project, or through the MCP archives tool - CaseTalk also puts the rendered pictures that sit next to each diagram into the .zip: the PNG, JPG, SVG, WMF and generated HTML exports of every diagram, including the ER, UML, knowledge graph, ArchiMate, mapping, expression and data vault renderings.&lt;br /&gt;
&lt;br /&gt;
Those pictures are rewritten from the diagram on every save and contain nothing the diagram itself does not already hold, yet in a diagram-rich project they are by far the largest thing in the archive. Archives grow into the tens of megabytes and the archive folder fills up fast.&lt;br /&gt;
&lt;br /&gt;
The Files page of the Environment Options now has an 'Archive Diagram Images' checkbox, next to Auto Archive and Optimize Archives. Switch it off and archives contain only the model and diagram files themselves, which keeps them small; the images are still generated on disk as before and are still listed in the project window. The option is on by default, so archives keep working exactly as they always did until it is changed.&lt;br /&gt;
&lt;br /&gt;
This does not affect what CaseTalk renders - the 'Diagram Extras' setting still decides that. It only decides whether those renderings travel along into an archive.]]></description><category>Project</category><pubDate>Mon, 17 Aug 2026 14:46:24 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5906</guid><comments>https://www.casetalk.com/tickets/view.php?id=5906#bugnotes</comments></item><item><title>0005908: Population editor puts values in the wrong row or column</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5908</link><description><![CDATA[Two problems with the values in the population editor.&lt;br /&gt;
&lt;br /&gt;
1. Looking up a row&lt;br /&gt;
Looking a value up in the object type a column refers to sometimes puts the values in the wrong columns, and sometimes leaves the last column of that reference untouched, so it keeps the value it had before. It happens when the same label type heads more than one column: a fact type that relates an object type to itself, or a reference identified by, for instance, a start and an end date. The lookup window also opens on the first row rather than on the row the cell already refers to.&lt;br /&gt;
&lt;br /&gt;
2. The Details page&lt;br /&gt;
The fields on the Details page keep showing the row that was left. Add a row, or step to the next one, and as soon as a field is left the values of the previous row are written into the current row, which then reads as a copy of its predecessor. In a population that has no rows yet, typing on the Details page overwrites the column headings instead of filling a row.]]></description><category>User Interface</category><pubDate>Mon, 17 Aug 2026 14:46:10 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5908</guid><comments>https://www.casetalk.com/tickets/view.php?id=5908#bugnotes</comments></item><item><title>0005902: A model should be able to say which fact type indicates the subtype</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5902</link><description><![CDATA[When subtypes are grouped into one table, a record no longer says which subtype it is. The answer is a fact type that carries the subtype name - a subtype discriminator - but nothing in a model can state that a fact type plays that part. Every feature that needs to know therefore guesses, and each one guesses differently.&lt;br /&gt;
&lt;br /&gt;
The model quality report infers it: it accepts any population value in the model that happens to equal a subtype's name. The transformation cannot ask at all, so it groups subtypes whether or not the answer is recoverable afterwards. The generator cannot emit the column, because it does not know which fact type to emit. And the wizards cannot offer to create one, because there is nothing to create.&lt;br /&gt;
&lt;br /&gt;
Expected: a fact type can be marked as the subtype discriminator for a supertype, stored as part of the model rather than inferred from the data in it. Once a model can say it:&lt;br /&gt;
&lt;br /&gt;
- the quality report checks that discriminator's population against the actual list of subtypes, instead of matching names anywhere in the model&lt;br /&gt;
- the transformation knows whether grouping keeps the subtypes recoverable, and can offer to add the discriminator when it does not&lt;br /&gt;
- the generator emits the column with a value constraint limited to the subtypes in that table&lt;br /&gt;
- the wizards can propose one while the subtypes are being defined&lt;br /&gt;
&lt;br /&gt;
Detection can lean on what a model already offers: a fact type given the Classification concept type is stating that it classifies, which is a strong candidate for the discriminator and can be proposed as such.&lt;br /&gt;
&lt;br /&gt;
This is the shared foundation for the requests that have each been waiting on it.]]></description><category>Repository</category><pubDate>Sun, 16 Aug 2026 17:37:47 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5902</guid><comments>https://www.casetalk.com/tickets/view.php?id=5902#bugnotes</comments></item><item><title>0000679: Prompt for subtype indication</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=679</link><description><![CDATA[The UC/TC Assistent could be extended to ask if an OTFT containing a single role is actually a subtype, once it is matched to an OT, or once it generates two layers of OT.]]></description><category>Expressions</category><pubDate>Sun, 16 Aug 2026 16:54:24 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=679</guid><comments>https://www.casetalk.com/tickets/view.php?id=679#bugnotes</comments></item><item><title>0000120: Create a binairy fact with subtype indications</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=120</link><description><![CDATA[Performing a GLR on a structure containing subtypes, a table may be created containing several of these conceptual subtypes. However, which subtype a record represents is no longer clear.&lt;br /&gt;
&lt;br /&gt;
Analists are adviced to add a binary fact type expression which may hold the subtypes indication in the DBMS. It is than up to the DBA to decide to keep it or not.&lt;br /&gt;
&lt;br /&gt;
It would be great to have CaseTalk generate this column with a value constraint limited to either of the subtypes contained in the table. This takes a load of the shoulders of the analist. And makes it more intuïtive to work with the conceptual info, without the need to remember these special operations.]]></description><category>Transformation (GLR)</category><pubDate>Sun, 16 Aug 2026 16:54:21 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=120</guid><comments>https://www.casetalk.com/tickets/view.php?id=120#bugnotes</comments></item><item><title>0000230: Cannot open multiple IG files</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=230</link><description><![CDATA[It would be nice to open multiple IG files within the same project. Either both IG and IGG, or differenet IG files to be able to compare them.]]></description><category>Other</category><pubDate>Sun, 16 Aug 2026 15:29:16 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=230</guid><comments>https://www.casetalk.com/tickets/view.php?id=230#bugnotes</comments></item><item><title>0005816: Filtering OTFT appears to show no results</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5816</link><description><![CDATA[The filtering of otfts sometimes seems to not update the histlist, and it appears as if there is no hit at all. But when the panel is resized, the hits suddenly show up.]]></description><category>User Interface</category><pubDate>Sun, 16 Aug 2026 13:13:58 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5816</guid><comments>https://www.casetalk.com/tickets/view.php?id=5816#bugnotes</comments></item><item><title>0005894: Ranges, key-labels and state machines in a value constraint are read as plain values</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5894</link><description><![CDATA[A value constraint can hold more than a plain list of values: a range (for example [1..) or (0..100]), a key with a label (F=Female), or a state machine. In several places the constraint is read as though every entry were a plain value, so fragments such as &quot;[1&quot;, &quot;F=Female&quot; or a state name are treated as if they were example values of the label type.&lt;br /&gt;
&lt;br /&gt;
This has two separate consequences.&lt;br /&gt;
&lt;br /&gt;
1. The label type's data type is degraded.&lt;br /&gt;
&lt;br /&gt;
When the data type is derived from the model - which happens automatically when an expression is entered, and on demand through the Derive Data Types action - those fragments are not valid numbers or dates, so the data type is widened to text. A label type that was correctly typed as date, integer or numeric silently becomes text, and that wrong type carries on into the internal schema, generated DDL, the MIM report and other documentation.&lt;br /&gt;
&lt;br /&gt;
2. Generated artifacts receive the wrong values.&lt;br /&gt;
&lt;br /&gt;
When a domain is generated, each entry of the constraint is emitted as a value of that domain. So the generated artifact lists &quot;[1..)&quot; or &quot;F=Female&quot; as if they were allowed values, instead of a proper range or the key alone. The same constraint is also emitted translated in one place and untranslated in another.&lt;br /&gt;
&lt;br /&gt;
Plain enumerated values are not affected by either. Only ranges, key-label pairs and state machines trigger it.&lt;br /&gt;
&lt;br /&gt;
Ranges became sensitive to this when the bracket notation ([1..) and (0..100]) was introduced - before that, a range still split into clean bounds.]]></description><category>Constraints</category><pubDate>Sun, 16 Aug 2026 13:10:44 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5894</guid><comments>https://www.casetalk.com/tickets/view.php?id=5894#bugnotes</comments></item><item><title>0005901: Improved value constraint type support in artifacts: ranges, state machines and key-label</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5901</link><description><![CDATA[A value constraint says one of four things: a list of values, a range, a key with a label, or a state machine. Artifacts only ever handled the first properly. Everything else was flattened into a list of allowed values, which loses most of what was written:&lt;br /&gt;
&lt;br /&gt;
- a range ended up inside that list, so a generated check read as though &quot;1..10&quot; were itself a value;&lt;br /&gt;
- a key lost its label - &quot;F=Female&quot; arrived as &quot;F&quot;, and Female was nowhere in the generated result;&lt;br /&gt;
- a state machine arrived as a flat list of state names, and which state may follow which was gone;&lt;br /&gt;
- the marker for where a machine starts came out as though it were a state.&lt;br /&gt;
&lt;br /&gt;
Artifacts should carry each kind as what it is.&lt;br /&gt;
&lt;br /&gt;
A list of values and a key with a label become a reference table: a row per value, a column for the label where there is one, filled as static population, with a foreign key from every column that uses the domain. The check constraint is then simpler or unnecessary, because the database enforces the values by reference, and the labels can be joined against instead of being discarded.&lt;br /&gt;
&lt;br /&gt;
A state machine becomes two tables: the states, and the transitions as pairs of from-state and to-state. Which state may follow which cannot be expressed as a check constraint at all.&lt;br /&gt;
&lt;br /&gt;
Where a machine says it starts becomes the default value of the column, when the role does not already state one of its own. The start marker itself is never a value and never appears as one.&lt;br /&gt;
&lt;br /&gt;
A range stays a check constraint. A range is continuous, so it cannot be listed as rows - &quot;between 1 and 10&quot; is not the statement &quot;1 or 10&quot; - and the brackets decide whether a bound is included.&lt;br /&gt;
&lt;br /&gt;
Generating the reference tables should be a setting, since not every target wants extra tables in its schema.]]></description><category>Generation (SQL, XML, etc)</category><pubDate>Sun, 16 Aug 2026 11:12:53 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5901</guid><comments>https://www.casetalk.com/tickets/view.php?id=5901#bugnotes</comments></item><item><title>0005899: Editing a population fails with "Out of system resources" after a lookup</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5899</link><description><![CDATA[Opening the population editor for a fact type, using Lookup to pick a value and then clicking around the grid can end with the message &quot;Out of system resources&quot;. Before that the dialog becomes very slow, and the empty row at the bottom of the grid shows an absurdly high row number (for example 51501) even though the population only holds a couple of rows.&lt;br /&gt;
&lt;br /&gt;
The population editor treated the highest row number in use as if every number below it were a row, and quietly created an empty placeholder row for each number that was missing. Those placeholders then counted towards the highest number in use, so the gap could only ever grow: each time the editor was opened it had more placeholders to create than the time before. Because a Lookup opens a second population editor, looking a value up made it grow faster. Once the numbering had run up into the tens of thousands, simply opening the editor allocated tens of thousands of placeholder rows and the program ran out of memory.&lt;br /&gt;
&lt;br /&gt;
Fixed: the editor now asks for a row's values first and only keeps a row that actually has any, so gaps in the numbering cost nothing. Saving a population no longer re-scans the whole population once per row, which also removes the long delay when closing the dialog. A third problem was corrected along the way: when the numbering was tidied up on save, an empty gap could be renumbered onto a number already in use, putting two rows on the same number.&lt;br /&gt;
&lt;br /&gt;
A model that has already been affected keeps its inflated numbering. Run the model checks: the population check reports the bad rows and numbering gaps, and its Fix removes the leftover placeholder rows and renumbers the population back down.]]></description><category>User Interface</category><pubDate>Sun, 16 Aug 2026 06:44:45 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5899</guid><comments>https://www.casetalk.com/tickets/view.php?id=5899#bugnotes</comments></item><item><title>0005895: Label types that take their data type from another label type are treated as untyped</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5895</link><description><![CDATA[A label type does not have to name one of the built-in data types directly. It may point at another label type acting as a domain - for example &quot;Birth Date&quot; whose data type is &quot;Date&quot;, where &quot;Date&quot; is itself a label type carrying the data type date.&lt;br /&gt;
&lt;br /&gt;
Several parts of the product only read the name written on the label type itself. Because that name (&quot;Date&quot;) is not one of the built-in type names, they conclude the label type has no data type at all, and fall back to a default.&lt;br /&gt;
&lt;br /&gt;
Visible effects:&lt;br /&gt;
- a label type using a domain is reported as having no data type;&lt;br /&gt;
- whether its values are quoted in generated output is decided by a fallback rather than by the real type;&lt;br /&gt;
- exports and reports that branch on the data type take the wrong branch;&lt;br /&gt;
- data type derivation skips the label type.&lt;br /&gt;
&lt;br /&gt;
What is needed is one place that answers &quot;what is the actual data type of this label type&quot;, following the chain to the domain that defines it, so that every part of the product gives the same answer. The chain is already walked when the data type is shown as text, including protection against a definition that points at itself, so the behaviour exists - it is simply not available to the places that need to act on it.&lt;br /&gt;
&lt;br /&gt;
This blocks the value storage and rendering work in 0003773, and part of the fix for 0005894.]]></description><category>Repository</category><pubDate>Sat, 15 Aug 2026 21:08:21 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5895</guid><comments>https://www.casetalk.com/tickets/view.php?id=5895#bugnotes</comments></item><item><title>0005898: A label subtype must not allow more than its supertype</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5898</link><description><![CDATA[A label subtype takes its data type from another label type acting as a data domain. Its value constraint therefore has to stay inside the one its supertype states: a subtype is allowed to be stricter, never wider.&lt;br /&gt;
&lt;br /&gt;
Until now nothing checked this. A subtype could state a range of 0..100 under a supertype stating 10..50, or list a value the supertype does not allow at all, and the model would report no problem - even though the two rules contradict each other and no value can satisfy both.&lt;br /&gt;
&lt;br /&gt;
A model check now reports it: &quot;A label subtype may not allow more than its supertype.&quot; Each value or range that steps outside the supertype is listed separately, naming the subtype and the supertype involved, and the fix opens the constraint of the subtype - the one making the wider claim.&lt;br /&gt;
&lt;br /&gt;
What counts as allowed:&lt;br /&gt;
- a listed value has to be one the supertype allows;&lt;br /&gt;
- a key with a label is judged on the key, so a subtype may give the same key a different label;&lt;br /&gt;
- a state machine is judged on the state names it mentions;&lt;br /&gt;
- a range has to lie inside a range the supertype states. Where the bounds are equal, the brackets decide: a supertype that excludes a bound is not satisfied by a subtype that includes it. An end left open is outside any end the supertype closes.&lt;br /&gt;
&lt;br /&gt;
A range is deliberately not judged against a list of single values, because a list of 1 and 10 does not admit everything between them.&lt;br /&gt;
&lt;br /&gt;
A supertype that states no constraint at all restricts nothing, so nothing can contradict it. Where a domain in between states nothing, the check looks further up to the first constraint there actually is.&lt;br /&gt;
&lt;br /&gt;
Split from 0005890, which also raises size and precision inheritance and a wiki clarification of what a label type means - those are still open there.]]></description><category>Constraints</category><pubDate>Sat, 15 Aug 2026 20:05:50 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5898</guid><comments>https://www.casetalk.com/tickets/view.php?id=5898#bugnotes</comments></item><item><title>0005897: Ring constraints are drawn wrong when the diagram is not at 100% zoom</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5897</link><description><![CDATA[Ring constraint markers do not follow the diagram cleanly when the zoom is not 100%.&lt;br /&gt;
&lt;br /&gt;
- A marker that was dragged to its own spot stays where it was, so it drifts away from its fact type a little further with every zoom step.&lt;br /&gt;
- The marker is drawn with a thin hairline while the rest of the diagram thickens its lines with the zoom, so it looks faint when zoomed in and washes out on a print or exported image.&lt;br /&gt;
- Zoomed far out the symbols inside the rings stop shrinking with the diagram and turn into blobs: the arrowheads and dots reach a minimum size and fill the circle.&lt;br /&gt;
&lt;br /&gt;
Steps to reproduce:&lt;br /&gt;
1. Open a diagram with a fact type carrying a ring constraint.&lt;br /&gt;
2. Drag the ring marker beside the fact type.&lt;br /&gt;
3. Zoom in and out a few times, then print or export the diagram.&lt;br /&gt;
&lt;br /&gt;
Expected: the marker keeps its place relative to the fact type, and its lines and symbols scale with the rest of the diagram at every zoom level.]]></description><category>Diagrams</category><pubDate>Sat, 15 Aug 2026 18:08:11 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5897</guid><comments>https://www.casetalk.com/tickets/view.php?id=5897#bugnotes</comments></item><item><title>0005892: Show which role wins the grouping tiebreak in the diagram</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5892</link><description><![CDATA[On a binary fact type between two object types, both roles are marked as groupable, because both of them genuinely satisfy the grouping rules. When exactly one of the two carries a single-role totality constraint, though, the transformation will always take that one - the direction is settled - and the diagram gives no hint of it.&lt;br /&gt;
&lt;br /&gt;
Show which role wins by printing its mark in bold. Both roles stay marked, so the mark keeps its present meaning of &quot;this role qualifies&quot;; the weight adds &quot;and this is the one that will be taken&quot;.&lt;br /&gt;
&lt;br /&gt;
This also makes the diagram agree with the model check: a bold mark appears exactly when the check stays silent about grouping preference. If neither role carries a totality constraint, or both do, nothing is bold and the check asks for a preference - which is the honest picture, because the choice really is open.]]></description><category>Diagrams</category><pubDate>Sat, 15 Aug 2026 15:48:33 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5892</guid><comments>https://www.casetalk.com/tickets/view.php?id=5892#bugnotes</comments></item><item><title>0003408: Render datetime formats according to Locale</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=3408</link><description><![CDATA[The date time type for string values should be rendered back to the user using the selected Locale Setting.]]></description><category>Expressions</category><pubDate>Sat, 15 Aug 2026 15:47:16 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=3408</guid><comments>https://www.casetalk.com/tickets/view.php?id=3408#bugnotes</comments></item><item><title>0005893: Model checks and the API read a transformation setting as if it were part of the model</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5893</link><description><![CDATA[The &quot;force not null&quot; setting on a role is an instruction to the transformation. It lets a modeller force a NOT NULL column in the generated result without stating the underlying rule in the model itself - which is why it can only be set before a transformation has run.&lt;br /&gt;
&lt;br /&gt;
Two model checks and the API read it as though it were part of the model instead. The API in particular reports a role as &quot;not optional&quot; purely because this setting is on, which tells a caller something about the intended output while appearing to describe the model.&lt;br /&gt;
&lt;br /&gt;
The setting should be honoured where the transformation is decided, and ignored where the model itself is being described or checked.]]></description><category>Validation</category><pubDate>Sat, 15 Aug 2026 14:34:09 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5893</guid><comments>https://www.casetalk.com/tickets/view.php?id=5893#bugnotes</comments></item><item><title>0005748: Binary fact grouping rule: false grouping-preference warning when totality constraint already determines direction</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5748</link><description><![CDATA[On a binary fact type between two objectified fact types with two single-role uniqueness constraints, the model-quality rule that asks the user to choose a grouping direction fired even when the direction was already unambiguous. When exactly one of the two roles carries a single-role totality constraint, the group/lexicalize engine already groups that role preferentially, so no user preference is needed. The rule nonetheless reported a violation, producing a false positive that was inconsistent with the engine's actual behaviour.]]></description><category>Other</category><pubDate>Sat, 15 Aug 2026 13:03:58 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5748</guid><comments>https://www.casetalk.com/tickets/view.php?id=5748#bugnotes</comments></item><item><title>0005889: Files kept outside the project folder are re-searched on every open, and may be matched to the wrong file</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5889</link><description><![CDATA[A project can refer to files that are not stored in the project folder itself. CaseTalk remembers where those files live through a Windows shortcut, so that the project keeps working when a file is moved elsewhere on the same computer.&lt;br /&gt;
&lt;br /&gt;
Two things go wrong with that.&lt;br /&gt;
&lt;br /&gt;
Opening a project is slow when such a file has moved. Windows is able to find the file in its new place, but CaseTalk does not remember the answer: the shortcut on disk keeps pointing at the old location, so the search starts again from scratch the next time the project is opened, and the time before that. Windows allows itself three seconds for each search. A project holding a dozen or more external files can therefore appear to hang for the better part of a minute on every open, showing nothing at all while it waits.&lt;br /&gt;
&lt;br /&gt;
A file can also be silently replaced by the wrong one. When Windows can no longer follow a file, it falls back to looking for one with the same name, and that search can land on an unrelated file elsewhere on the machine. The project then quietly starts working with a file the user never chose.&lt;br /&gt;
&lt;br /&gt;
Note that this way of remembering files only works within one computer. A project folder that travels through a sync service such as OneDrive arrives on the other machine as a fresh copy, and no shortcut in it can be followed. For that reason files belonging to a project are best kept in the project folder itself.]]></description><category>Other</category><pubDate>Fri, 14 Aug 2026 18:56:43 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5889</guid><comments>https://www.casetalk.com/tickets/view.php?id=5889#bugnotes</comments></item><item><title>0005884: Hide example data from readers who are not cleared for it</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=5884</link><description><![CDATA[A model's example population is often real: rows lifted from a production system to make a fact type concrete. Until now CaseTalk showed all of it to whoever had the file open, and printed all of it into reports.&lt;br /&gt;
&lt;br /&gt;
Expected: what a reader sees depends on what they are cleared to see.&lt;br /&gt;
&lt;br /&gt;
- A permission level in the options says what the person at this CaseTalk may read. Everything remains readable by default, exactly as before.&lt;br /&gt;
- Example data classified above that level is shown as a placeholder instead of the real value, wherever a sentence is verbalized.&lt;br /&gt;
- A single tuple can state its own classification, which overrides the object/fact type in both directions. This matters because example data is not all of a kind: a row somebody invented to illustrate a fact type is marked Public and stays readable however sensitive the type is, while a row taken from production stays protected however ordinary the type looks.&lt;br /&gt;
- The population editor shows masked rows as such and will not let them be edited, since what is on screen is a placeholder and typing over it would replace the real value. A deliberate 'Reveal masked values' step lifts that for the current editing session, in the same way an object/fact type is temporarily unlocked, and it is handed back when the editor closes.&lt;br /&gt;
- The project report carries a confidentiality notice when the model classifies anything, because once a report leaves CaseTalk there is no reader left to check.]]></description><category>User Interface</category><pubDate>Thu, 13 Aug 2026 09:33:24 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=5884</guid><comments>https://www.casetalk.com/tickets/view.php?id=5884#bugnotes</comments></item><item><title>0004024: For your eyes only - classifications</title><author></author><link>https://www.casetalk.com/tickets/view.php?id=4024</link><description><![CDATA[According to a post on LinkedIn this makes sense for modeling (artifacts).&lt;br /&gt;
&lt;br /&gt;
[url=https://www.linkedin.com/feed/update/urn:li:activity:7084824295603884032&quot; rel=&quot;noopener,nofollow]&lt;a target=&quot;_blank&quot; href=&quot;https://www.linkedin.com/feed/update/urn:li:activity:7084824295603884032&quot;&gt;https://www.linkedin.com/feed/update/urn:li:activity:7084824295603884032&lt;/a&gt;[/url]]]></description><category>Lineage</category><pubDate>Thu, 13 Aug 2026 09:33:24 +0200</pubDate><guid>https://www.casetalk.com/tickets/view.php?id=4024</guid><comments>https://www.casetalk.com/tickets/view.php?id=4024#bugnotes</comments></item></channel></rss>
