web-v0.7.0
career-ops-hq/career-opsweb-v0.7.0Aug 18, 2026by github-actions[bot]
AI Summary
Adds navigation and recording capabilities to the Apply page, introduces the Grok Build CLI to the runtime picker, and improves security by taking the core tracker lock.
Key Highlights
- Added navigation and recording features to the Apply page.
- Added Grok Build CLI to the web runtime picker.
- Started taking the core tracker lock in POST /api/status.
- Finished Unicode company keys for explore + registry.
New Features
- Apply page navigation and recording.
- Grok Build CLI integration.
- Core tracker lock acquisition in web API.
Full Release Notes
## [0.7.0](https://github.com/santifer/career-ops/compare/web-v0.6.1...web-v0.7.0) (2026-08-18)
### Features
* **web:** give the Apply page a way back and a way to record that you applied ([#2735](https://github.com/santifer/career-ops/issues/2735)) ([05cc972](https://github.com/santifer/career-ops/commit/05cc972c2d45471ba45a8457c83f488915fc4fa6))
### Bug Fixes
* **deps:** make js-yaml imports work on both 4.x and 5.x ([#2656](https://github.com/santifer/career-ops/issues/2656)) ([6466b18](https://github.com/santifer/career-ops/commit/6466b18382aa2cb9390f5d2425a63ae36bcea085))
* **deps:** patch both HIGH advisories in web (js-yaml 4.3.1, nanoid 3.3.18) ([a094ec9](https://github.com/santifer/career-ops/commit/a094ec9ddbe8f21e8db6dba87f548532af2a820e))
* **deps:** raise the js-yaml floor to ^4.3.1 and guard it ([#2767](https://github.com/santifer/career-ops/issues/2767)) ([5b18a96](https://github.com/santifer/career-ops/commit/5b18a960da803477a475a1856138561f83edc035))
* **keys:** stop the dotted-I fix from collapsing Polish, Lithuanian and Maltese ([5df43e7](https://github.com/santifer/career-ops/commit/5df43e7133745ad814421f2dd4c5afce2e75c0e1))
* **keys:** stop the Turkish dotted capital from splitting one employer in two ([462d276](https://github.com/santifer/career-ops/commit/462d27653eda17c3305dfe74f2ecdc5b21fb79e6))
* **scan:** take the shared lock for scan-history.tsv appends ([#2639](https://github.com/santifer/career-ops/issues/2639)) ([8e264c4](https://github.com/santifer/career-ops/commit/8e264c4b24a04fc6f0799b2e5c9a0479ed4e16e0))
* **web:** add Grok Build CLI to the web runtime picker ([#2688](https://github.com/santifer/career-ops/issues/2688)) ([af0d818](https://github.com/santifer/career-ops/commit/af0d8183937a43397a127e75967b906fece86364))
* **web:** analytics tells an offer-holder they have 0 interviews (and nudges them to try harder) ([#2410](https://github.com/santifer/career-ops/issues/2410)) ([8f2b415](https://github.com/santifer/career-ops/commit/8f2b41505997c0f15d86ee617304701239328a12))
* **web:** anchor the fallback stderr classifier so a word can't fail a run ([#2882](https://github.com/santifer/career-ops/issues/2882)) ([be62e3e](https://github.com/santifer/career-ops/commit/be62e3ef28fcbcc18f1cddec3269c8da00be645c))
* **web:** carry the posted: segment so web evaluations reach the POSTED column ([#2899](https://github.com/santifer/career-ops/issues/2899)) ([6eece73](https://github.com/santifer/career-ops/commit/6eece731b36ea91286e984289518839d9ab5c342))
* **web:** detect OpenCode in its default install directory ([#1794](https://github.com/santifer/career-ops/issues/1794)) ([c10b887](https://github.com/santifer/career-ops/commit/c10b88764a793e4176688f60aa066e96eff1c3a4))
* **web:** emit the posting URL in the tracker-additions TSV so web runs join the dedup ([#2833](https://github.com/santifer/career-ops/issues/2833)) ([3c68721](https://github.com/santifer/career-ops/commit/3c68721fc28b98fc127ff9f5a36ac71188215750))
* **web:** enforce that no runtime grants itself blanket write permission ([#2875](https://github.com/santifer/career-ops/issues/2875)) ([9ba6ebf](https://github.com/santifer/career-ops/commit/9ba6ebf2f94dbd2772af9b32572af25429b303fc))
* **web:** finish Unicode company keys for explore + registry ([#2668](https://github.com/santifer/career-ops/issues/2668)) ([c294242](https://github.com/santifer/career-ops/commit/c294242dbb6a78a03bac738f397c568c02316971))
* **web:** fold Turkish dotted capitals in status keys, and stop hand-copying the state list ([#2786](https://github.com/santifer/career-ops/issues/2786)) ([e1a0961](https://github.com/santifer/career-ops/commit/e1a09616818d2dd84b249a7805078bbfeefae669))
* **web:** keep Codex JSONL + exit code authoritative for web scoring ([#2102](https://github.com/santifer/career-ops/issues/2102)) ([2d43601](https://github.com/santifer/career-ops/commit/2d436019b60484e97576dd36e9ce324d2585cd6a))
* **web:** let the pipeline table scroll horizontally instead of clipping on narrow screens ([#2363](https://github.com/santifer/career-ops/issues/2363)) ([632031c](https://github.com/santifer/career-ops/commit/632031c9cb8ae95311a36310bb6cd2713497136c))
* **web:** make the tracker reader agree with parseTrackerRow on row shape ([#2565](https://github.com/santifer/career-ops/issues/2565)) ([4fea438](https://github.com/santifer/career-ops/commit/4fea43835e940be62011f12afab4f35cb265c4ac))
* **web:** prevent Codex run jobs from waiting on stdin ([#1973](https://github.com/santifer/career-ops/issues/1973)) ([9a139a2](https://github.com/santifer/career-ops/commit/9a139a2aac44ae5e8da8e372a587a322ba99f149))
* **web:** read target_roles with the shape it is actually written in ([#2750](https://github.com/santifer/career-ops/issues/2750)) ([5f5c06d](https://github.com/santifer/career-ops/commit/5f5c06d4b257b4ef55dfedc2f1d1c0eb26bc9789))
* **web:** show the retry card, not the update-checkout panel, for runtime scan errors ([#1904](https://github.com/santifer/career-ops/issues/1904)) ([29c0d69](https://github.com/santifer/career-ops/commit/29c0d69cb0e2c2c3507e2712eaf04f1633244722))
* **web:** skip {n}-RESERVED.md sentinels when looking up reports ([#1967](https://github.com/santifer/career-ops/issues/1967)) ([5f4842e](https://github.com/santifer/career-ops/commit/5f4842e513fe45092395254ba51bc220676e598a))
* **web:** stop the 16-chip cap from truncating the user's own portals.yml ([#2749](https://github.com/santifer/career-ops/issues/2749)) ([a5af949](https://github.com/santifer/career-ops/commit/a5af94900b981105f2560ee271e22a00479093a9))
* **web:** strip the author letter from any lettered block, not just A-G ([#2420](https://github.com/santifer/career-ops/issues/2420)) ([630709a](https://github.com/santifer/career-ops/commit/630709a3cad0297b7305752cfdf6ed5b0469b4d8))
* **web:** take the core tracker lock in POST /api/status ([#2903](https://github.com/santifer/career-ops/issues/2903)) ([d9c4fd0](https://github.com/santifer/career-ops/commit/d9c4fd0a0fa191717f1f68663b5eaa11c0351ea6))