Who you hear in which ear
Priority 1 CH12 2 CH16 3 CH11 4 CH13 5 CH14 6 a recording you play
| When | Right ear | Left ear | Others |
|---|---|---|---|
| One sound alone (any channel, or a recording) | both ears (L+R) | - | |
| Two channels talk | higher priority | the other one | - |
| Three or more channels talk | highest | second | held: play them later from the table |
| Channels + a recording | highest channel | the recording | other channels held |
L/R split off: one channel at a time in both ears, first come first played; a channel that starts meanwhile waits and plays right after. Click a channel card to include it (● LISTEN) or leave it out (○ OFF); its card shows the ear it plays in now.
VHF TRANSCRIPT REVIEW
| Transcript | MP3 |
|---|
Ship types
Top destinations
Length (bow + stern)
Fields filled in
Latest records (click an MMSI to add it to the position request)
| MMSI | Name | Type | Destination | Record (Vancouver) |
|---|
Message types (ticked = sent to Azure)
| Send | Type | Name | On the mini-PC today | Sent to Azure today | Last hour |
|---|
Vessels
| MMSI | Name | Class | Ship type | Status | Speed | Course | Heading | Destination | Last heard | Messages |
|---|
Decoded messages (newest at the bottom, last 300)
Change history
| Rev | When (Vancouver) | Who | What | Published |
|---|
i
Ears (the Monitor's L/R rules) · one sound alone plays in both ears (L+R). With “All channels at once”, when two or more calls sound together, by priority 12, 16, 11, 13, 14: the highest goes to your RIGHT ear, the next to your LEFT ear, any others are held (muted; shown as “held”). While you listen to live audio, recordings keep the LEFT ear (live takes the right): only the highest recording plays there. L/R split off: one sound at a time in both ears, channels one after the other. Each lane shows the ear its call plays in.
Keys: space = play / pause · ← → = previous / next call · mouse wheel over the player or the lanes = zoom the window in / out (Shift + wheel = move it earlier / later).
i
One ZIP of one ship (or the Safety column) for a window of at most 72 h: the original audio checked against its fingerprints, transcripts, tags, events, alerts and AIS track. Every pack is written to the audit log. Times are Vancouver time.
A simulator is an edge PC without a radio: the real edge software, fed by fake VHF calls and fake AIS, sending as a Test client only. Use it to test new edge PCs and several clients at once. Its data never reaches the vault and can be purged.
| Simulator | Client / station | Runs on | Link | VHF | AIS | Since start | CPU · memory |
|---|
VHF recordings (wav, mp3, flac, m4a, ogg) and AIS files (NMEA text, CSV, Parquet), up to 200 MB. Simulators download them when their settings use them.
| File | Kind | Size | Uploaded | Used by |
|---|
What a person opens = the client's modules (Global > Clients) and the tabs of their groups (Client > Users & groups). Owner admins open everything; client admins manage their own client only.
Members of these Entra groups are owner admins: everything, Global and every client, like UI_ADMINS. Paste the group's Object ID from Entra (Groups > the group > Overview). Never the sign-in group. Takes up to 30 s, then the person signs in again.
| Name | Entra group Object ID | Added by | Added |
|---|
| Person | Role | Client | Why | Until | Last used |
|---|
Makes someone a client admin of one client for 1 to 7 days. It ends by itself.
| Client | Until | Given by |
|---|
A person sees a page when one of their groups has it ticked and the client has the module. A default group holds everyone whose email belongs to this client. An admin group's people manage this client. Changes count within a minute.
| Group | Who | Pages |
|---|
. Each edge PC has SDRs; a voice SDR hears the channels that fit its window (the shaded ends are the safety gap, the line is the centre). Tick channels for a PC and they are placed on its voice SDRs. Saving changes no radio: press Apply on each PC.
Set it once: the crews take the shifts in turn and the roster fills itself. Use a swap for one shift only (sick leave, trades). Shift Hand Over shows who is on watch now and next. Times are station time ().
Sign-in email addresses, separated by commas.
Who works one shift instead of the crew.
The header client (gateway setting CLIENT_ID –) gives the page header its name and Local clock.
The language models that build the Watch Board from closed conversations (service hvx-timeline-mvp). The primary model is shown on the board; compare models run on every conversation too, for the comparison below.
| Model | Alias | Deployment · credentials | Role | Price (USD per 1M tokens) | Today | State · last test |
|---|
Runs a model on the archived conversations of past days, also a model that is off, e.g. to try a new model on yesterday and compare it below. Conversations it already did are not paid again. Its cost counts for today, so the model's daily budget and the daily limit stop it (it goes on after 00:00 UTC).
| Asked | Model | Days (UTC) | Progress | Results | Cost |
|---|
The models on the same day's conversations: valid answers, what they found, how often they agree with the primary model, speed and cost (prices from the Azure price list). A model without results that day: run it on that day above.
| Model | Conversations | Valid answers | Found | Same as primary | p50 / p95 | Cost that day | Per 1,000 conversations |
|---|
The system prompt the timeline service sends to the models with every conversation (the conversation follows it as the second message). {{KNOWLEDGE}} is replaced by the port background; the answer format (JSON schema) is fixed. A saved prompt is used for new conversations within about 10 s and gets its own version (custom-…), so its results stay apart.
What the model gets now (with the port background filled in)
Answer format (JSON schema, fixed)
Earlier admin prompts
The engines of the STT service (hvx-stt-mvp) that turn every call into text. The service reads this list and restarts with it within about a minute. Off = that engine stops (its transcripts stop). A new engine also needs its topic and subscription: add it to infra/env/stt.bicepparam and deploy (infra/README-stt.md); until then it waits.
| Engine | Model | Region · endpoint | Languages | Parallel | State |
|---|
| Service | State | In (1 h / 24 h) | Done (1 h / 24 h) | Waiting | Failed (24 h) | Dead letters | Last activity | Details |
|---|
| Topic | Subscription (reader) | Waiting | Dead letters |
|---|
How to read it
Each channel is compared with its own normal: the middle value of its last 7 days. Every dongle and gain setting has its own level, so a fixed number would be wrong after a hardware change. Reference: the Blog V4 dongle read −48.4 to −49.0 dBFS on all 5 channels on 2026-10-22.
- ● Good up to 3 dB above normal.
- ▲ Watch 3 to 6 dB above. The squelch opens only for signals 9–12 dB over the noise, so the weakest vessels start to go missing.
- ■ Bad more than 6 dB above: interference (a transmitter close by, electrical noise, a faulty cable or connector). +6 dB roughly halves how far away a weak vessel can still be heard.
- ▼ Too quiet more than 6 dB below normal: often the antenna or its cable is disconnected, or the dongle is failing.
- ○ No data nothing for 3 minutes: the radio, the edge PC or its link is down.
Short peaks in the "highest" band are normal (a strong call nearby). Look for the average line staying up for minutes or hours. Normal needs time: the first hour uses −48.0 dBFS, then the channel's own median (marked "short" until it has a full day, since the noise moves a few dB over a day).
average (per minute; per 10 min / hour for 7 / 30 days)lowest to highestnormalwatch zonebad zone
| SSO domain | Client | Online now | Users (24 h) |
|---|
| User | Sign-in name | SSO domain | Client | IP address | First seen (24 h) | Last seen |
|---|