This website requires JavaScript.
d574d3c9d6
Aim the deploy at the runner that exists
Maximilian Stubhan
2026-08-20 16:15:49 +02:00
fc0989debb
Deploy from a push, and start keeping track of migrations
Maximilian Stubhan
2026-08-20 16:00:45 +02:00
19e3170b00
Print a checklist without printing the application around it
Maximilian Stubhan
2026-08-18 20:19:58 +02:00
521e4ecf00
Show the Offboarding tab from the day the exit is recorded, not the day it takes effect
Maximilian Stubhan
2026-08-17 17:41:07 +02:00
f85731dde5
Give exits their own checklist, next to the entry one
Maximilian Stubhan
2026-08-17 16:25:58 +02:00
82d07f0d95
Put the onboarding checklist where the file is
Maximilian Stubhan
2026-08-17 15:40:02 +02:00
bd990b7f2c
Merge branch 'feat/sap-om-org-model'
Maximilian Stubhan
2026-08-17 12:42:38 +02:00
e30923e781
Give a position a cost centre
feat/sap-om-org-model
Maximilian Stubhan
2026-08-16 19:57:09 +02:00
3a4f44318c
Derive the filter test's list from the registry it tests
Maximilian Stubhan
2026-08-16 19:46:24 +02:00
10f8f1f2d5
Keep a note on the overview until somebody ticks it off
Maximilian Stubhan
2026-08-16 19:44:48 +02:00
91b2b3406b
Stop waiting on the network eleven times per page
Maximilian Stubhan
2026-08-16 19:31:36 +02:00
6957b95a97
Let the overview say what "upcoming" means
Maximilian Stubhan
2026-08-16 18:56:05 +02:00
16216c5537
Let a planned absence be called off
Maximilian Stubhan
2026-08-15 11:44:21 +02:00
861c47b757
Correct an entry date, and stop returns without an absence
Maximilian Stubhan
2026-08-15 11:31:41 +02:00
d2f4a7aab7
Ask for a residence permit only where one is needed
Maximilian Stubhan
2026-08-14 13:27:26 +02:00
384bdb4fb3
Let an absence be taken back, in the right order
Maximilian Stubhan
2026-08-14 13:13:01 +02:00
f5ace8af2e
Make the part-time arrangement a state you can report on
Maximilian Stubhan
2026-08-14 13:07:41 +02:00
e6554e7982
Move the part-time arrangements out of the absence list
Maximilian Stubhan
2026-08-14 12:56:21 +02:00
6681dcda77
Flag people who cannot simply be dismissed
Maximilian Stubhan
2026-08-14 12:44:00 +02:00
0144267a59
Record people who never turned up
Maximilian Stubhan
2026-08-14 12:33:14 +02:00
8a76b3688f
Show people surname first
Maximilian Stubhan
2026-08-14 11:44:03 +02:00
a3fac47f47
Give each characteristic its own line, and name the car
Maximilian Stubhan
2026-08-14 07:06:58 +02:00
08d2740690
Let planned changes be taken back and corrected too
Maximilian Stubhan
2026-08-13 21:35:51 +02:00
9308096754
Search names first, and only fall back to job titles
Maximilian Stubhan
2026-08-13 21:13:41 +02:00
33d053ce75
Match search words at the start of a word, not anywhere inside one
Maximilian Stubhan
2026-08-13 21:07:22 +02:00
272e8b1acf
Put the fields back in one statement, not one at a time
Maximilian Stubhan
2026-08-13 21:00:47 +02:00
6297288c13
Let an entry be taken back, along with what it did
Maximilian Stubhan
2026-08-13 20:56:48 +02:00
5f50cb97f3
Let the history say what an address was before
Maximilian Stubhan
2026-08-13 17:57:10 +02:00
00df973824
Stop the print preview measuring itself into a freeze
Maximilian Stubhan
2026-08-13 17:44:20 +02:00
578ce696f0
Correct the policy count in the places that quote it
Maximilian Stubhan
2026-08-13 17:33:54 +02:00
917911457e
Stop the seed handing out addresses that look like real ones
Maximilian Stubhan
2026-08-13 16:00:29 +02:00
64eb155dda
Write down what is actually in the database
Maximilian Stubhan
2026-08-13 07:46:49 +02:00
0b8f874fa5
Let the export select on everything the data model holds
Maximilian Stubhan
2026-08-12 12:40:47 +02:00
f14f1cb8df
Keep the org chart inside the page it is printed on
Maximilian Stubhan
2026-08-12 12:40:31 +02:00
3151f32404
Print the org chart as an org chart, and ask first what to print
Maximilian Stubhan
2026-08-11 22:03:54 +02:00
c23df08648
Ask for the optional things separately, and stop claiming numbers are issued
Maximilian Stubhan
2026-08-11 21:47:04 +02:00
4eba557121
Show every field the edit dialog can change
Maximilian Stubhan
2026-08-11 21:33:28 +02:00
9d754359e0
Enter the personnel number, tell the two kinds of company car apart, record who to call
Maximilian Stubhan
2026-08-11 21:27:00 +02:00
53d5d41784
Search a name by any of its words, in any order
Maximilian Stubhan
2026-08-11 19:32:45 +02:00
f28fd2da60
Let a rehire choose the position, and make it work at all
Maximilian Stubhan
2026-08-11 19:29:08 +02:00
27e0e8a8ce
Ask for someone's organisation on a day they actually have one
Maximilian Stubhan
2026-08-10 16:23:21 +02:00
92685f0ac0
Only staff a position while it exists
Maximilian Stubhan
2026-08-10 16:10:18 +02:00
d8a1fdf43b
Reinstate the Vercel build settings
Maximilian Stubhan
2026-08-07 08:32:47 +02:00
780f8fe2b7
Write down what an internal deployment actually needs
Maximilian Stubhan
2026-08-07 08:26:14 +02:00
56662c0775
Describe what is actually deployed, now that the target is a Linux server
Maximilian Stubhan
2026-08-07 08:23:30 +02:00
61ccce5456
Revert "Make the build fit Vercel without breaking the container"
Maximilian Stubhan
2026-08-07 08:21:58 +02:00
ecbda3f3a5
Make the build fit Vercel without breaking the container
Maximilian Stubhan
2026-08-06 15:17:24 +02:00
27cfd6431f
Let a second person be activated at all
Maximilian Stubhan
2026-08-06 12:15:27 +02:00
0d8af7cdf0
Refuse a save that changes nothing instead of reporting success
Maximilian Stubhan
2026-08-05 14:57:31 +02:00
a87c688c0a
Show positions that do not exist yet, and let them be corrected
Maximilian Stubhan
2026-08-05 12:26:12 +02:00
e44f71a60d
Stop offering positions that are already spoken for, and let hiring work again
Maximilian Stubhan
2026-08-05 12:10:17 +02:00
1271cef879
Record what a change was, not only which field it touched
Maximilian Stubhan
2026-08-03 14:54:03 +02:00
3926f1bb80
Load a whole organisation from a file, or none of it
Maximilian Stubhan
2026-08-03 14:40:33 +02:00
16b37244c8
Read an import file without guessing what it means
Maximilian Stubhan
2026-08-03 14:27:49 +02:00
73656461d1
Catch a seed event dated before the entry it belongs to
Maximilian Stubhan
2026-08-03 13:48:01 +02:00
99e50fbbf9
Stop hoarding connections the provider will not give twice
Maximilian Stubhan
2026-08-03 10:28:36 +02:00
4d8e3f7154
Restore the shapes the application was written against
Maximilian Stubhan
2026-08-03 10:11:34 +02:00
b9efe81bec
Keep database snapshots out of the repository
Maximilian Stubhan
2026-08-03 09:57:25 +02:00
4c5bfc223f
README.md aktualisiert
m.stubhan
2026-08-03 07:52:05 +00:00
2ba9b37aa7
Hand the front door to Entra, and keep the keys out of the build
Maximilian Stubhan
2026-07-31 14:57:32 +02:00
b3a0af2b8f
Talk to PostgreSQL directly, and let the pooled connection forget
Maximilian Stubhan
2026-07-31 08:45:26 +02:00
a66263a96e
Put the session context under the app's own control
Maximilian Stubhan
2026-07-30 19:01:39 +02:00
730521ee79
Keep the environment's identifiers out of the repository
Maximilian Stubhan
2026-07-30 18:39:20 +02:00
acbb03c4f5
Record the supported Node range in the lockfile
Maximilian Stubhan
2026-07-30 18:37:44 +02:00
ee1a38492c
Pin search_path, and close a write path that needed no login
Maximilian Stubhan
2026-07-28 11:54:02 +02:00
2cce101c4b
Sign in with Entra ID, and give the login screen something to look at
Maximilian Stubhan
2026-07-27 20:34:00 +02:00
27669e0359
Put the whole application on the OM model, and delete what it replaced
Maximilian Stubhan
2026-07-27 20:02:26 +02:00
4929252f45
Seed the OM model from scratch, and stop writing dates through UTC
Maximilian Stubhan
2026-07-27 15:06:10 +02:00
c2366e3408
Make the cut-over script safe to paste, and record the Azure design
Maximilian Stubhan
2026-07-27 14:39:57 +02:00
cce5c6b0ce
Cut-over SQL: migrate the existing org data into the OM model, drop the old
Maximilian Stubhan
2026-07-27 12:58:16 +02:00
35f17858d8
Build the org tree in the OM model as a tested pure function
Maximilian Stubhan
2026-07-27 12:52:02 +02:00
4b9c23472c
SAP OM: org units, jobs, positions, and a derived reporting line
Maximilian Stubhan
2026-07-27 12:47:14 +02:00
2776c33d08
Roll reporting up past an absent manager, and say so on both sides
Maximilian Stubhan
2026-07-27 12:03:34 +02:00
a0973cff66
Show the absence type in the employee list again
Maximilian Stubhan
2026-07-27 11:46:40 +02:00
a9bf439624
Collapse sequential query waves, and stop selecting an unshipped column
Maximilian Stubhan
2026-07-27 08:24:39 +02:00
8282d7f581
Rename Karenz to Langzeitabwesenheit and record its type
Maximilian Stubhan
2026-07-25 14:34:28 +02:00
37bb107cd4
Visual pass, clickable KPI tiles, and one consistent definition of status
Maximilian Stubhan
2026-07-25 13:39:49 +02:00
d9367a8ce4
Form primitives, keyboard-operable comboboxes, dialog focus, route states
Maximilian Stubhan
2026-07-25 13:10:52 +02:00
4be5f2264e
Drop agent tooling files and neutralise spec references
Maximilian Stubhan
2026-07-25 11:20:09 +02:00
8d978981b0
SVNR validation, CI, and a dependency/security pass
Maximilian Stubhan
2026-07-25 11:13:10 +02:00
79f0e19bf8
Org assignment history, mobile support, and a correctness pass
Maximilian Stubhan
2026-07-24 23:38:10 +02:00
f96773da0f
Reports/Export builder (CSV/XLSX), plus a security fix pass
Maximilian Stubhan
2026-07-15 20:34:27 +02:00
901c5c426e
Consolidation pass: HR-only access, effective-dated mutations, data integrity guards, test suite
Maximilian Stubhan
2026-07-14 20:32:20 +02:00
4299277af0
Upgrade dependencies to latest stable versions, migrate Tailwind CSS v3 to v4
Maximilian Stubhan
2026-07-14 16:00:29 +02:00
f7e5cd6e6e
Fix Bericht speichern: window.prompt() is unsupported in this browser environment, replaced with a proper Modal dialog
Maximilian Stubhan
2026-07-13 23:39:54 +02:00
131ca7ece7
Daten aendern: effective date, searchable UN country pickers, 2 more bugfixes
Maximilian Stubhan
2026-07-13 23:30:43 +02:00
e27db5f030
Phase 6/7: Reports builder and Audit log - all 7 routes now complete
Maximilian Stubhan
2026-07-13 23:11:23 +02:00
108da8d5e6
Phase 4: Org chart (Mitarbeiter/Positionen/Reorganisation) + one more RLS bugfix
Maximilian Stubhan
2026-07-13 22:57:49 +02:00
80cfaa1e04
Phase 5: Positions und Bereiche page with create/staff position modals
Maximilian Stubhan
2026-07-13 22:43:09 +02:00
f91a69147e
Phase 3: Hire wizard, draft resume, and two real SQL bugfixes
Maximilian Stubhan
2026-07-13 22:37:59 +02:00
366731ec85
Phase 2/3: Employees list/detail + mutation RPCs + action panels
Maximilian Stubhan
2026-07-13 22:07:38 +02:00
ef9852b09c
Phase 1: project foundation for Alpenwerk HR
Maximilian Stubhan
2026-07-13 21:44:28 +02:00
d3a5a9fa27
Add rebuild superprompt spec
Maximilian Stubhan
2026-07-13 20:53:36 +02:00