Release Notes – Version 2.2
Version 2.2.8
Shigoto Sensor
- Pairing hints before linking a workstation: "Link workstation" now opens a short page first with the four rules that decide whether detection works reliably: calibrate by deselecting the laptop's own devices without a workstation connected, link only serial numbers that look genuine and unique, never bind Wi-Fi or gateway to a single workstation, and treat a device shown as "already connected" as a duplicate serial number that has to be unlinked. "Don't show again" skips the page on that computer from then on.
- Diagnostic dump on macOS with ⌘⇧D: The previous shortcut ⌘⌥D never reached the sensor because macOS reserves it for showing and hiding the Dock. Windows keeps Ctrl+Alt+D.
Shigoto Portal
- Login page links to downloads and documentation: Below "Register" the login page now offers direct links to the sensor downloads and to the documentation.
Version 2.2.6
Shigoto Sensor
- Diagnostic dump with Ctrl+Alt+D, on macOS ⌘⇧D: Where a sensor assigns the wrong workstation, its internal state was out of reach. After a consent dialog the sensor now writes that state and the last five heartbeat exchanges next to its log file and sends a copy to the manufacturer. Signatures are replaced by length and fingerprint beforehand; log files are not included.
- Silent installation can leave no Start Menu entry: The Windows installer accepts
--hiddenon the first install; later auto-updates never recreate a shortcut that is gone. On macOS, where a package cannot take flags of its own, the app bundle is hidden from Finder when the deployedconfig.jsonsetswindowFullyHiddentoeveryoneoranonymous. This only concerns the Start Menu and Finder — whether the sensor itself shows a window and a tray icon remains the separatewindowFullyHiddensetting. - macOS installer starts the sensor as the logged-in user: It ran as root, which registered the login item in root's session instead.
- Sensor showed no notifications on macOS: The screen lock was read as permanently locked, which suppressed the warning that another person has booked the workstation.
- Error colour was unreadable in dark mode on partner themes: Deskly, Deskbird, Seatti and MazeMap kept their light-theme error colour on a dark background. They now lighten it, as Shigoto already did.
Shigoto Server
- A workstation without devices stayed occupied: Unlinking the last device or deleting a location left the sensor assigned to it, so the portal showed the workstation as occupied and the partner system never saw it freed — on a deletion the stay even ran on until the sensor disconnected. Both now release the sensor immediately and report the workstation as free. A sensor stays where it is as long as another of its own devices is still linked there.
- Diagnostic uploads are capped at 60 per hour: The upload deliberately works without a login, so that a sensor which never finished activation can still report. To keep that from being abused to flood the mail account the server shares with password resets and invitations, it now accepts at most 60 dumps per hour. Beyond that a sensor is turned away and shows where its report was saved locally, so it can still be passed on by hand. Before asking a whole site to send dumps, raise
diagnosticsMailsPerHourin the server configuration.
Shigoto Admin Panel
- Search and name sorting in the locations and devices view: The location tree is sorted by name on every level, and both tabs now carry a search field — in the tree by name, id and external id, in the device list across every displayed column. A match keeps its subtree, remaining nodes stay only as the path to it, and the tree expands while a search is running.
- Device list shows the workstation a device belongs to: Long serial numbers now wrap instead of pulling the table apart.
Shigoto Sensor
New Features
- Sensor can run completely invisibly: Where the sensor is only meant to record occupancy and is not supposed to be operated by anyone, its interface can now be switched off entirely: the window no longer opens and no icon appears in the notification area. Detection and reporting are unaffected — the sensor keeps recognising workstations and reporting them exactly as before, it simply cannot be seen or opened any more. The setting is made per account in the admin panel and offers three options: show the interface as usual, hide it only on sensors without a personal login, or hide it on every sensor of the account. The middle option is meant for anonymous mass rollouts, where a machine is activated by an account configuration alone and there is nothing for a user to do: those sensors stay invisible, while anyone who signs in personally keeps window and icon. A change takes effect with the next heartbeat, so neither a reinstallation nor a restart is needed. Please bear in mind what hiding the interface means for the people at those machines: an invisible sensor cannot be opened, so nobody can sign in from it, read its status or quit it.
- A single machine can be made visible again for troubleshooting: A sensor whose interface is
hidden by the account setting gives support nothing to look at, which is awkward precisely when
one machine is misbehaving. Writing
"windowFullyHidden": "debug"into that machine'sconfig.jsonby hand brings the interface back on that machine alone. Unlike every other value, it is not overwritten by what the account prescribes: the sensor keeps its interface for as long as the entry is present, however the account is configured, and the value cannot be set from the server either. Removing the line hands the machine back to the account setting, which the sensor picks up with its next heartbeat and writes into the file again. The value is described in the documentation under "Advanced".
Bug Fixes
- Sensor lost its configuration on every update: Installing a new version over an existing one
deleted the sensor's configuration folder
%APPDATA%\Shigoto\, includingconfig.jsonand theclientIDstored in it. Because the automatic background update uses the same installer, this happened on every update, not just when the setup was started by hand — the sensor came back unconfigured and had to be activated again. Anonymous mass rollouts were hit hardest: the activation file distributed to the machines in advance was removed along with everything else. The installer now only clears the configuration folder when the sensor is genuinely uninstalled; updates leave it untouched. - Anonymously rolled out sensors deactivated themselves shortly after starting: A sensor activated by an account configuration alone — the result of an anonymous mass rollout, where the configuration deliberately contains no user — reported normally at first and then fell back to the partner selection screen a few seconds later, with its configuration emptied. Requests were sending placeholder values for the fields such a sensor does not have, and the server read those placeholders as a claim to a user identity it then could not verify. The sensor treated the resulting rejection as an invalid login and cleared its own configuration. Empty fields are no longer sent at all, the sensor no longer requests a personal login token when it has no user, and a rejected user authorization can no longer clear an account-based activation.
- Anonymously rolled out machines appeared as a new sensor after every restart: A machine set up from a distributed configuration file counted as a brand new sensor each time it started, so the same desk accumulated an ever-growing list of entries. The identifier that distinguishes one installation from another was created fresh on every start whenever the distributed file did not already contain one — which it never does — and was never written back to disk. It is now stored on first start and kept from then on.
- Anonymously rolled out sensors reported no occupancy: Even where the activation survived, a sensor without a personal login stayed silent — it registered, appeared online and kept sending its heartbeat, but never reported any workstation occupancy. Reporting was tied to the personal login token, which a sensor activated by an account configuration alone cannot obtain at all. Occupancy is now reported on the strength of the account configuration, as it always was for a sensor with a personal login.
- Sensor window shakes, grows, and wanders to the second monitor: On some machines the sensor window jittered by one to two pixels roughly twice per second, kept growing after opening, and eventually drifted across to a second screen. Moving the window once by hand stopped the effect. The cause was the window reading back its own position every time its height was recalculated and writing that value straight back. On displays with fractional scaling (125%, 150%, 175%) this round trip is not exact and shifted the window by about one pixel each time, which kept retriggering itself. The window now keeps a fixed reference position instead of reading it back, and it is no longer repositioned when nothing has actually changed. Windows with a taskbar at the top or on the left, and secondary monitors, are now also taken into account correctly, so the window stays flush with the lower edge of the work area. A window moved manually stays where the user put it.
Changes
-
Devices already linked to a workstation stand out in the pairing view: In the pairing view of the sensor, a device that is already linked to a workstation was only marked by the name of that workstation being highlighted, which was easy to miss in a long list of devices. Such a device is now framed as a whole and its "Connected" line is emphasised in the signal colour, so it can be told apart at a glance from a device that is still free. Nothing about the pairing itself has changed — the marking is purely a visual one.
-
Serial numbers are rated more strictly: Some devices carry a serial number that every unit of the model shares — a counting sequence such as
0123456789ABCDEF, a row of zeroes, a vendor placeholder. Linked to a workstation, they recognise everyone who owns the same model. The sensor now spots them and no longer treats them as usable. -
Unsuitable devices are marked in the pairing view: Their serial number is shown in the error colour with a warning sign, they are never preselected, and the "all on" switch skips them. They can still be linked deliberately, one at a time.
Shigoto Server
New Features
- Workstation occupancy is now recorded in a form that can be evaluated: The Hub has always known which workstations were occupied at any given moment, but it kept no usable history of it. It now records every stay: whenever a sensor arrives at a workstation, the Hub notes the moment; when the sensor leaves, moves on, or simply disappears, it writes a record of that stay with its exact start and end. Each record also carries the kind of devices the stay was recognised by, which distinguishes a workstation identified by a monitor, a docking station or a network port from an area identified by Wi-Fi or a gateway. Stays shorter than a minute are ignored — a colleague walking past or a device briefly appearing and vanishing does not produce a record. A stay is recorded for exactly the workstation it happened at and is only added up into the room, floor or building when a report is produced, so a later change to the location structure is reflected in past evaluations automatically. Stays still running at midnight are closed off at the end of the day and continue as a new record, which keeps reports grouped by day correct without any special handling. How long records are kept can be set per account; older ones are removed automatically once a day, and setting the value to zero switches that off entirely.
Bug Fixes
-
An account rejected by the partner system came back as a duplicate, and the sensor never said why it had signed itself out: When a partner system reports a customer account or a user as no longer valid, the Hub removes it and instructs the affected sensors to sign out. Two things went wrong along that path. On the sensor, the instruction arrived without any explanation: it emptied its configuration and returned to the partner selection screen in silence, which was indistinguishable from a spontaneous fault. The Hub did send a reason along with the instruction, but the sensor never read it, and where several workstations were reported at once the reason could end up attached to an instruction it did not belong to. On the server, enabling the customer again did not bring the old account back: the next login created a second account beside the first, because a removed account was no longer found when checking whether one already existed. Everything belonging to the customer — workstations, devices, users, payment plans and the recorded occupancy — stayed with the now invisible original, so the customer effectively started from nothing. A removed account is now found on the next login and reactivated with its workstations, devices, users and payment plans intact; its name is only filled in if none is set, and the trial period is not granted a second time. Anything that was deleted in its own right, such as an individual user or workstation, stays deleted. And the sensor now shows the reason for a sign-out as a message that remains on screen until it is dismissed, so it can still be read after the sensor has returned to the partner selection.
-
Linking a device to a room turned that room into a workstation: Rooms, floors and buildings are the levels of the location structure; workstations are the places at its ends. Linking a device to a room silently turned it into a workstation, because every pairing declared the location it pointed at to be one, whatever it had been before. The room could not be opened afterwards — a click offered the action menu of a workstation instead of stepping inside it, and the entries for adding rooms and workstations below it were gone. Renaming a room or giving it a new floor plan had the same effect whenever the form did not restate the kind of location. A location now keeps the kind it was given: the position in the path only decides the kind of the levels a pairing creates for the first time, and an editing step that says nothing about the kind leaves it alone.
Changes
-
Linking a workstation no longer creates a booking: Until now, linking a physical workstation to a digital one sent an occupancy report to the partner system straight away, and most partner systems turned that report into a booking — even though the administrator was only configuring the workstation and was usually not going to work there. For two minutes after a workstation has been linked, the Shigoto Hub no longer reports the occupancy of that workstation to the partner system. No report is lost: as soon as the two minutes are over, the next report from the sensor is passed on as usual, so a workstation that really is in use is still reported, just slightly later.
-
New optional
bookparameter for status reports: Partner systems can now let Shigoto decide whether a status report should result in a booking. Once the parameter has been enabled for a partner, every status report carries an additionalbookvalue:auto(the default — the partner system decides on its own, exactly as before),true(create a booking in any case and end an existing one if necessary) orfalse(do not create a booking and leave an existing one alone). While a workstation is being linked, the Hub sendsbook=falseinstead of withholding the report. The parameter is switched off by default and is only sent to partners who have asked for it, so existing integrations are unaffected and do not need to be adjusted. -
Trial period shortened to 60 days, and it no longer ends in a dead account: Every new account still starts with an unlimited number of sensors free of charge, but that period now runs for 60 days instead of 90. More importantly, what happens afterwards has changed: instead of dropping to zero sensors — which left the account switched off and rejected the very next sensor — the account keeps a permanent allowance of ten clients. A customer who does not decide within the trial period therefore keeps a working installation on a small scale rather than losing it overnight. Accounts that were created before this version are included: their expiry entry has been raised from zero to ten clients, so accounts whose trial had already run out are usable again. The date on which their trial ends is left untouched, so nobody's running trial is cut short retroactively.
-
The Hub keeps the sensor's rating of a device: Whether a device can identify a workstation is decided by the sensor and was previously discarded on arrival. It is now stored with the device and survives a restart. It informs, it does not block: a device an administrator linked deliberately stays linked.
Shigoto Admin Panel
New Features
- Accounts with an expired trial period are highlighted: In the account overview and in the account list of a tenant, the name and the licence count of an account whose trial period has run out are now shown in the error colour. The state is derived from the account's currently valid payment plan, so an account that has been given a real plan in the meantime appears normal again without anything having to be reset by hand.
- Interface of the sensors can be hidden per account: The account options now carry a "Hide the sensor interface" setting with the three choices described under Shigoto Sensor above: show the interface, hide it only on sensors without a personal login, or hide it on every sensor. The choice reaches the sensors of the account with their next heartbeat, so it also applies to machines that are already installed and does not have to be rolled out.
- Payment plans can be created and edited: The licence page of an account now offers a "New plan" button, and a click on an existing plan opens it for editing. Start date, licence count, price and note can be changed. Please note that a new plan replaces every plan starting on or after its date — the dialog says so and names how many plans are affected. Tenant administrators may create plans from today onwards at a price of 0.50 or above; Shigoto is not restricted.
- Occupied workstations show who is at them: In the locations view, a workstation reported as occupied now lists its occupants directly in the row — up to five by name and picture, and beyond that only their number. Occupants working anonymously are never named; they are always shown as a count, so an anonymous stay stays anonymous.
Bug Fixes
- The device list of a workstation was always empty: Clicking the status of a workstation in the locations view opened a dialog that never showed a single device, even where devices were plainly linked. The devices were looked up in the account of the administrator who was signed in rather than in the account being viewed, which returned nothing without reporting an error. The list now shows the devices of the account on screen, and a request that fails says so instead of appearing as an empty list.
Shigoto-Portal
New Features
- Admin panel reachable from the portal: Customer administrators now find an "Admin-Panel" entry both in the navigation list on the left and in the context menu of the start page. It opens the admin panel in a new browser tab, so the portal stays open in the background. The entry is only shown to users with at least customer administrator rights.
- Documentation reachable from the portal: Right below the admin panel, a "Documentation" entry has been added to the same two places. It opens this documentation in a new browser tab and is likewise only shown to customer administrators and above.
- Rooms can be linked to Shigoto: Until now only workstations could be linked, so a device that covers a whole area — a Wi-Fi access point, a gateway — had to be attached to a single desk, and everyone within its range was reported at that desk. Rooms, floors and buildings now offer "Mit SHIGOTO paaren" and "Gerätepaarung trennen" as well, both in the navigation list on the left and in the action menu of a floor plan. Because a device covering an area belongs to a room while a monitor or docking station belongs to a desk, a link that crosses that line is queried before it is made: the portal explains the mismatch and asks whether to go ahead anyway. Only the devices the sensor has actually offered for pairing are taken into account, so one that was left out never triggers the question.
- Rooms show who is in them: A room used to show nothing but its name. It now carries the number of people in it on its symbol and lists them below the name, just as a workstation does — up to two names, beyond that a count. A room nobody is in stays on a single line.
Bug Fixes
- Logging out of the portal left the admin panel logged in: Signing out of the portal only removed the login cookie, while the admin panel kept a copy of the sign-in data in the browser's local storage. That copy is enough to authenticate on its own, so switching over to the admin panel signed the user straight back in - on a shared machine the next person at the keyboard was still logged in as their predecessor. Signing out now clears that copy as well, in the portal and in the admin panel alike.
- Signing out did not take effect while a second tab was open: The portal opens the admin panel in a new tab; the remaining tab then quietly signed itself back in and restored the session for both. Signing out now ends the session in every open tab, and the server expires the cookie itself.
Changes
-
Sensor link removed from the context menu: The "Zu meinem SHIGOTO-Sensor" entry has been removed from the context menu of the start page. The sensor page remains reachable through the sensor tile on the start page.
-
Zooming and moving the plan follow the mouse: Zooming the plan with the mouse wheel now keeps the spot under the cursor in place instead of drifting off to the side, so a detail can be enlarged without losing sight of it. Where the plan is already scrolled as far as it goes, the spot moves along as before — there is no room left to compensate. Dragging the plan itself now moves it within its window, instead of the browser starting to drag the plan image as a file. Working with workstations is unchanged: a click on the plan still opens the action menu, and a workstation symbol is still moved on its own.
-
Linking and unlinking now require customer administrator rights: "Mit SHIGOTO paaren" was offered to every signed-in user, while the Hub has always required customer administrator rights for it, so the entry led to a refusal rather than to a pairing. It is now shown only to those who can actually carry it out, which matches "Gerätepaarung trennen", where the restriction was already in place.
API
New Features
- New endpoint
GET /statistic/entriesfor occupancy data: The recorded stays can now be retrieved through the API and fed into your own reporting. Each entry describes one stay: the location and its full path in the location structure, the identifier of the sensor, the device types the stay was recognised by, the start and the end, and the number of people the entry stands for. The endpoint is available with either a login or an API key and is open to customer administrators and above; a caller below tenant level always receives the data of their own account, whatever account is requested. A query can cover an entire account or a single location, in which case everything below it is included by default; the time window matches on overlap, so a stay that began earlier and was still running is returned as well and a day's occupancy stays complete at its edges. Results can be limited to a device category —locationfor monitors, docking stations and network ports, which identify a specific workstation,environmentfor gateways and Wi-Fi, which cover an area. Results are paged with a cursor, and for a recurring export the parameterchangedSincereturns exactly the entries written since the previous run, free of both gaps and duplicates. One caveat for head counts: a person whose monitor identifies a desk and whose Wi-Fi identifies the room produces two entries at the same moment, so always count distinct sensor identifiers rather than entries — and note that such an identifier changes once a day by design, which makes counting across several days a count of machine-days rather than machines. - New endpoint
POST /admin/devicefor registering devices: Until now a device could only become known to the Hub by being reported by a Shigoto Sensor, which made anything no one sits at impossible to use — a Wi-Fi access point covering an office, a batch of docking stations known from an asset database before the first user arrives. Such devices can now be registered through the API. The serial id is the key: an existing device of the account is updated, an unknown one is created, and the response says which of the two happened. Name and information are optional and keep their current value when left out. The endpoint is available with either a login or an API key and is open to customer administrators and above. - Devices can be set up without a sensor on site: A Wi-Fi access point or a gateway can now be
created purely through the API, from its BSSID or MAC address, without anyone having to be at the
location with a running Shigoto Sensor. The existing
POST /admin/pairaccepts such a device immediately, so it is in use from the moment it is created — no administrator has to travel to the site and carry out a pairing there. A whole building can be prepared from a list of access points in one go. - Own locations for areas rather than desks: Because a pairing may point at any location id the
partner system chooses, Wi-Fi access points and gateways can now be collected under an id of the
partner's own — a pseudo location such as
WIFI-in-Buero-Muenchen— and reported under exactly that id. Several access points can be added to the same location one after another, and the location can be placed below an existing building or floor so that it appears in the right place for the user and is included in evaluations of the levels above it. How to do this is described in the partner documentation under "Registering Own Devices".
Bug Fixes
- Occupancy data could be read across account boundaries: The previously undocumented statistics endpoint accepted the account to be queried as a parameter without checking it against the credentials used, and when a specific location was requested the account was not taken into account at all. Any authenticated caller could therefore retrieve occupancy data belonging to another account. The account is now verified against the credentials on every request, and the restriction applies whether or not a location is specified.
Changes
-
Minimum price for payment plans is now enforced:
POST /admin/paymentplanhas always documented a minimum price of 0.50 per user and month, but never checked it. It is now rejected with HTTP 403 and error code0x20080009where the caller is below Shigoto level — which every API key is. A start date in the past was already refused in the same way and is unchanged. Integrations that submit a price below the documented minimum have to be adjusted. -
Payment plans use
startTimein both directions: Creating or updating a payment plan viaPOST /admin/paymentplanexpected the start of the plan asstartDate, while every read path returned it asstartTime— the same value under two different names. The request body now usesstartTimeas well, which matches the response ofGET /admin/paymentplan, thepaymentPlanslist inGET /admin/accountand therelevantPaymentPlanslist inGET /admin/billing. Existing integrations do not need to be adjusted:startDateis still accepted in the request body and keeps working exactly as before, it is only no longer part of the API documentation. If a request contains both fields,startTimetakes precedence. -
POST /admin/pairlinks devices at every level and no longer imposes a kind on a location: The endpoint has always documented that devices are linked at the level they are named at, but only the last level of the path was evaluated — device ids given on the levels above it were discarded. They are now honoured, so a gateway can be linked to a room and a monitor to a workstation inside it in a single call. At the same time a location that already exists keeps its kind: until now every call declared the last level of the path a workstation and every level above it a room, which quietly reshaped existing structures. Levels the call creates are still typed by their position, and the new optional fieldlocationTypestates it explicitly per level —0for a workstation,1for a room, floor or building. Use it to create an area for Wi-Fi access points and gateways directly instead of through a workstation-shaped pseudo location.