Compare commits

...

5 commits

Author SHA1 Message Date
409ee4d110 Merge pull request 'R1.05 V5 and V6: graphics files and history checks on the test server' (#32) from docs/r105-v5-v6 into main
Reviewed-on: #32
2026-10-09 15:16:16 +11:00
fd2666ddb1 check-web-access: framed pages are fetched by the viewer's browser
Note: an IP allowlist on the target site must include the web-client
viewers; seen on the R1.05 test server (200 from the server, 403 from
another PC).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 15:12:07 +11:00
732c6fb2da ISS-111 fix verified: frame-src CSP entries in jwuiisg.sup
The user added CSP_ENTRY frame-src 'self' and the test host to
jwuiisg.sup and restarted CI Server (JWUIISG reads the file only at
start). The header then allowed the host and the external page showed
in a temporary display in the web client (display removed again).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 15:01:51 +11:00
03bf567972 R1.05 HMI tests with temporary displays: web trend, web browser CSP
With the user's approval two temporary displays were deployed, viewed in
the web client and removed (display folders identical before/after):
- a 2-pen trend draws on the R1.05 web client (ISS-096 closed; ISS-041
  fixed on R1.05);
- the default R1.05 Content-Security-Policy blocks external pages in a
  web browser component; same-origin pages load (ISS-111).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:42:04 +11:00
98035366a7 R1.05 V5 and V6: graphics files and history checks on the test server
V5 (read-only): Layouts.readme and components identical; JCEF browser
component now loaded from tls\exe\lib\jcef; connectrdp.cmd present;
jwuiutl help identical; AOG_UAC_MethodArg_Call2 added, AOG_OPCUA_Methods
not installed; web trend DataSource.js re-enables the pen checks behind
ISS-041 (probably fixed, not tested).
V6 (read-only): hisdbg 1/20/6 as on R1.03; history and item start/stop
scripts differ only by the extension hooks.
ISS-092, 097, 100, 101 closed; notes on ISS-094, 096.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 11:20:38 +11:00
13 changed files with 129 additions and 16 deletions

View file

@ -83,7 +83,7 @@ Module, the Operator Interface and the HTML display, if these rules are kept (sa
| Actions sheet (§4.12, R1.04) | *Update item/parameter* on an item, object signal or parameter can carry **Reason** (≤ 256 chars) and **Approver** (≤ 128 chars); they land in `AUDIT_TRAIL` fields `APPROVAL_REASON` / `APPROVER` (skill `audit-trail`). Two documented recipes for alarm acknowledgement with reason/approver: via an item parameter (attribute *Acknowledged* = 1, item alarms only) or via the overview's *External Acknowledgement* properties (item and external alarms). Not tested. | | Actions sheet (§4.12, R1.04) | *Update item/parameter* on an item, object signal or parameter can carry **Reason** (≤ 256 chars) and **Approver** (≤ 128 chars); they land in `AUDIT_TRAIL` fields `APPROVAL_REASON` / `APPROVER` (skill `audit-trail`). Two documented recipes for alarm acknowledgement with reason/approver: via an item parameter (attribute *Acknowledged* = 1, item alarms only) or via the overview's *External Acknowledgement* properties (item and external alarms). Not tested. |
| Dataset tables (§2.25, R1.05) | Column **Icon**, *Icon filter* (`<v>`, `!<v>`, `&<v>` bit test), *Icon tooltip*; *Operator can use column sorters*; *Operator can select row(s)* / *multiple rows*; *[Enterprise Dataset Locations]*; enterprise location supported on the HTML display. | | Dataset tables (§2.25, R1.05) | Column **Icon**, *Icon filter* (`<v>`, `!<v>`, `&<v>` bit test), *Icon tooltip*; *Operator can use column sorters*; *Operator can select row(s)* / *multiple rows*; *[Enterprise Dataset Locations]*; enterprise location supported on the HTML display. |
| Report (§2.26, R1.05) | New *[Enterprise]* category (primary / secondary data location). | | Report (§2.26, R1.05) | New *[Enterprise]* category (primary / secondary data location). |
| Web Browser (§2.33, R1.05) | New browser engine: protocols WebRTC, HTTPS, WebSocket, HTTP/2, HTTP/3; codecs VP8, VP9, WebM, Opus, Vorbis, PCM. Content that played on R1.04 or earlier may not play after the upgrade. Right-click menu; new properties *Go Home/Stop/Reload*, *[Printing]*, *[Status]*, *[Security]* (*Enable Microphone/Camera*, *Allow Insecure Certificates*, *Allow Local file access*). Local files for CI Mobile View must be placed under `%TLS_ALLUSERS_PATH%\wap` and opened by URL. | | Web Browser (§2.33, R1.05) — **web client: external pages are blocked** by the R1.05 default Content-Security-Policy (verified 2026-10-09, ISS-111); only pages from the CI Server itself load, unless the host is added as `frame-src` in `jwuiisg.sup` (skill `portal-setup`, `check-web-access.md`; verified). Component type `extendedIExplorer` (class `WebBrowserChromium`), property `url` | New browser engine: protocols WebRTC, HTTPS, WebSocket, HTTP/2, HTTP/3; codecs VP8, VP9, WebM, Opus, Vorbis, PCM. Content that played on R1.04 or earlier may not play after the upgrade. Right-click menu; new properties *Go Home/Stop/Reload*, *[Printing]*, *[Status]*, *[Security]* (*Enable Microphone/Camera*, *Allow Insecure Certificates*, *Allow Local file access*). Local files for CI Mobile View must be placed under `%TLS_ALLUSERS_PATH%\wap` and opened by URL. |
| Display generator (§2.36) | The note "not supported on HTML displays" was removed in the R1.05 manual; R30 §4.8 does not list it. Treat web support as unconfirmed. | | Display generator (§2.36) | The note "not supported on HTML displays" was removed in the R1.05 manual; R30 §4.8 does not list it. Treat web support as unconfirmed. |
| `jwuiutl -m` / `-M` (§1.5) | Output now described as space-separated (R1.03 manual: CSV). On R1.03 `-m` printed comma-separated lines (verified); R1.05 output not checked (ISS-094). | | `jwuiutl -m` / `-M` (§1.5) | Output now described as space-separated (R1.03 manual: CSV). On R1.03 `-m` printed comma-separated lines (verified); R1.05 output not checked (ISS-094). |

View file

@ -77,3 +77,14 @@ validation of `CIENG_Tank` *No problems found* (also after a sample reload with
but a stale `<itemId>` then shows 0 at run time, ISS-052); but a stale `<itemId>` then shows 0 at run time, ISS-052);
search worked; browser showed live values. HTML trend without line: ISS-041 (cause and search worked; browser showed live values. HTML trend without line: ISS-041 (cause and
workaround in `trend.md` §6). workaround in `trend.md` §6).
## R1.05 test server: installed files (V5, 2026-10-09, read-only)
- `jwuiutl --help` prints the same text as on R1.03 (so the help still says `-o` defaults to the
current directory, ISS-094). The `-m` / `-M` output format was not checked (a search is not run
on the shared server).
- `jwuiutl.cmd` and `jwuiged.cmd` now load the new web browser component based on JCEF (change
e12737) from `%TLS_ROOT_PATH%\tls\exe\lib\jcef` (R1.03: `%TLS_WAP_PATH%\webapps\jcef`) and add
`tls\exe\lib\*` to the class path. `connectrdp.cmd` (RDP Connect) is installed in `tls\com`.
- `DEPLOY` has the same sub-folders as R1.03 (`components`, `displays`, `layouts`, `locales`,
`symbols`, `thresholds`); the factory component list is identical.

View file

@ -255,3 +255,9 @@ byte. User `CIENG` lands in `CIENG_Operator` on Overview on both clients; ADMIN
default layout. Test layouts (removed again): tab set first in its frame set (web broken), default layout. Test layouts (removed again): tab set first in its frame set (web broken),
`maximumTabs` 8 with 2 tab frames (no extra tab on the web), status line with `connectionState` `maximumTabs` 8 with 2 tab frames (no extra tab on the web), status line with `connectionState`
(web broken). (web broken).
## R1.05 test server (V5, 2026-10-09, read-only)
`Layouts.readme` is identical to R1.03. No factory copy `Layouts-original.xml` was found in the
R1.05 `DEPLOY\layouts` folder (only the live `Layouts.xml` and backups made by projects): keep
your own backup before changing `Layouts.xml` (`layout.ps1` does this).

View file

@ -2,7 +2,7 @@
task: Configure a trend (chart) component; what each setting does on the desktop and in the HTML display task: Configure a trend (chart) component; what each setting does on the desktop and in the HTML display
version: R1.05 (first written for R1.03) version: R1.05 (first written for R1.03)
source: IM 36K10C50-01EN §2.27 (Trend, Tables 2.27-10…28), §2.29 (Micro Trend) (R1.05 5th ed. Feb. 2026); IM 36K10R30-01EN §4.8.7 (R1.05 4th ed. Feb. 2026); installed web client code (`%TLS_WAP_PATH%\mobileoperator\src\fasttools\ui\components\implementation\charts\`); practiced on CI-Eng-Sample (display CIENG_TrendLab, removed 2026-10-06) 2026-10-02; sample trends CIENG_Trends / CIENG_TankFaceplate and a test display on both clients 2026-10-06 source: IM 36K10C50-01EN §2.27 (Trend, Tables 2.27-10…28), §2.29 (Micro Trend) (R1.05 5th ed. Feb. 2026); IM 36K10R30-01EN §4.8.7 (R1.05 4th ed. Feb. 2026); installed web client code (`%TLS_WAP_PATH%\mobileoperator\src\fasttools\ui\components\implementation\charts\`); practiced on CI-Eng-Sample (display CIENG_TrendLab, removed 2026-10-06) 2026-10-02; sample trends CIENG_Trends / CIENG_TankFaceplate and a test display on both clients 2026-10-06
status: verified on R1.03 (desktop Operator Interface: every row marked ✅/❌ below; HTML display: §6). R1.05: manuals re-checked 2026-10-08 — §2.27/2.29 unchanged except the trend's *Enterprise* property, now marked supported on the HTML display (from docs). Not re-tested on R1.05; whether the 50-pen web problem (ISS-041) still exists in the R1.05 web client is awaiting user verification (ISS-096) status: verified on R1.03 (desktop Operator Interface: every row marked ✅/❌ below; HTML display: §6). R1.05: manuals re-checked 2026-10-08 — §2.27/2.29 unchanged except the trend's *Enterprise* property, now marked supported on the HTML display (from docs). Not re-tested on R1.05; whether the 50-pen web problem (ISS-041) still exists in the R1.05 web client is awaiting user verification (ISS-096) R1.05 (V5, 2026-10-09): pen limit and DataSource.js change read from the installed code; 50-pen problem probably fixed, not tested.
--- ---
# Trend settings (desktop and web) # Trend settings (desktop and web)
@ -149,3 +149,19 @@ rotation, zoom. Outputs (⇨): *Hairline value[n]*, *Time range begin/end*, *Upd
ISS-055 open). `fillWithHistory` true on an item that is in **no** storage group (e.g. ISS-055 open). `fillWithHistory` true on an item that is in **no** storage group (e.g.
`SYSTEM.CPU_LOAD`) gives the message *Record not found* when the display opens, on the desktop `SYSTEM.CPU_LOAD`) gives the message *Record not found* when the display opens, on the desktop
and on the web (tested 2026-10-06): set it false for such items. and on the web (tested 2026-10-06): set it false for such items.
## R1.05: the 50-pen problem is fixed (verified on the web 2026-10-09)
**Verified** with a temporary display on the R1.05 test server (copy of `CIENG_Trends`, 2 pens on
items that already store history; removed afterwards): the web client drew both pens, history
and live part, without spare pens. The padding workaround below is only needed on R1.03. The
desktop Operator Interface was not checked (ISS-096 closed).
### Cause (from the code)
`PEN_COUNT_LIMIT` is still 50 in the R1.05 web client, but `trend/datasources/DataSource.js`
changed (change e12620, Oct-24, "revert previous change to enable component to function
again"): the checks that skip empty and invisible pens, commented out in the R1.03 file, are
active again. That is the cause of ISS-041, so a trend with fewer than 50 pens should draw on
R1.05. Not tested (no display may be changed on the shared server): keep the padding workaround
until it is checked on a test system (ISS-096).

View file

@ -2,7 +2,7 @@
task: Check storage groups, units and history clients with hisdbg; force a rollover task: Check storage groups, units and history clients with hisdbg; force a rollover
version: R1.05 (first written for R1.03) version: R1.05 (first written for R1.03)
source: IM 36K10L20-01EN §2.1, §3.1 (4th Edition, Feb. 2026); IM 36K10C40-01EN §5.1 (5th Edition, Feb. 2026); practiced on the test system and CI-Eng-Sample 2026-10-01 source: IM 36K10L20-01EN §2.1, §3.1 (4th Edition, Feb. 2026); IM 36K10C40-01EN §5.1 (5th Edition, Feb. 2026); practiced on the test system and CI-Eng-Sample 2026-10-01
status: verified on R1.03 (2026-10-01). R1.05 - the manual sections are unchanged and the hisdbg program is still installed (2026-10-08), but hisdbg was not run on the R1.05 test server (awaiting user verification, ISS-101; steps at the end) status: verified on R1.03 (2026-10-01). R1.05 - the manual sections are unchanged and the hisdbg program is still installed (2026-10-08), but hisdbg was not run on the R1.05 test server (awaiting user verification, ISS-101; steps at the end) R1.05 (V6, 2026-10-09): hisdbg 1/20/6 and the start scripts verified read-only on the R1.05 test server.
--- ---
# History checks (`hisdbg`) # History checks (`hisdbg`)
@ -61,3 +61,13 @@ Answer the node prompt with Enter (local), then `1` (statistics), `20` (all grou
(clients), and `-1` to exit. Do not choose any other number. Expected: the same menu as R1.03 (clients), and `-1` to exit. Do not choose any other number. Expected: the same menu as R1.03
(`-1` … `22`), the system groups with history types 21, 6, 1058, 36, 4 (no item group unless (`-1` … `22`), the system groups with history types 21, 6, 1058, 36, 4 (no item group unless
the server has one), and clients such as ITH*, ALH, ADTSTO, LGHUMH, RPTMAN. Send the output. the server has one), and clients such as ITH*, ALH, ADTSTO, LGHUMH, RPTMAN. Send the output.
## R1.05 test server (V6, 2026-10-09, read-only)
- `hisdbg` options 1, 20 and 6 give the same prompts and layout as on R1.03 (menu −1…22):
statistics, the group list with the system groups of history types 21 (ALH), 6 (ADT), 1058
(report groups), 36 (SYS_LOG), 4 (STATION_STAT) plus type 24 item groups, and the logged-in
clients (DSSSDA*, RPTMAN, EQPIOSTAT, ALH, the ITH processes …). ISS-101 closed.
- `history_start/stop.cmd` and `item_start/stop.cmd` differ from R1.03 only by the call of
`?*_history_start.cmd` / `?*_item_start.cmd` (and the stop variants) extension scripts at the
end (change i12719, ISS-121). The processes started are unchanged. ISS-100 closed.

View file

@ -76,3 +76,39 @@ service account), `http://localhost:8080/` and `https://localhost:8443/` both 20
offers `CI-rc-setup.exe` (Remote Connect), the six `DEPLOY` folders present, and the seven offers `CI-rc-setup.exe` (Remote Connect), the six `DEPLOY` folders present, and the seven
headers plus CSP listed above on both ports. Install paths differ from R1.03 (here headers plus CSP listed above on both ports. Install paths differ from R1.03 (here
`C:\Yokogawa\CIServer`), so always use the `TLS_*` variables. `C:\Yokogawa\CIServer`), so always use the `TLS_*` variables.
## R1.05: the CSP blocks external pages in displays (verified 2026-10-09, ISS-111)
Tested with a temporary display holding two web browser components on the R1.05 test server
(removed afterwards). The web client received `Content-Security-Policy: script-src 'self'
'unsafe-eval' 'unsafe-inline'; img-src 'self' data:; default-src 'unsafe-inline' 'self';
font-src 'self' data:` and `X-Frame-Options: sameorigin`. With no `frame-src` rule,
`default-src` applies: the browser refused to frame `https://example.com/` (a
`securitypolicyviolation` event for `frame-src`), while a page from the CI Server itself
loaded. So on R1.05 a display with an external web page (a dashboard, a camera, a vendor page)
stays empty in the browser.
**Fix (verified 2026-10-09 on the R1.05 test server):** allow the external host for frames in
`jwuiisg.sup`, *Security* tab, one `CSP_ENTRY` line per value after the installed ones:
```
CSP_ENTRY = frame-src, "'self'"
CSP_ENTRY = frame-src, "https://<allowed host>"
```
Keep `'self'`, otherwise pages from the CI Server itself are blocked in frames too. The web
server `JWUIISG` (started by `user_start.cmd`) reads the file only at start: the change takes
effect after a CI Server restart (needs administrator rights and disconnects all operator
clients). Then the header contains `frame-src 'self' https://<allowed host>`, and the test page
showed inside the display with no CSP violation. List only the hosts you need; to undo, remove
the lines and restart again. The desktop Operator Interface (JCEF browser) is not affected by
these headers (not tested).
**Who loads the framed page.** In the web client the page in a web browser component is fetched
by the viewer's own browser, not by the CI Server. So besides the `frame-src` entry, the target
site must accept requests from every machine that opens the web client: a site that only admits
the CI Server's address (IP allowlist) answers 403 to the viewers and the frame stays blank or
shows an error, although the same display works in the Operator Interface on the CI Server
(there the browser runs on the server). Check from a viewer PC with `curl -I <url>`. The target
must also not forbid framing (`X-Frame-Options` or its own CSP `frame-ancestors`). Seen on the
R1.05 test server 2026-10-09: 200 from the server, 403 from another PC.

View file

@ -225,7 +225,7 @@ fill any monitor (slightly stretched where the ratio differs); maximise the wind
the taskbar. The web client does not zoom displays: use full screen (F11) and the browser zoom the taskbar. The web client does not zoom displays: use full screen (F11) and the browser zoom
(estimates, not tested: about 100 % at 1920 x 1080, 80 % at 1536 x 864, 70 % at 1366 x 768). (estimates, not tested: about 100 % at 1920 x 1080, 80 % at 1536 x 864, 70 % at 1366 x 768).
Known limits (R1.03.00): the trend draws no line in the browser (a web trend needs 50 pens, Known limits (R1.03.00; on R1.05 the web trend draws with 2 pens, verified 2026-10-09): the trend draws no line in the browser (a web trend needs 50 pens,
ISS-041; the 2-pen trend keeps the desktop hairline box readable); the empty part of the alarm ISS-041; the 2-pen trend keeps the desktop hairline box readable); the empty part of the alarm
lists stays white; a tab opened by clicking the tab strip itself keeps its zoom until it is opened lists stays white; a tab opened by clicking the tab strip itself keeps its zoom until it is opened
once from the toolbar, menu or F1–F6. once from the toolbar, menu or F1–F6.

View file

@ -60,7 +60,7 @@ development system (see "Test system" in `progress.md`); they do not exist on ot
| ISS-038 | 2026-10-01 | HISTORY (`ithloahis` + rollover) | An `ithloahis` sample that was dropped (dated 11:50, before the active unit) still became the **initial value** of the next unit: after a forced rollover at 12:05:26 `ITEM_HISTORY` shows `CI-Eng-Sample.TANK1.INFLOW` = 95 (`INITIAL_VALUE` 1) although the item's value was 112. History after loading old samples can therefore show a wrong value at the next rollover. | closed | Retested 2026-10-01 after a CI Server restart (first unit 18:05:46). (a) Sample dated one day earlier (95), live value 112, forced rollover: initial value 112 — correct. (b) Sample dated 18:00 (96, a few minutes before the first unit), live value 113, forced rollover: initial value **96** — wrong again; the live item value stayed 113. So a dropped sample dated shortly before the first unit (same day) becomes the next unit's initial value; a much older one did not. Also found: a forced rollover within 2 minutes of the previous one is refused (`DSI-E-ROLLDONE`). Documented as a caution; behaviour confirmed, ready to close. Closed 2026-10-01 (confirmed by user). | `.claude/skills/system-management/tasks/load-history.md`; `knowledge/manuals/IM36K10C40-01EN.md` §3 | | ISS-038 | 2026-10-01 | HISTORY (`ithloahis` + rollover) | An `ithloahis` sample that was dropped (dated 11:50, before the active unit) still became the **initial value** of the next unit: after a forced rollover at 12:05:26 `ITEM_HISTORY` shows `CI-Eng-Sample.TANK1.INFLOW` = 95 (`INITIAL_VALUE` 1) although the item's value was 112. History after loading old samples can therefore show a wrong value at the next rollover. | closed | Retested 2026-10-01 after a CI Server restart (first unit 18:05:46). (a) Sample dated one day earlier (95), live value 112, forced rollover: initial value 112 — correct. (b) Sample dated 18:00 (96, a few minutes before the first unit), live value 113, forced rollover: initial value **96** — wrong again; the live item value stayed 113. So a dropped sample dated shortly before the first unit (same day) becomes the next unit's initial value; a much older one did not. Also found: a forced rollover within 2 minutes of the previous one is refused (`DSI-E-ROLLDONE`). Documented as a caution; behaviour confirmed, ready to close. Closed 2026-10-01 (confirmed by user). | `.claude/skills/system-management/tasks/load-history.md`; `knowledge/manuals/IM36K10C40-01EN.md` §3 |
| ISS-039 | 2026-10-01 | HISTORY (setup) | Installed vs manuals: `hisdbg` menu runs to option 22 (manual text: `-1 - 10`, list to 22) and lists history types 4 (`STATION_STAT`) and 36 (`SYS_LOG`) not in IM 36K10L20 §3.1; `ithsag.sup` keyword `run_interval` (manual: *Heartbeat*) and `queue_size` 500 KB (manual default 200); the option-type table in IM 36K10L20 §3.1 is garbled in the PDF (observed: Scan/Time `1 1`, Event/Item `2 2`, Aggregation `4 4`). | closed | Installed software is the reference (standing user decision). Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `knowledge/manuals/IM36K10L20-01EN.md` §3; `knowledge/manuals/IM36K10C40-01EN.md` §2 | | ISS-039 | 2026-10-01 | HISTORY (setup) | Installed vs manuals: `hisdbg` menu runs to option 22 (manual text: `-1 - 10`, list to 22) and lists history types 4 (`STATION_STAT`) and 36 (`SYS_LOG`) not in IM 36K10L20 §3.1; `ithsag.sup` keyword `run_interval` (manual: *Heartbeat*) and `queue_size` 500 KB (manual default 200); the option-type table in IM 36K10L20 §3.1 is garbled in the PDF (observed: Scan/Time `1 1`, Event/Item `2 2`, Aggregation `4 4`). | closed | Installed software is the reference (standing user decision). Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `knowledge/manuals/IM36K10L20-01EN.md` §3; `knowledge/manuals/IM36K10C40-01EN.md` §2 |
| ISS-040 | 2026-10-01 | HISTORY (aggregation) | Aggregation group `CIENG_AGG` (30 min + hour, `TANK1.LEVEL` max/min/avg) ran (`ithsag.log`: *Aggregation Completed*) but stored no values: retrieval gave `0x09 = ITM error` per period. `TANK1.LEVEL` was in `CIENG_EVENT` and `CIENG_SCAN10S`, both priority 0. Also `INTERPOLATION = "30 minutes"` is refused by `dssqld`; the installed name is `30Minutes`. | closed | Closed 2026-10-01 (confirmed by user). 2026-10-01 14:02: after `CIENG_SCAN10S` got `PRIORITY` 10, the 13:30–14:00 period stored max 77, min 33, avg 52.7, quality 1000 (`ithdbg` 20 and `dssqld` with `INTERPOLATION = "30Minutes"`). Cause: equal source priorities (C40 §2.1 says the highest-priority group is the source, but not that a tie gives nothing). Sample fixed (priority 10). The hourly value for 13:00–14:00 was not stored (first half had no source); not rechecked. Proposed close. | `.claude/skills/history-management/tasks/storage-groups.md` §4 (done); `knowledge/manuals/IM36K10C40-01EN.md` §3 (done); `examples/CI-Eng-Sample/03_his_group_df.qli`, `README.md` (done) | | ISS-040 | 2026-10-01 | HISTORY (aggregation) | Aggregation group `CIENG_AGG` (30 min + hour, `TANK1.LEVEL` max/min/avg) ran (`ithsag.log`: *Aggregation Completed*) but stored no values: retrieval gave `0x09 = ITM error` per period. `TANK1.LEVEL` was in `CIENG_EVENT` and `CIENG_SCAN10S`, both priority 0. Also `INTERPOLATION = "30 minutes"` is refused by `dssqld`; the installed name is `30Minutes`. | closed | Closed 2026-10-01 (confirmed by user). 2026-10-01 14:02: after `CIENG_SCAN10S` got `PRIORITY` 10, the 13:30–14:00 period stored max 77, min 33, avg 52.7, quality 1000 (`ithdbg` 20 and `dssqld` with `INTERPOLATION = "30Minutes"`). Cause: equal source priorities (C40 §2.1 says the highest-priority group is the source, but not that a tie gives nothing). Sample fixed (priority 10). The hourly value for 13:00–14:00 was not stored (first half had no source); not rechecked. Proposed close. | `.claude/skills/history-management/tasks/storage-groups.md` §4 (done); `knowledge/manuals/IM36K10C40-01EN.md` §3 (done); `examples/CI-Eng-Sample/03_his_group_df.qli`, `README.md` (done) |
| ISS-041 | 2026-10-01 | GRAPHICS (HTML trend) | In the HTML display (`localhost:8080/mobileoperator/?d=CIENG_Tank`) the trend shows the pen legend `CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]` and time axis but draws no line, although `ITEM_HISTORY` has 420 samples in the shown hour. Browser console: `Mismatch between number of labels (Time,CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]) and number of columns in array (51)`. The trend has 4 further empty pens. 2026-10-01 later: the trend also had the property `chart.attribute[00]` connected to `TANK1.LEVEL` (added by mistake with the pen); the Operator Interface (desktop) showed *Short attribute name ( 61.0) is invalid*. After removing it the desktop trend draws the line, but the HTML trend still logs the mismatch error. | closed | Tried 2026-10-01 (fresh session after a restart, 283 history samples in the hour): removing the 4 empty pens, and `updating` true / `updateInterval` 10 like the factory `AOG_TrendOpen` — the mismatch error and the empty trend stayed in both cases (changes reverted). Still to try: a Micro Trend, the HTML-supported trend properties (IM 36K10R30 §4.8.7), clearing the browser/`MO_CACHE_DISPLAYS` cache (the console shows `CIENG_Tank.xml` *loaded (from cache)*), and adding the pen to the factory *Open Trend* display in the HTML client. **Cause found 2026-10-02** (trend lab `CIENG_TrendLab`): a web-client defect, not a display setting. `DataSource.refresh()` in the web trend code (`mobileoperator\src\…\charts\trend\datasources\DataSource.js`, same in the served `src\lib\fasttools.min.js`) numbers **all 50** internal pen slots (`PEN_COUNT_LIMIT`; the filter for empty/hidden pens is commented out), so each data row has 51 columns, while the dygraph labels only list visible pens with an item. Proof: a 50-pen test display drew normally in the browser. Ruled out on the way: the `?historygroup` suffix, empty pens, `optimised`. **Workaround** (verified on the web): pad each trend to 50 visible pens with `displays/add_trend_spares.ps1` (spares scaled out of view, blank unique legend texts); sample `CIENG_TrendLab` uses it. Alternatively a Micro Trend (ISS-055). Report to Yokogawa. Close when the user confirms. Closed 2026-10-02 (confirmed by user). | `.claude/skills/graphics/tasks/trend.md` (done); `create-display.md`, `deploy-displays.md` (done); `knowledge/manuals/IM36K10R30-01EN.md` §4 (done) | | ISS-041 | 2026-10-01 | GRAPHICS (HTML trend) | In the HTML display (`localhost:8080/mobileoperator/?d=CIENG_Tank`) the trend shows the pen legend `CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]` and time axis but draws no line, although `ITEM_HISTORY` has 420 samples in the shown hour. Browser console: `Mismatch between number of labels (Time,CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]) and number of columns in array (51)`. The trend has 4 further empty pens. 2026-10-01 later: the trend also had the property `chart.attribute[00]` connected to `TANK1.LEVEL` (added by mistake with the pen); the Operator Interface (desktop) showed *Short attribute name ( 61.0) is invalid*. After removing it the desktop trend draws the line, but the HTML trend still logs the mismatch error. | closed | R1.05 (2026-10-09): fixed on the web client, see ISS-096. Tried 2026-10-01 (fresh session after a restart, 283 history samples in the hour): removing the 4 empty pens, and `updating` true / `updateInterval` 10 like the factory `AOG_TrendOpen` — the mismatch error and the empty trend stayed in both cases (changes reverted). Still to try: a Micro Trend, the HTML-supported trend properties (IM 36K10R30 §4.8.7), clearing the browser/`MO_CACHE_DISPLAYS` cache (the console shows `CIENG_Tank.xml` *loaded (from cache)*), and adding the pen to the factory *Open Trend* display in the HTML client. **Cause found 2026-10-02** (trend lab `CIENG_TrendLab`): a web-client defect, not a display setting. `DataSource.refresh()` in the web trend code (`mobileoperator\src\…\charts\trend\datasources\DataSource.js`, same in the served `src\lib\fasttools.min.js`) numbers **all 50** internal pen slots (`PEN_COUNT_LIMIT`; the filter for empty/hidden pens is commented out), so each data row has 51 columns, while the dygraph labels only list visible pens with an item. Proof: a 50-pen test display drew normally in the browser. Ruled out on the way: the `?historygroup` suffix, empty pens, `optimised`. **Workaround** (verified on the web): pad each trend to 50 visible pens with `displays/add_trend_spares.ps1` (spares scaled out of view, blank unique legend texts); sample `CIENG_TrendLab` uses it. Alternatively a Micro Trend (ISS-055). Report to Yokogawa. Close when the user confirms. Closed 2026-10-02 (confirmed by user). | `.claude/skills/graphics/tasks/trend.md` (done); `create-display.md`, `deploy-displays.md` (done); `knowledge/manuals/IM36K10R30-01EN.md` §4 (done) |
| ISS-042 | 2026-10-01 | GRAPHICS (layouts) | Installed vs `Layouts.readme`: the factory layouts use status line item types `displayName`, `playbackIndicator` and `dateTime` and the commands `reload <frame>` / `reload all`, none of which the readme lists (readme: `statusText`, `userName`, `progresBar`, `graphicsQueueLevel`, `connectionState`); the readme also writes `zooom` for the zoom command (factory files use `zoom`). | closed | Installed software is the reference (standing user decision). Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `.claude/skills/graphics/tasks/layouts.md` §2 | | ISS-042 | 2026-10-01 | GRAPHICS (layouts) | Installed vs `Layouts.readme`: the factory layouts use status line item types `displayName`, `playbackIndicator` and `dateTime` and the commands `reload <frame>` / `reload all`, none of which the readme lists (readme: `statusText`, `userName`, `progresBar`, `graphicsQueueLevel`, `connectionState`); the readme also writes `zooom` for the zoom command (factory files use `zoom`). | closed | Installed software is the reference (standing user decision). Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `.claude/skills/graphics/tasks/layouts.md` §2 |
| ISS-043 | 2026-10-01 | REPORT (system reports) | IM 36K10C30 App. 1.3 names two system reports `ALM_ATTS_CUR` and `ALM_ATRS_HIS`; the installed reports are `ALM_ATTRS_CUR` and `ALM_ATTRS_HIS`. The other 26 names match. | closed | Installed software is the reference (standing user decision). Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `knowledge/manuals/IM36K10C30-01EN.md` §8 (done) | | ISS-043 | 2026-10-01 | REPORT (system reports) | IM 36K10C30 App. 1.3 names two system reports `ALM_ATTS_CUR` and `ALM_ATRS_HIS`; the installed reports are `ALM_ATTRS_CUR` and `ALM_ATTRS_HIS`. The other 26 names match. | closed | Installed software is the reference (standing user decision). Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `knowledge/manuals/IM36K10C30-01EN.md` §8 (done) |
| ISS-044 | 2026-10-01 | REPORT (scheduling) | Behaviour not in the manuals, found by quick load: a generation interval below 10 minutes is refused (`HIS-E-ROLLTOFAST`, the interval is the rollover of the report's storage group); a scheduled report cannot be deleted (`RPT-E-ACTIVE`) until `ACTIVATION_TIME` and `GENERATION_INTERVAL` are cleared; `CORRECT_DAYLIGHT` 0 counts intervals in UTC (06:00 set for January ran at 05:00 in October); a past activation time moves to the next slot - once (modify, past time within the lifetime) a single report labelled with the old time was generated, at insert with an older time none. | closed | Documented as verified behaviour; the one-off generation for a past activation time is not fully understood. Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `.claude/skills/reporting/tasks/define-reports.md` §1, §5, §6; `knowledge/manuals/IM36K10C30-01EN.md` §2; `examples/CI-Eng-Sample/83a_stop_report_df.qli`, `18_report_df.qli` | | ISS-044 | 2026-10-01 | REPORT (scheduling) | Behaviour not in the manuals, found by quick load: a generation interval below 10 minutes is refused (`HIS-E-ROLLTOFAST`, the interval is the rollover of the report's storage group); a scheduled report cannot be deleted (`RPT-E-ACTIVE`) until `ACTIVATION_TIME` and `GENERATION_INTERVAL` are cleared; `CORRECT_DAYLIGHT` 0 counts intervals in UTC (06:00 set for January ran at 05:00 in October); a past activation time moves to the next slot - once (modify, past time within the lifetime) a single report labelled with the old time was generated, at insert with an older time none. | closed | Documented as verified behaviour; the one-off generation for a past activation time is not fully understood. Close when the user confirms. Closed 2026-10-01 (confirmed by user). | `.claude/skills/reporting/tasks/define-reports.md` §1, §5, §6; `knowledge/manuals/IM36K10C30-01EN.md` §2; `examples/CI-Eng-Sample/83a_stop_report_df.qli`, `18_report_df.qli` |
@ -111,22 +111,22 @@ development system (see "Test system" in `progress.md`); they do not exist on ot
| ISS-089 | 2026-10-08 | INSTALLATION (local groups, R1.05) | On the R1.05 test server (no dual-redundant platform, no IT Security Tool) the local group `RDC_GA_CLIENT` exists with member `CIX_PROCESS`. The Security Guide mentions this group only for the dual-redundant platform (IM 36K01C30 5th ed. §4.9). | closed | Information only: apparently created by the installer; no action. Close when the user confirms. | `knowledge/manuals/IM36K01C30-01EN.md` | | ISS-089 | 2026-10-08 | INSTALLATION (local groups, R1.05) | On the R1.05 test server (no dual-redundant platform, no IT Security Tool) the local group `RDC_GA_CLIENT` exists with member `CIX_PROCESS`. The Security Guide mentions this group only for the dual-redundant platform (IM 36K01C30 5th ed. §4.9). | closed | Information only: apparently created by the installer; no action. Close when the user confirms. | `knowledge/manuals/IM36K01C30-01EN.md` |
| ISS-090 | 2026-10-08 | DOCS (CI Server + PRM) | IM 36K01C10 5th ed. §4.1.1 requires PRM R4.06 or later in a note but R4.08 or later in Table 4.1.1-1 (integration code 1901-0302-03-01). | open | Use R4.08 until clarified (from docs; no PRM available). | `knowledge/manuals/IM36K01C10-01EN.md` | | ISS-090 | 2026-10-08 | DOCS (CI Server + PRM) | IM 36K01C10 5th ed. §4.1.1 requires PRM R4.06 or later in a note but R4.08 or later in Table 4.1.1-1 (integration code 1901-0302-03-01). | open | Use R4.08 until clarified (from docs; no PRM available). | `knowledge/manuals/IM36K01C10-01EN.md` |
| ISS-091 | 2026-10-08 | DSS (temporary files) | Each `dssqld` run (exports and quick loads) left a 0-byte `dss_<n>_<id>.tmp` in `%TLS_LST_PATH%`, and loading a class left a `dss_*.tmp` holding the class source (R1.05 test server: 34 files after one session of checks and a sample load/remove). They are not removed by CI Server. | closed | Corrected by ISS-119: not every dssqld run leaves such a file. Test cleanup deletes them: `examples/CI-Eng-Sample/shared/clean_dss_tmp.ps1 -Since <test start>` (0-byte files and files with sample text only). Not checked on R1.03. Close when the user confirms. | `examples/CI-Eng-Sample/README.md` (done); `knowledge/r105-verification.md` (done) | | ISS-091 | 2026-10-08 | DSS (temporary files) | Each `dssqld` run (exports and quick loads) left a 0-byte `dss_<n>_<id>.tmp` in `%TLS_LST_PATH%`, and loading a class left a `dss_*.tmp` holding the class source (R1.05 test server: 34 files after one session of checks and a sample load/remove). They are not removed by CI Server. | closed | Corrected by ISS-119: not every dssqld run leaves such a file. Test cleanup deletes them: `examples/CI-Eng-Sample/shared/clean_dss_tmp.ps1 -Since <test start>` (0-byte files and files with sample text only). Not checked on R1.03. Close when the user confirms. | `examples/CI-Eng-Sample/README.md` (done); `knowledge/r105-verification.md` (done) |
| ISS-092 | 2026-10-08 | GRAPHICS (installed files R1.05) | Read-only comparison of the R1.05 graphics files with R1.03 not done (remote commands refused): `Layouts.readme`, factory layouts, DEPLOY structure, `jwuiutl.cmd` and help, `connectrdp.cmd`, mobileoperator files, AOG/symbol lists. | open | Awaiting user verification (`knowledge/r105-verification.md` V5). | `.claude/skills/graphics/tasks/layouts.md`, `deploy-displays.md`; `knowledge/manuals/IM36K10R30-01EN.md` | | ISS-092 | 2026-10-08 | GRAPHICS (installed files R1.05) | Read-only comparison of the R1.05 graphics files with R1.03 not done (remote commands refused): `Layouts.readme`, factory layouts, DEPLOY structure, `jwuiutl.cmd` and help, `connectrdp.cmd`, mobileoperator files, AOG/symbol lists. | closed | 2026-10-09 (V5): done - Layouts.readme and components identical; jwuiutl/jwuiged load the JCEF browser component from tls\exe\lib\jcef; connectrdp.cmd present; no factory Layouts-original.xml. Awaiting user verification (`knowledge/r105-verification.md` V5). | `.claude/skills/graphics/tasks/layouts.md`, `deploy-displays.md`; `knowledge/manuals/IM36K10R30-01EN.md` |
| ISS-093 | 2026-10-08 | GRAPHICS (HTML display enterprise / restrictions) | IM 36K10R30 4th ed. marks enterprise operation as supported on the HTML display (§4.4, §4.7.15 removed, §4.8) and changes §4.10: no more "no automatic reconnect" and "no HTML export from CI View"; new "HIS-TSE not supported on the web". Not in the revision table in that detail. | open | Not tested (no enterprise setup; shared server). | `knowledge/manuals/IM36K10R30-01EN.md` (done); `.claude/skills/graphics/tasks/deploy-displays.md` (done) | | ISS-093 | 2026-10-08 | GRAPHICS (HTML display enterprise / restrictions) | IM 36K10R30 4th ed. marks enterprise operation as supported on the HTML display (§4.4, §4.7.15 removed, §4.8) and changes §4.10: no more "no automatic reconnect" and "no HTML export from CI View"; new "HIS-TSE not supported on the web". Not in the revision table in that detail. | open | Not tested (no enterprise setup; shared server). | `knowledge/manuals/IM36K10R30-01EN.md` (done); `.claude/skills/graphics/tasks/deploy-displays.md` (done) |
| ISS-094 | 2026-10-08 | GRAPHICS (`jwuiutl`) | IM 36K10C50 5th ed. §1.5 describes `jwuiutl -m/-M` output as space-separated; on R1.03 it was comma-separated. On R1.03 an export without `-o` wrote into `mobileoperator\operatorInterfaces\<deployment>`, not the current directory as the help says. R1.05 behaviour not checked. | open | `jwuiutl --help` is read-only (V5); a search run only on a non-shared system. | `knowledge/manuals/IM36K10C50-01EN.md` (done); `.claude/skills/graphics/tasks/deploy-displays.md` (done) | | ISS-094 | 2026-10-08 | GRAPHICS (`jwuiutl`) | IM 36K10C50 5th ed. §1.5 describes `jwuiutl -m/-M` output as space-separated; on R1.03 it was comma-separated. On R1.03 an export without `-o` wrote into `mobileoperator\operatorInterfaces\<deployment>`, not the current directory as the help says. R1.05 behaviour not checked. | open | 2026-10-09 (V5): jwuiutl --help identical to R1.03; -m output format still unchecked. `jwuiutl --help` is read-only (V5); a search run only on a non-shared system. | `knowledge/manuals/IM36K10C50-01EN.md` (done); `.claude/skills/graphics/tasks/deploy-displays.md` (done) |
| ISS-095 | 2026-10-08 | GRAPHICS (HTML display login, corrects ISS-074) | IM 36K10R30 §4.4 Table 4.4-1 marks the profile *Layout* as supported on the HTML display in both R1.03 and R1.05; a table-aware extraction shows it clearly. ISS-074's "layout not" came from a garbled text extraction: manual and software agree. | closed | ISS-074 closed by this. Close when the user confirms. | `knowledge/manuals/IM36K10R30-01EN.md` (done); `.claude/skills/graphics/tasks/layouts.md` (done) | | ISS-095 | 2026-10-08 | GRAPHICS (HTML display login, corrects ISS-074) | IM 36K10R30 §4.4 Table 4.4-1 marks the profile *Layout* as supported on the HTML display in both R1.03 and R1.05; a table-aware extraction shows it clearly. ISS-074's "layout not" came from a garbled text extraction: manual and software agree. | closed | ISS-074 closed by this. Close when the user confirms. | `knowledge/manuals/IM36K10R30-01EN.md` (done); `.claude/skills/graphics/tasks/layouts.md` (done) |
| ISS-096 | 2026-10-08 | GRAPHICS (web trend 50 pens, R1.05) | Not known whether the R1.05 web client still draws a trend only with 50 visible pens (ISS-041). | open | Check `PEN_COUNT_LIMIT` in the R1.05 mobileoperator chart code (V5) or test on a non-shared system. Workaround kept. | `.claude/skills/graphics/tasks/trend.md` (done) | | ISS-096 | 2026-10-08 | GRAPHICS (web trend 50 pens, R1.05) | Not known whether the R1.05 web client still draws a trend only with 50 visible pens (ISS-041). | closed | 2026-10-09: verified on the web with a temporary 2-pen trend display: both pens draw (history and live). Desktop not checked. 2026-10-09 (V5): PEN_COUNT_LIMIT still 50, but DataSource.js re-enables the empty/invisible-pen checks commented out in R1.03 (change e12620) - probably fixed; test on a non-shared system. Check `PEN_COUNT_LIMIT` in the R1.05 mobileoperator chart code (V5) or test on a non-shared system. Workaround kept. | `.claude/skills/graphics/tasks/trend.md` (done) |
| ISS-097 | 2026-10-08 | GRAPHICS (AOG demo displays) | IM 36K10C60 R1.04 §1.2.2 names `AOG_UAC_Method_Demo`, `AOG_UAC_MethodArg_Call2`, `AOG_OPCUA_Methods`; the R1.03 machine has `AOG_UAC_Method_Demo`, `AOG_UAC_MethodArg_Call`, `AOG_UAC_Method_Call`. R1.05 names not listed yet (the data-access re-check saw `AOG_UAC_Method_Demo`, `…_Call`, `…_MethodArg_Call(2)`). | open | Part of V5. | `knowledge/manuals/IM36K10C60-01EN.md` (done) | | ISS-097 | 2026-10-08 | GRAPHICS (AOG demo displays) | IM 36K10C60 R1.04 §1.2.2 names `AOG_UAC_Method_Demo`, `AOG_UAC_MethodArg_Call2`, `AOG_OPCUA_Methods`; the R1.03 machine has `AOG_UAC_Method_Demo`, `AOG_UAC_MethodArg_Call`, `AOG_UAC_Method_Call`. R1.05 names not listed yet (the data-access re-check saw `AOG_UAC_Method_Demo`, `…_Call`, `…_MethodArg_Call(2)`). | closed | 2026-10-09 (V5): R1.05 adds AOG_UAC_MethodArg_Call2; AOG_OPCUA_Methods (named in C60 §1.2.2) is not installed. Installed software is the reference. Part of V5. | `knowledge/manuals/IM36K10C60-01EN.md` (done) |
| ISS-098 | 2026-10-08 | GRAPHICS (Generic Functions) | IM 36K10C50: *Calculation/Function* renamed *Generic Functions*; new operations Password Check (R1.04; needs login method *Manual CI Server* / *Manual OS* for the Password Check function in `dssana.sup`) and RDP Connect (R1.05, `tls\com\connectrdp.cmd`). | open | 2026-10-09: authorization part done (ISS-148: login lines and allowed methods documented in `login-methods.md`). Not tested (Edit Module and an RDP target needed). Cross-reference in skill `authorization` to be added in its re-check. | `.claude/skills/graphics/tasks/create-display.md` (done); `knowledge/manuals/IM36K10C50-01EN.md` (done); `.claude/skills/authorization` (open) | | ISS-098 | 2026-10-08 | GRAPHICS (Generic Functions) | IM 36K10C50: *Calculation/Function* renamed *Generic Functions*; new operations Password Check (R1.04; needs login method *Manual CI Server* / *Manual OS* for the Password Check function in `dssana.sup`) and RDP Connect (R1.05, `tls\com\connectrdp.cmd`). | open | 2026-10-09: authorization part done (ISS-148: login lines and allowed methods documented in `login-methods.md`). Not tested (Edit Module and an RDP target needed). Cross-reference in skill `authorization` to be added in its re-check. | `.claude/skills/graphics/tasks/create-display.md` (done); `knowledge/manuals/IM36K10C50-01EN.md` (done); `.claude/skills/authorization` (open) |
| ISS-099 | 2026-10-08 | GRAPHICS / AUDIT (custom alarm acknowledgement) | IM 36K10C50 R1.04/R1.05 §2.22, §4.12: custom and external acknowledgement properties; reason and approver are written to `AUDIT_TRAIL` fields `APPROVAL_REASON` / `APPROVER`. | open | 2026-10-09: audit part done (ISS-140), alarm task §4.1 added; behaviour still not tested. Not tested. Skill `audit-trail` to mention the fields in its re-check. | `.claude/skills/graphics/tasks/create-display.md` (done); `.claude/skills/audit-trail` (open) | | ISS-099 | 2026-10-08 | GRAPHICS / AUDIT (custom alarm acknowledgement) | IM 36K10C50 R1.04/R1.05 §2.22, §4.12: custom and external acknowledgement properties; reason and approver are written to `AUDIT_TRAIL` fields `APPROVAL_REASON` / `APPROVER`. | open | 2026-10-09: audit part done (ISS-140), alarm task §4.1 added; behaviour still not tested. Not tested. Skill `audit-trail` to mention the fields in its re-check. | `.claude/skills/graphics/tasks/create-display.md` (done); `.claude/skills/audit-trail` (open) |
| ISS-100 | 2026-10-08 | HISTORY (start scripts) | On the R1.05 test server `history_start.cmd`, `history_stop.cmd`, `item_start.cmd`, `item_stop.cmd` differ from R1.03 (hash comparison). Content not read (remote read refused for this check); probably the extension-script hooks of ISS-121. The L20/L35 summaries still describe the R1.03 start lists. | open | Awaiting user verification (V6). | `knowledge/manuals/IM36K10L20-01EN.md` §1, `IM36K10L35-01EN.md` §1; `.claude/skills/history-management/SKILL.md` | | ISS-100 | 2026-10-08 | HISTORY (start scripts) | On the R1.05 test server `history_start.cmd`, `history_stop.cmd`, `item_start.cmd`, `item_stop.cmd` differ from R1.03 (hash comparison). Content not read (remote read refused for this check); probably the extension-script hooks of ISS-121. The L20/L35 summaries still describe the R1.03 start lists. | closed | 2026-10-09 (V6): the four scripts differ only by the extension-script hooks (ISS-121). Awaiting user verification (V6). | `knowledge/manuals/IM36K10L20-01EN.md` §1, `IM36K10L35-01EN.md` §1; `.claude/skills/history-management/SKILL.md` |
| ISS-101 | 2026-10-08 | HISTORY (`hisdbg`) | `hisdbg` read-only options (1, 20, 6) not run on the R1.05 test server (remote commands refused). | open | Awaiting user verification (V6). | `.claude/skills/history-management/tasks/history-checks.md` | | ISS-101 | 2026-10-08 | HISTORY (`hisdbg`) | `hisdbg` read-only options (1, 20, 6) not run on the R1.05 test server (remote commands refused). | closed | 2026-10-09 (V6): hisdbg 1/20/6 work as on R1.03. Awaiting user verification (V6). | `.claude/skills/history-management/tasks/history-checks.md` |
| ISS-102 | 2026-10-08 | HISTORY (dataset definitions) | `his_group_df`, `item_his_df`, `item_his2_df`, `item_history`, `his_units` definitions are identical in R1.03 and R1.05; only the DSS interface source `dsid_ihis_df.c` changed. No effect on quick-load fields expected. | closed | Information. | `.claude/skills/history-management/SKILL.md` (done) | | ISS-102 | 2026-10-08 | HISTORY (dataset definitions) | `his_group_df`, `item_his_df`, `item_his2_df`, `item_history`, `his_units` definitions are identical in R1.03 and R1.05; only the DSS interface source `dsid_ihis_df.c` changed. No effect on quick-load fields expected. | closed | Information. | `.claude/skills/history-management/SKILL.md` (done) |
| ISS-103 | 2026-10-08 | HISTORY (storage groups on R1.05) | Storage groups (Event/Item, Scan/Time, Aggregation), `ITEM_HISTORY` reads and aggregation not re-tested on R1.05: a new group needs a CI Server restart (ISS-006), not allowed on the shared server. History setup files are identical apart from licence/instance lines. | open | Not tested; needs a server where a restart is allowed. | `.claude/skills/history-management/tasks/storage-groups.md` (done) | | ISS-103 | 2026-10-08 | HISTORY (storage groups on R1.05) | Storage groups (Event/Item, Scan/Time, Aggregation), `ITEM_HISTORY` reads and aggregation not re-tested on R1.05: a new group needs a CI Server restart (ISS-006), not allowed on the shared server. History setup files are identical apart from licence/instance lines. | open | Not tested; needs a server where a restart is allowed. | `.claude/skills/history-management/tasks/storage-groups.md` (done) |
| ISS-108 | 2026-10-08 | PORTAL (installation media) | IM 36K10R10 4th ed. §3.1 (R1.04): CI Portal setup runs from the mounted CI Server ISO file instead of the DVD; not in the revision table. §3.3 only gained a reference to IM 36K10L30 ch. 3. | closed | Documented. Close when the user confirms. | `knowledge/manuals/IM36K10R10-01EN.md` (done) | | ISS-108 | 2026-10-08 | PORTAL (installation media) | IM 36K10R10 4th ed. §3.1 (R1.04): CI Portal setup runs from the mounted CI Server ISO file instead of the DVD; not in the revision table. §3.3 only gained a reference to IM 36K10L30 ch. 3. | closed | Documented. Close when the user confirms. | `knowledge/manuals/IM36K10R10-01EN.md` (done) |
| ISS-109 | 2026-10-08 | PORTAL / BUS (`dur.sup`) | R1.05 `dur.sup` has a new switch `gateway_core` (General tab, installed No) and a new adaptive queue set `ADTSTO, 1.00`. IM 36K10R10 does not mention them; see ISS-116 for the gateway configuration. | closed | Installed software is the reference. Close when the user confirms. | `knowledge/manuals/IM36K10R10-01EN.md`, `.claude/skills/portal-setup/SKILL.md` (done) | | ISS-109 | 2026-10-08 | PORTAL / BUS (`dur.sup`) | R1.05 `dur.sup` has a new switch `gateway_core` (General tab, installed No) and a new adaptive queue set `ADTSTO, 1.00`. IM 36K10R10 does not mention them; see ISS-116 for the gateway configuration. | closed | Installed software is the reference. Close when the user confirms. | `knowledge/manuals/IM36K10R10-01EN.md`, `.claude/skills/portal-setup/SKILL.md` (done) |
| ISS-110 | 2026-10-08 | PORTAL (`jwuiisg.sup` keywords) | R1.05 `jwuiisg.sup` has keywords IM 36K10R10 §4.3 does not describe: `SERVER_FILE_CACHE`, `HTTP_TO_HTTPS_REDIRECT`, `RECONNECT_TIMEOUT_OVERRIDE`, and a new tab *Access Control* (`RESTRICT_IP_ACCESS`, `HOSTNAME_WHITELISTING`). | closed | Installed software is the reference; documented from the file's own help. Close when the user confirms. | `knowledge/manuals/IM36K10R10-01EN.md`, `.claude/skills/portal-setup/tasks/check-web-access.md` (done) | | ISS-110 | 2026-10-08 | PORTAL (`jwuiisg.sup` keywords) | R1.05 `jwuiisg.sup` has keywords IM 36K10R10 §4.3 does not describe: `SERVER_FILE_CACHE`, `HTTP_TO_HTTPS_REDIRECT`, `RECONNECT_TIMEOUT_OVERRIDE`, and a new tab *Access Control* (`RESTRICT_IP_ACCESS`, `HOSTNAME_WHITELISTING`). | closed | Installed software is the reference; documented from the file's own help. Close when the user confirms. | `knowledge/manuals/IM36K10R10-01EN.md`, `.claude/skills/portal-setup/tasks/check-web-access.md` (done) |
| ISS-111 | 2026-10-08 | PORTAL (web security headers, CSP) | R1.05 `jwuiisg.sup` installs 7 security response headers and 9 `CSP_ENTRY` lines (R1.03: only X-Frame-Options, no CSP); verified in the HTTP responses on 8080/8443. | open | Open question: does the CSP block external content in displays (web browser component, external images, map viewer)? Not tested. Upgraded systems may keep their old settings depending on the merge. | `knowledge/manuals/IM36K10R10-01EN.md`, `.claude/skills/portal-setup/tasks/check-web-access.md` (done); `.claude/skills/graphics` (open) | | ISS-111 | 2026-10-08 | PORTAL (web security headers, CSP) | R1.05 `jwuiisg.sup` installs 7 security response headers and 9 `CSP_ENTRY` lines (R1.03: only X-Frame-Options, no CSP); verified in the HTTP responses on 8080/8443. | closed | 2026-10-09: fix verified - CSP_ENTRY = frame-src, "'self'" plus one line per allowed host in jwuiisg.sup, then a CI Server restart (JWUIISG reads the file only at start); the external page then loaded in the display. Close when the user confirms. 2026-10-09: answered with a temporary display - the default R1.05 CSP (no frame-src, default-src self) blocks external pages in a web browser component on the web client; same-origin pages load. Possible fix (not tested): a CSP_ENTRY with frame-src for the allowed host. Open question: does the CSP block external content in displays (web browser component, external images, map viewer)? Not tested. Upgraded systems may keep their old settings depending on the merge. | `knowledge/manuals/IM36K10R10-01EN.md`, `.claude/skills/portal-setup/tasks/check-web-access.md` (done); `.claude/skills/graphics` (open) |
| ISS-112 | 2026-10-08 | SETUP FILE EDITOR (`jwuiisg.sup` metadata) | R1.05 `jwuiisg.sup` metadata quirks: two keyword blocks end with `!ENDKEYWORD!`; `SERVER_FILE_CACHE=0` without spaces in `!DEFAULT`; `RECONNECT_TIMEOUT_OVERRIDE` has no active or default line; `RESTRICT_IP_ACCESS` has no keyword for the allowed addresses. | open | Awaiting user verification in the Setup File Editor GUI (V7). | `knowledge/manuals/IM36K10R20-01EN.md`, `IM36K10R10-01EN.md` (done) | | ISS-112 | 2026-10-08 | SETUP FILE EDITOR (`jwuiisg.sup` metadata) | R1.05 `jwuiisg.sup` metadata quirks: two keyword blocks end with `!ENDKEYWORD!`; `SERVER_FILE_CACHE=0` without spaces in `!DEFAULT`; `RECONNECT_TIMEOUT_OVERRIDE` has no active or default line; `RESTRICT_IP_ACCESS` has no keyword for the allowed addresses. | open | Awaiting user verification in the Setup File Editor GUI (V7). | `knowledge/manuals/IM36K10R20-01EN.md`, `IM36K10R10-01EN.md` (done) |
| ISS-113 | 2026-10-08 | SETUP FILE EDITOR (R1.05 GUI) | R1.05 `fsuedit.cmd` only adds `tls\exe\lib\*` to the class path; metadata keywords and `!KIND`s unchanged. The R1.03 GUI findings (ISS-015/016) are not re-checked on R1.05. | open | Awaiting user verification (V7). | `knowledge/manuals/IM36K10R20-01EN.md`, `.claude/skills/portal-setup/tasks/change-setup-file.md` (done) | | ISS-113 | 2026-10-08 | SETUP FILE EDITOR (R1.05 GUI) | R1.05 `fsuedit.cmd` only adds `tls\exe\lib\*` to the class path; metadata keywords and `!KIND`s unchanged. The R1.03 GUI findings (ISS-015/016) are not re-checked on R1.05. | open | Awaiting user verification (V7). | `knowledge/manuals/IM36K10R20-01EN.md`, `.claude/skills/portal-setup/tasks/change-setup-file.md` (done) |
| ISS-116 | 2026-10-08 | BUS / SYSTEM DESIGN (gateway core) | IM 36K10J10 5th ed. has a new §3.2.6 *Gateway* configuration, not in the revision table: a gateway-licensed CI Core has no operator interface (nor do CI Portals / CI View connected to it); switched on with `GATEWAY_CORE` in `dur.sup`; a licence/switch mismatch is logged. IM 36K10L30 does not describe the keyword. | open | Not tested (no gateway licence; needs admin and a restart). | `knowledge/manuals/IM36K10J10-01EN.md`, `IM36K10L30-01EN.md`, `.claude/skills/system-management/tasks/bus-utilities.md` (done) | | ISS-116 | 2026-10-08 | BUS / SYSTEM DESIGN (gateway core) | IM 36K10J10 5th ed. has a new §3.2.6 *Gateway* configuration, not in the revision table: a gateway-licensed CI Core has no operator interface (nor do CI Portals / CI View connected to it); switched on with `GATEWAY_CORE` in `dur.sup`; a licence/switch mismatch is logged. IM 36K10L30 does not describe the keyword. | open | Not tested (no gateway licence; needs admin and a restart). | `knowledge/manuals/IM36K10J10-01EN.md`, `IM36K10L30-01EN.md`, `.claude/skills/system-management/tasks/bus-utilities.md` (done) |

View file

@ -60,3 +60,10 @@ Enterprise displays and AOG item/object symbols for enterprise engineering (item
several servers; locations chosen per symbol). several servers; locations chosen per symbol).
Not practiced: the sample display uses plain components; AOG symbols need the Edit Module GUI. Not practiced: the sample display uses plain components; AOG symbols need the Edit Module GUI.
## R1.05 installed AOG displays (V5, 2026-10-09)
The R1.05 test server has the same `AOG_*` displays as R1.03 plus `AOG_UAC_MethodArg_Call2`
(display and HTML export). `AOG_OPCUA_Methods`, named in the 5th Edition §1.2.2, is **not**
installed (ISS-097). OPC UA method demo displays installed: `AOG_UAC_Method_Demo`,
`AOG_UAC_Method_Call`, `AOG_UAC_MethodArg_Call`, `AOG_UAC_MethodArg_Call2`.

View file

@ -109,3 +109,8 @@ included in archiving); force rollover of `CIENG_EVENT` closed unit 3,1 and star
Not practiced: archiving and retrieve (no archive device; would write to disk and change the Not practiced: archiving and retrieve (no archive device; would write to disk and change the
archive administration), `hisrecover`, `hiswrn`, running `hisrep` by hand. archive administration), `hisrecover`, `hiswrn`, running `hisrep` by hand.
## R1.05 start scripts (V6, 2026-10-09)
The R1.05 `history_start.cmd` / `item_start.cmd` (and stop scripts) only add the extension-script
call `?*_<script>.cmd` (ISS-121); the processes started are the same as on R1.03 (ISS-100).

View file

@ -108,3 +108,8 @@ Time as `29-Apr-14 11:48:17.452`, `29-04-2014 11:48:18.452` or UTC seconds. Prac
6. Restore the setup values and restart. 6. Restore the setup values and restart.
This explains why samples older than the current unit were not stored in phase 1 This explains why samples older than the current unit were not stored in phase 1
(`knowledge/issues.md` ISS-006). From an older CI Server version use `ITHIMPORT` instead. (`knowledge/issues.md` ISS-006). From an older CI Server version use `ITHIMPORT` instead.
## R1.05 start scripts (V6, 2026-10-09)
The R1.05 `history_start.cmd` / `item_start.cmd` (and stop scripts) only add the extension-script
call `?*_<script>.cmd` (ISS-121); the processes started are the same as on R1.03 (ISS-100).

View file

@ -53,8 +53,8 @@ screenshot.
| `data-access` | L45, E20 (large: REST API, OPC UA methods, information model mapper, certificate expiry, extended functions off by default), L50 dataset rename | re-checked (read-only) | 2026-10-08: skill and summaries updated, L45 section numbers remapped. Setup files, datasets, ports and certificates checked; Sample qli files unchanged. New form fields confirmed in the installed form definitions (V3); OPC UA loopback re-tested on R1.05 with the reduced sample load (V4, 2026-10-08), certificate exchange done by the user. **Not tested:** OPC A&E direct alarms, PubSub, imported information model. ISS-080–085. | | `data-access` | L45, E20 (large: REST API, OPC UA methods, information model mapper, certificate expiry, extended functions off by default), L50 dataset rename | re-checked (read-only) | 2026-10-08: skill and summaries updated, L45 section numbers remapped. Setup files, datasets, ports and certificates checked; Sample qli files unchanged. New form fields confirmed in the installed form definitions (V3); OPC UA loopback re-tested on R1.05 with the reduced sample load (V4, 2026-10-08), certificate exchange done by the user. **Not tested:** OPC A&E direct alarms, PubSub, imported information model. ISS-080–085. |
| `equipment` | L41 (IEC 61850, item status, App. 1); IEC 104/61850 drivers moved to `eqt`/`eta` | re-checked (read-only) | 2026-10-08: Modbus datasets, setup files and tools identical to R1.03; EQT family, IEC 61850 report control blocks and upgrade steps added. Sample qli files unchanged. `eqpdbg` main info run on R1.05 (V1); Modbus loopback re-tested on R1.05 with the reduced sample load (V4, 2026-10-08). **Not tested:** IEC 104 / IEC 61850 and the EQT tools (no device). ISS-076–079. | | `equipment` | L41 (IEC 61850, item status, App. 1); IEC 104/61850 drivers moved to `eqt`/`eta` | re-checked (read-only) | 2026-10-08: Modbus datasets, setup files and tools identical to R1.03; EQT family, IEC 61850 report control blocks and upgrade steps added. Sample qli files unchanged. `eqpdbg` main info run on R1.05 (V1); Modbus loopback re-tested on R1.05 with the reduced sample load (V4, 2026-10-08). **Not tested:** IEC 104 / IEC 61850 and the EQT tools (no device). ISS-076–079. |
| `pytools` (new) | P40 new (R1.04; 2nd ed. layout only) | written (from docs) | 2026-10-09: SKILL.md + 5 tasks (setup and first script, items and history, filter/index, events, modify) and the P40 summary. Verified read-only on R1.05: `dss.pyd` 3.6.1, DSSSDAPY, `dss.sup` routing, *Python Interface* login lines. **Not tested:** every function (no Python on the R1.05 test server, ISS-178). **Awaiting user verification:** V17. ISS-174–181. | | `pytools` (new) | P40 new (R1.04; 2nd ed. layout only) | written (from docs) | 2026-10-09: SKILL.md + 5 tasks (setup and first script, items and history, filter/index, events, modify) and the P40 summary. Verified read-only on R1.05: `dss.pyd` 3.6.1, DSSSDAPY, `dss.sup` routing, *Python Interface* login lines. **Not tested:** every function (no Python on the R1.05 test server, ISS-178). **Awaiting user verification:** V17. ISS-174–181. |
| `graphics` | C50, C60, R30; unlisted: Generic Functions rename, enterprise on the HTML display, R30 §4.10 restrictions | re-checked (from docs) | 2026-10-08: full diff, skill and summaries moved to R1.05. No display or layout touched on the shared server. **Awaiting user verification:** installed-file comparison, `jwuiutl --help`, web trend pen limit (V5; ISS-092, 094, 096, 097). **Not tested:** enterprise HTML display, RDP Connect, Password Check, custom acknowledgement (ISS-093, 098, 099). | | `graphics` | C50, C60, R30; unlisted: Generic Functions rename, enterprise on the HTML display, R30 §4.10 restrictions | re-checked (from docs) | 2026-10-08: full diff, skill and summaries moved to R1.05. No display or layout touched on the shared server. Installed files, `jwuiutl --help`, AOG list and web trend code checked on R1.05 (V5, 2026-10-09); 50-pen problem probably fixed (ISS-096). **Not tested:** enterprise HTML display, RDP Connect, Password Check, custom acknowledgement (ISS-093, 098, 099). |
| `history-management` | C40 §4.2 (REST API, pyTOOLS; C API dropped); L20, L35 wording only | re-checked (from docs and file hashes) | 2026-10-08: history setup files and dataset definitions identical to R1.03; REST/pyTOOLS cross-linked to `data-access` / P40. **Awaiting user verification:** `hisdbg` read-only options and the changed start scripts (V6; ISS-100, 101). **Not tested:** storage groups, aggregation, `ITEM_HISTORY` reads (restart needed, ISS-103); archive. Note: `tlsdnetapi.dll` (.NET API) is no longer in `tls\exe` on R1.05. | | `history-management` | C40 §4.2 (REST API, pyTOOLS; C API dropped); L20, L35 wording only | re-checked (from docs and file hashes) | 2026-10-08: history setup files and dataset definitions identical to R1.03; REST/pyTOOLS cross-linked to `data-access` / P40. `hisdbg` 1/20/6 and the start scripts verified on R1.05 (V6, 2026-10-09). **Not tested:** storage groups, aggregation, `ITEM_HISTORY` reads (restart needed, ISS-103); archive. Note: `tlsdnetapi.dll` (.NET API) is no longer in `tls\exe` on R1.05. |
| `portal-setup` | R10 §3.1 ISO, §3.3; R20 punctuation only | re-checked (read-only) | 2026-10-08: setup-file reads, web ports 8080/8443, Remote Connect page, security headers and CSP verified on R1.05; new `jwuiisg.sup` keywords and `dur.sup` gateway core documented (ISS-108–111). **Awaiting user verification:** Setup File Editor GUI (V7; ISS-112, 113). **Not tested:** separate CI Portal node, gateway core, setup-file changes (shared server), CSP effect on displays. | | `portal-setup` | R10 §3.1 ISO, §3.3; R20 punctuation only | re-checked (read-only) | 2026-10-08: setup-file reads, web ports 8080/8443, Remote Connect page, security headers and CSP verified on R1.05; new `jwuiisg.sup` keywords and `dur.sup` gateway core documented (ISS-108–111). **Awaiting user verification:** Setup File Editor GUI (V7; ISS-112, 113). **Not tested:** separate CI Portal node, gateway core, setup-file changes (shared server), CSP effect on displays. |
| `system-management` | J10 §2.9.1, new §3.2.6 gateway (unlisted), §5.1; L30 wording; L50 dataset rename; P30 none | re-checked (read-only) | 2026-10-08: exports, filters, `-f`, `dsschk -e -v`, `durwfp`, `umhman`, `itmval -g`, `itmdbg`, DSS compiler check re-tested on R1.05; `dssqld -i/-r`, `itmval -p` from the sample test (V4). ISS-116–123. **Awaiting user verification:** `ithloahis` (needs the full sample with history), start-script hooks (V8; ISS-121). **Not tested:** monitoring processes, gateway core. | | `system-management` | J10 §2.9.1, new §3.2.6 gateway (unlisted), §5.1; L30 wording; L50 dataset rename; P30 none | re-checked (read-only) | 2026-10-08: exports, filters, `-f`, `dsschk -e -v`, `durwfp`, `umhman`, `itmval -g`, `itmdbg`, DSS compiler check re-tested on R1.05; `dssqld -i/-r`, `itmval -p` from the sample test (V4). ISS-116–123. **Awaiting user verification:** `ithloahis` (needs the full sample with history), start-script hooks (V8; ISS-121). **Not tested:** monitoring processes, gateway core. |
| `item-engineering` | C10 §2.2; unlisted: C10 §1.1 Tools menu, string length 200 bytes (C10, G10); G10 §9.2, ch. 14–15 | re-checked (read-only) | 2026-10-08: item/section/sub-item definitions and `itm.sup` identical to R1.03; `ITEM_VAL` has 3 new fields (ISS-126); sample items and sub-items loaded and worked on R1.05 (V4). Blocking and string writes re-tested on R1.05 (V9, 2026-10-09). **Not tested:** G10 ch. 14–15 (no CENTUM VP, ISS-127). | | `item-engineering` | C10 §2.2; unlisted: C10 §1.1 Tools menu, string length 200 bytes (C10, G10); G10 §9.2, ch. 14–15 | re-checked (read-only) | 2026-10-08: item/section/sub-item definitions and `itm.sup` identical to R1.03; `ITEM_VAL` has 3 new fields (ISS-126); sample items and sub-items loaded and worked on R1.05 (V4). Blocking and string writes re-tested on R1.05 (V9, 2026-10-09). **Not tested:** G10 ch. 14–15 (no CENTUM VP, ISS-127). |

View file

@ -89,7 +89,9 @@ form below, take a screenshot, and close it with *Cancel*:
If no OPC UA client line exists on the server, steps 3–4 need one: skip them and say so. If no OPC UA client line exists on the server, steps 3–4 need one: skip them and say so.
### V5. Graphics files (skill `graphics`; ISS-092, 094, 096, 097) ### V5. Graphics files (skill `graphics`; ISS-092, 094, 096, 097): **done 2026-10-09**
Run by Claude over ssh at the user's request (read-only, temp folder removed). Results in `graphics/tasks/deploy-displays.md`, `layouts.md`, `trend.md` and the C60 summary.
Read-only. Copy `C:\Users\Admin\AppData\Local\Temp\claude\C--Claude-ci-server-engineer\…\scratchpad\gfx\collect.ps1` Read-only. Copy `C:\Users\Admin\AppData\Local\Temp\claude\C--Claude-ci-server-engineer\…\scratchpad\gfx\collect.ps1`
(kept in Claude's scratchpad; it only lists names and copies factory files) to a temporary folder (kept in Claude's scratchpad; it only lists names and copies factory files) to a temporary folder
@ -99,7 +101,9 @@ mobileoperator file list), then delete the folder. Also search the mobileoperato
`PEN_COUNT_LIMIT`. Expected: `connectrdp.cmd` present, help as on R1.03, AOG list with `PEN_COUNT_LIMIT`. Expected: `connectrdp.cmd` present, help as on R1.03, AOG list with
`AOG_OPCUA_Methods` / `AOG_UAC_MethodArg_Call2`. `AOG_OPCUA_Methods` / `AOG_UAC_MethodArg_Call2`.
### V6. History checks (skill `history-management`; ISS-100, 101) ### V6. History checks (skill `history-management`; ISS-100, 101): **done 2026-10-09**
Run by Claude over ssh at the user's request (read-only). Results in `history-checks.md`.
`hisdbg`, Enter at the node prompt, then `1`, `20`, `6`, `-1` (no other number). Expected: menu −1…22, `hisdbg`, Enter at the node prompt, then `1`, `20`, `6`, `-1` (no other number). Expected: menu −1…22,
system groups of types 21, 6, 1058, 36, 4; clients such as ITH*, ALH, ADTSTO, LGHUMH, RPTMAN. system groups of types 21, 6, 1058, 36, 4; clients such as ITH*, ALH, ADTSTO, LGHUMH, RPTMAN.
@ -175,3 +179,16 @@ is removed again afterwards. Scripts: `examples/CI-Eng-Sample/shared/`.
server store) and the `pkiserver\rejected` folder created by the test were deleted with the server store) and the `pkiserver\rejected` folder created by the test were deleted with the
user's approval. `OPCUAC_PKI_CERTIFICATES_DF` went back from 3 to 1 record by itself: the user's approval. `OPCUAC_PKI_CERTIFICATES_DF` went back from 3 to 1 record by itself: the
dataset follows the certificate files. The server is back in its original state. dataset follows the certificate files. The server is back in its original state.
## HMI tests with temporary displays (2026-10-09)
With the user's approval: two temporary displays `CIENG_TEST_TREND` and `CIENG_TEST_WEB` were
copied into `DEPLOY\displays`, exported to HTML with `jwuiutl -e HTML`, viewed in the web client
(logged in as an existing password-less user, as the user said), and deleted again; both
display folders were compared before and after (identical). No existing display or
`Layouts.xml` was touched.
- Trend with 2 pens: draws on the web (ISS-096 closed; `graphics/tasks/trend.md`).
- Web browser component: external pages are blocked by the default CSP, same-origin pages load
(ISS-111; `portal-setup/tasks/check-web-access.md`). Fix verified the same day: the user added
two `frame-src` `CSP_ENTRY` lines to `jwuiisg.sup` and restarted CI Server; the external test
page then showed in the display (temporary display deployed again and removed).