TicketForge CATS and CMA Scraper sürüm geçmişi - 25 sürüm
TicketForge CATS and CMA Scraper geliştiren: RailwayMealCalculator
Eski sürümlere dikkat edin! Bu sürümler yalnızca test veya referans amacıyla sunulmaktadır.Her zaman eklentilerin son sürümlerini kullanmalısınız.
Son sürüm
Sürüm 2.2.0
15 May 2026 tarihinde çıktı - 181,9 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.2.0 — Local Chairman Mode scraping
When you're a verified Local Chairman with at least one TicketForge LC
team, the scrape widget now shows an LC Mode banner with a team selector
and a member PIN input. Filling both routes that scrape to your team's
shared data instead of your personal Ticket Browser. Before walking
PSTS551, the scraper now fills the EMPLOYEE NO field with the target
member's PIN, so the timeslip query returns that member's tickets via
your own MATN supervisor access.
Non-LC users are unaffected: scrapes continue to land in your personal
Ticket Browser as before.
PSTS17B (Crew Information) capture for the Article 18 REST field is
scaffolded but currently dormant pending verification of the PSTS17A
navigation path.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Eski sürümler
Sürüm 2.1.53
14 May 2026 tarihinde çıktı - 178,73 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırClarified the four scrape-task labels in the popup: "Add Tickets" is now "Add New Tickets" and "Overwrite Tickets" is now "Overwrite All Tickets" (same on the trips-only pair). Same modes, clearer wording. Easier to see at a glance which one is the safe additive run and which one will rewrite existing rows.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.52
3 May 2026 tarihinde çıktı - 178,73 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.52 — Settings shortcut.
The login / credentials settings page (PSTS Employee ID, PIN, VPN password) used to be reachable only through right-click on the toolbar icon, or through a gear button in CN's F-key bar. CPKC users had no obvious way to find it.
This version adds two shortcuts to that same settings page:
• A small ⚙ button in the panel header, between the Help button and the minimize button. Visible on both CN and CPKC.
• A "⚙ Settings (login info)" button in the toolbar popup, below "Reset Widget".
No change to what's stored or how it's stored, just easier to find.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.51
3 May 2026 tarihinde çıktı - 178,58 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.51 — Small bug fix on top of v2.1.50.
When a scrape finished, the "View ticket browser →" link in the end-of-scrape summary always opened the current calendar year instead of the year you actually scraped. Scrape 2023 and the link would land you on 2026. Now the link carries the scraped year through and opens the right page.
No other behavioral changes from v2.1.50.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.50
3 May 2026 tarihinde çıktı - 178,5 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.50 — Overwrite Tickets fix + Reset Year & Scrape
The "Overwrite Tickets" radio now actually overwrites hand-edited rows in the date range. Before, it behaved the same as "Add Tickets" because of a wire-vocabulary mismatch between the panel and the cascade.
New "Reset Year & Scrape" control, available in both CN and CPKC sections. Pick a year, type DELETE in the confirm dialog, and the extension deletes every trip for that year (regardless of source) and re-scrapes the year from the terminal. The dialog shows the live trip count and warns about retention limits (CPKC's CMA typically shows about 13 months back; CN's PSTS retention depends on your account).
Same behavior on CN and CPKC. CPKC cascade also drops the Level 5 cross-source defensive rule (cn_scraper_preserved) since production data showed zero cross-railway scraped overlap.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.49
2 May 2026 tarihinde çıktı - 176,36 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.49 — CPKC scraper improvements
What's new for CPKC users:
• New scrape mode selector mirroring the CN side: choose Add Tickets, Overwrite Tickets, Add Trips Only, or Overwrite Trips Only before pressing Start Scrape.
• Cleaner panel: the "Auto-capture on" toggle and the standalone Capture Now button are gone. Captures now happen only during an active Start Scrape session.
Privacy note:
• Screen captures used to flow continuously while a CPKC terminal tab was open. Starting in this version, captures are uploaded only while you have an active Start Scrape running. Nothing is captured before you press Start or after the scrape ends.
CN scraping is unchanged in this release.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.47
1 May 2026 tarihinde çıktı - 174,9 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.47 fixes a stuck "Extension updated -- please reload" warning that appeared on v2.1.45 and v2.1.46 and would not clear no matter how many times users reloaded the page or restarted the browser. Reload instructions are now browser-neutral (no more Chrome-only wording on Firefox).
Behind the scenes, the version number is now read once from the manifest instead of being typed by hand into a separate file -- the original cause of the stuck banner. This also fixes telemetry that was reporting older version numbers than users were actually running. No changes to permissions, no changes to data collection, no changes to functionality. Update is recommended.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.46
1 May 2026 tarihinde çıktı - 174,59 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırTightened hostname matching for the VPN login helper so saved credentials are only filled on CN's real VPN portals (sra.cn.ca and mfa.cn.ca). Recommended update.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.45
30 Nis 2026 tarihinde çıktı - 174,26 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.45 — production-readiness pass
Reliability:
• Stop flag now persists, so a stop request is honored even after the
background worker sleeps.
• Resume picks up the manifest, scraped-timeslip set, and trips-only flag
from the persisted checkpoint instead of starting clean.
• Frame-ID is re-discovered at the start of every Phase B iteration so a
stale frame after a tab reload no longer wedges the walk.
• Event buffer is persisted before the upload, then recovered on worker
restart so events buffered during a flaky network are not lost.
• Upload queue capped at 50 entries with FIFO eviction.
• Discovery drain retries each entry up to 3 times instead of breaking
on the first failure.
• Login: cross-tab sync, fresh-token retry on 403, no-races on the
fallback fetch and storage write.
• CMA session-loss detected on three consecutive empty reads or pattern
match, instead of retrying blindly.
• Sub-screen retry budget caps stuck F-keys at one retry then skips.
• Auto-login on CN escalates after two failures and bails after four,
to protect against CATS account lockout.
User-visible:
• Heartbeat warning + Force Stop button if no status arrives in 30 s.
• End-of-scrape summary lists created / refreshed / replaced / skipped /
recovered counts plus a ticket-browser link.
• CMA claim-code labels corrected (HA = Held Away Payment, LM = Lost
Miles, NN = Non-Chargeable Miles Claim, M8 = Chargeable Mile Top-Up,
EC = En-Route Conductor-Only Switching, plus new SH RA GN CC BE AV
CT NR).Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.42
29 Nis 2026 tarihinde çıktı - 159 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.42 -- CMA scraper resilience.
If a ticket fails on first try, the scraper now backs out to the timeslip list and tries the same row once more before giving up. If it still fails, the scraper walks past it and keeps going instead of bailing the whole scrape. A graduated recovery walks CMA back to a known screen on consecutive failures and only stops the scrape when nothing recovers.
The sub-screen pass now spots CMA's error overlay (PSTS00E) and stops firing F-keys at a wedged terminal. The red-F-key filter no longer falls back to "visit every sub-screen" when CMA tells us no sub-screens have data.
If a ticket upload fails (network blip, server hiccup), the row queues for retry every 5 rows and gets one more drain at the end of the scrape. Eight upload failures in a row stop the scrape with a clear reason.
Adaptive pacing: the scraper eases off when CMA gets flaky and tightens when things go smoothly.
Heartbeat updates every 25 rows so a long scrape shows progress instead of looking frozen. End-of-scrape summary now reads "12 created, 8 refreshed, 4 replaced manual entry, 2 skipped (ambiguous match)" instead of raw status names.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.41
28 Nis 2026 tarihinde çıktı - 153,46 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırThis release covers everything between 2.1.30 and 2.1.41. The big
theme: the CPKC active scrape button now works end-to-end across
both the 0-4 month timeslip list and the 5-12 month archive list,
including non-working claims like sick leave and personal leave.
CPKC scrape engine
- Walks every page of both the recent and archive timeslip lists,
including non-working claim rows.
- Stops cleanly on either of CMA's two end-of-list signals
("END OF TIMESLIP RECORDS" on the recent list, "NO FURTHER
SCROLLING POSSIBLE" on the archive list) and on a true wrap.
- Distinguishes CMA's F8 page-overlap (the bottom row of one page
reappearing as the top of the next) from a genuine wrap, so the
walk no longer stops after a single ticket on multi-page lists.
- Date ranges older than four months automatically take the
archive path (option 30).
- Recovers cleanly from CMA blank-screen blips, F3 overshoots, and
a few other terminal quirks instead of leaving CMA wedged.
- If the engine cannot tell what screen it is on, it bails with a
clear message instead of pressing keys.
- Handles archive tickets (the option-30 versions of the working
ticket and non-working claim screens) the same way as the
recent versions.
Telemetry
- Sessions now record the browser they ran in (Firefox / Chrome /
Edge) so support can tell where reports are coming from.
- Per-ticket and per-session diagnostic fields brought to parity
with the CN side. Useful only for support; nothing user-visible
changes.
Privacy
- Captures of employee-master and work-history screens are
rejected at upload. The earlier filter let them through if the
page happened to carry a PSTS marker; this release tightens it.
No setting changes are required. Update normally and click Start
Scrape from the timeslip list (or any open ticket).Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.40
28 Nis 2026 tarihinde çıktı - 152,31 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırKaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.30
27 Nis 2026 tarihinde çıktı - 147,91 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.28–v2.1.30 — first successful CPKC scrape, plus three follow-up fixes.
CN side is unchanged. For CPKC users:
• A real CPKC user just walked PSTS551 and captured tickets end to end
for the first time. The engine works. These three releases address
the issues that surfaced during that test run.
• v2.1.28 fixes "got stuck partway through the list". CMA repaints the
timeslip list after each ticket capture, and the X-marker positions
shift slightly. The engine was using positions it had read once at
the top of the page, so by the fifth or sixth row the cached
positions no longer matched. The engine now re-reads the screen
before every row instead of caching once per page.
• v2.1.29 adds parser support for non-working claim screens (sick
leave, personal leave, holiday claims). These are a separate CMA
screen called PSTS564 with its own three-column layout. Earlier
versions captured them fine but did not know what fields to extract.
The parser now reads claim code, claim amount and type, claim date
and time, employee number, job type, pay period, cost centre, and
approval status off PSTS564.
• v2.1.30 recovers from F3 overshoot. After capturing a ticket the
engine presses F3 to return to the timeslip list, but on certain
sub-screens F3 can carry too far back, all the way to the main
field-inquiries menu. Earlier versions would then give up. The
engine now checks where it actually landed: if it overshot to the
main menu, it re-runs its own auto-navigation to walk back to the
timeslip list and continues with the next row.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.27
27 Nis 2026 tarihinde çıktı - 147,14 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.24–v2.1.27 — CPKC scrape engine fixes from real testing.
CN side is unchanged. For CPKC users running the active scraper:
• Fixed a crash that was throwing every Start Scrape attempt with
"Assignment to constant variable". The engine could not run at all
before this fix.
• Fixed a stop-flag carry-over from the extension install that was
silently bailing every scrape on the first iteration with "0
attempted". This was the actual reason scrapes appeared to do
nothing in earlier versions.
• On the main field-inquiries menu, the engine now types option 14
into the SELECTION field by name instead of into the first writable
field on the screen. Previously it was landing in the DISTRICT box.
• The CPKC scrape section in the widget now has Start date and End
date inputs, pre-filled with the first of the current month and
today. The engine fills the START DATE on PSTS551 for you and
presses Enter to refresh the list before walking.
• Non-working tickets (PSTS570) are now recognized as a valid
landing screen. Earlier versions only accepted PSTS562 / PSTS564
and would have bailed on any non-working row.
• When the timeslip list comes up empty, the engine stops with a
clear message about which date range was used instead of walking
zero rows silently.
• Discovery noise filter tightened so the CMA outer web-app wrapper
no longer counts as the terminal frame.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.23
27 Nis 2026 tarihinde çıktı - 143,89 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.21–v2.1.23 — CPKC scrape engine rebuilt around the CMA inquiry tree.
CN side is unchanged.
For CPKC users:
- The engine now reads the green-screen content from the right place. Earlier versions were reading the terminal wrapper instead of the inner frame, which caused the scraper to think every CMA screen was unknown and exit out.
- The engine knows the full CMA inquiry tree. Reverse-engineered all 25 CMA screens we have data on, mapped how they connect, and taught the engine to navigate that map. Click Start Scrape from anywhere reasonable in CMA (the main field-inquiries menu, the timeslip enquiry, an open ticket, or an assignment history) and the engine walks itself to the timeslip list.
- The widget screen indicator now names every CMA screen by ID and description (e.g. "PSTS562 — Working Ticket", "PSTS17A — Assignment History") instead of falling back to "PSTS_unknown".
- About 3x faster per ticket. The engine reads the color of each ticket's F-key labels and skips the empty sub-screens, only visiting the ones that have data.
- CMA-specific failure cases are handled cleanly. If CMA throws its own error screen, the message is passed through to you. If your CMA session has timed out, you are told to sign back in.
- The CN-only PSTS PIN / VPN password block is hidden in the widget on CPKC tabs (CPKC users do not need it; F5 SSO covers them).Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.19
26 Nis 2026 tarihinde çıktı - 136,38 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.19 — CPKC discovery improvements
• Discovery only runs while you are on the CMA terminal. If you navigate
to another internal site (careers, SAP, SSO, etc.) the extension stops
capturing until you return to CMA.
• The "Stage 2" diagnostic button now reports a useful result. Added a
new "Stage 3: full recipe" button that runs the same sequence the
scraper itself uses, so it tells us up front whether Start Scrape will
work for you.
• Trip de-duplication is tighter. The same job (same train ID, same
date) is now treated as one trip even if two captures of the supervisor
screen disagree on the time format.
• No CN changes. CN scraping is byte-identical to v2.1.18.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.18
26 Nis 2026 tarihinde çıktı - 131,96 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.18
CPKC parser correctness. CMA captures now use RUN MILES (the figure
the user is paid on) instead of ACT MLS RUN (a separate auto-computed
"actual miles run" line that on turn trips includes locomotive and
deadhead extras and reads higher). Same correction applied to total
miles and constructive miles, taking the EMPLOYEE column instead of
the SYSTEM column. The CPKC scraper parser is now standalone, mirroring
how CN's scraper parser is separate from CN's QuickFill paste parser.
QuickFill paste path is unchanged. CN scraping is unchanged. No
user-visible UI shift.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.17
26 Nis 2026 tarihinde çıktı - 131,96 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.17
CPKC-only diagnostic addition. The "Start Scrape" session summary the
extension already uploads to TicketForge at the end of every scrape now
includes a snapshot of the timeslip-list page's input-field structure,
so the admin can confirm or fix the row-walking heuristic from real
data. No user-visible behaviour change. CN scraping is unchanged.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.16
26 Nis 2026 tarihinde çıktı - 131,55 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.16
CPKC-only internal change: rewrote the keystroke layer that drives the
CPKC CMA terminal during one-click "Start Scrape". Now uses Inventu
Viewer's own SendAid + SCSetField primitives directly (the same path
their macro player uses) instead of synthesizing keyboard events.
Fixes three bugs in the previous build that were preventing the row
walker on the timeslip-list page from firing. CN scraping is unchanged.
No user-visible UI change.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.15
25 Nis 2026 tarihinde çıktı - 130,86 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.15- Internal telemetry: the CPKC scrape engine now reports a session
summary at the end of every Start Scrape run. Lets us see when a
scrape attempt fails on the user's machine before any tickets are
uploaded (e.g. terminal not loaded, wrong screen, blocked
keyboard event) so we can fix it without asking the user to
reproduce. - No user-visible behaviour change. The Start Scrape button, auto-
add trips, and CN scraping all behave exactly as in v2.1.14.
Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
- Internal telemetry: the CPKC scrape engine now reports a session
Sürüm 2.1.14
25 Nis 2026 tarihinde çıktı - 130,42 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.14- New "Start Scrape" button on the CPKC discovery panel. Mirrors the
CN flow: navigate to the CMA timeslip list (PSTS551), click Start
Scrape, and the extension walks the list, opens each ticket,
captures the main screen plus sub-screens (F4/F6/F7/F9/F11/F12),
and ships them to TicketForge. Existing trips are never overwritten. - The active scrape is gated server-side by an admin flag
(CPKC_SCRAPE_ENGINE_ENABLED). When the flag is on, scraped tickets
become trips with source=cpkc_experimental. When the flag is off,
the engine still runs but the server records the captures for
parser tuning without creating trips. - The previous "Help us build automation" developer probe section is
still present for diagnostic purposes; both probes and the new
Start Scrape exercise the same keystroke layer underneath. - No CN scrape behavior changes.
Implementation note: the scrape engine drives the Inventu Viewer
(FVTerm) terminal by dispatching synthetic KeyboardEvents on the
em.scrElem element through chrome.scripting.executeScript with
world:'MAIN'. This is the standard FVTerm event entry point — the
same one a user's physical keyboard goes through.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
- New "Start Scrape" button on the CPKC discovery panel. Mirrors the
Sürüm 2.1.13
25 Nis 2026 tarihinde çıktı - 122,75 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.13- New "Help us build automation" developer probe in the CPKC widget
(collapsed by default at the bottom of the discovery panel). Two
buttons collect anonymous diagnostic data about the CMA terminal so
we can build a one-click "Start Scrape" button for CPKC. Stage 1 is
read-only. Stage 2 sends F1 (HELP) on the current screen; press F3
to go back. Both only do anything on a CMA mainframe screen. - CPKC auto-trip creation is now on by default for everyone (was
experimental opt-in only). When the extension captures a CMA working
ticket it gets parsed and added to your TicketForge trips
automatically. Existing trips are never overwritten (dedup on start
date + departure time). Toggle off in your TicketForge profile if
you'd rather keep it off. - No changes to the CN scrape flow.
Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
- New "Help us build automation" developer probe in the CPKC widget
Sürüm 2.1.12
24 Nis 2026 tarihinde çıktı - 118,26 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.12
Internal: for CPKC users, the extension now uploads one extra diagnostic
capture per session containing the surrounding page context, so the
TicketForge team can build an automated CPKC parser. CN scraping is
unchanged. No user-visible behaviour change.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.11
24 Nis 2026 tarihinde çıktı - 117,21 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.11
Internal telemetry change only. The extension now sends a short browser
label (e.g. "Firefox 124 / Linux") along with its existing version string
on scrape and CPKC discovery calls, so the server-side admin view can
group users by browser when diagnosing issues. No user-visible change.Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
Sürüm 2.1.10
23 Nis 2026 tarihinde çıktı - 116,51 KBfirefox 140.0 ve üstü, android 142.0 ve üstü ile çalışırv2.1.10 (rolls up changes from 2.1.8, 2.1.9, 2.1.10)- CPKC users: new "Experimental auto-add" toggle in Settings on ticketforge.ca.
When enabled, CMA working-ticket captures create trips on your Trips page
automatically. Optional, and a single button wipes experimental trips if you
want to start over. Toggle off stops new writes. - CN scraping: if you hand-edit a scraped trip, the next scrape preserves it
instead of clobbering it. Overwrite-mode scrape still forces a refresh. - Scrape summary now shows a per-category breakdown (added / refreshed /
replaced / preserved). - CPKC discovery captures include a visible-tab screenshot and the frame URL
so the TicketForge team can diagnose parser issues against the actual
screen you saw. - Non-terminal pages (Inventu app picker, 3270 status-line footer) no longer
get captured as terminal screens. - Bug fixes: stuck capture counter on CPKC, MV3 service-worker idle
termination during long discovery sessions.
Kaynak kodu Tüm hakları saklıdır lisansıyla yayımlandı
- CPKC users: new "Experimental auto-add" toggle in Settings on ticketforge.ca.