Commit Graph
21 Commits
Author SHA1 Message Date
Rudy Mizrahi Celekli d590aa1b10 fix(reset): clear document entries while preserving scaffolds (#580)
* fix(reset): clear document entries while preserving scaffolds

* fix(reset): preserve scaffolds across Bash versions

* docs(reset): keep document inventory before presentation heading
2026-10-18 07:33:41 +02:00
Rudy Mizrahi Celekli 3b16f80595 docs(jobindex-search): align search examples with the actual CLI contract (#579)
* docs(jobindex-search): align search examples with the actual CLI contract

The posted-today skill example omits the query that the shipped CLI requires, so copying it exits MISSING_REQUIRED. Supply a keyword and make the required flag explicit. Replace stale JSON-endpoint/card-parser search documentation with the implemented HTML Stash route and emitted field behavior.

Run the example read directly from SKILL.md through a real CLI subprocess with loopback HTTP fixtures. Keep a separate query/page routing control; no live portal requests or production-code changes.

* test(jobindex-search): cover Windows documentation newlines
2026-10-18 07:31:12 +02:00
Rudy Mizrahi Celekli 894e3917ba fix(salary): preserve Unicode company identity in lookups (#570)
* fix(salary): preserve Unicode company identity in lookups

* fix(salary): restore accent folding after Nordic spellings

Address MadsLorentzen review feedback on #570: keep Unicode identity normalization and restore ASCII-typed accented-name controls on the documented CLI path.
2026-10-18 07:28:42 +02:00
Rudy Mizrahi Celekli 5a29fdc711 fix(upstream): preserve selected refs in companion commands (#591)
* fix(upstream): preserve selected refs in companion commands

* fix(upstream): quote companion command arguments

* docs(changelog): record fix for #591
2026-10-18 07:26:10 +02:00
Rudy Mizrahi Celekli 239dad775b fix(upstream): distinguish new paths from fork deletions (#585)
* fix(upstream): distinguish new paths from fork deletions

* docs(changelog): record fix for #585
2026-10-18 07:24:01 +02:00
Rudy Mizrahi Celekli a748d89fe6 fix(upstream): flag incomplete framework comparisons (#583)
* fix(upstream): flag incomplete framework comparisons

* docs(changelog): record fix for #583
2026-10-18 07:21:32 +02:00
Rudy Mizrahi Celekli 991bda5dd2 fix(salary): reject non-finite workbook numbers (#572)
* fix(salary): reject non-finite workbook numbers

* docs(changelog): record fix for #572
2026-10-18 07:19:24 +02:00
Rudy Mizrahi Celekli ef4d12711c fix(salary): parse Unicode whitespace grouping (#592)
* fix(salary): parse Unicode whitespace grouping

* docs(changelog): record fix for #592
2026-10-18 07:16:55 +02:00
Rudy Mizrahi Celekli 8cc2efbf21 fix(salary): prefer exact workbook identity headers (#571)
* fix(salary): prefer exact workbook identity headers

* docs(changelog): record fix for #571
2026-10-18 07:14:26 +02:00
Rudy Mizrahi Celekli 652508a929 fix(salary): skip chart-only workbook tabs (#590)
* fix(salary): skip chart-only workbook tabs

* docs(changelog): record fix for #590
2026-10-18 07:11:57 +02:00
Rudy Mizrahi Celekli b7be711ca5 fix(salary): distinguish absent indexes from suppression (#584)
* fix(salary): distinguish absent indexes from suppression

* docs(changelog): record fix for #584
2026-10-18 07:09:27 +02:00
Rudy Mizrahi Celekli 9940a84037 fix(salary): skip whitespace-only workbook company rows (#576)
* fix(salary): skip whitespace-only workbook company rows

* docs(changelog): record fix for #576
2026-10-18 07:07:18 +02:00
Rudy Mizrahi Celekli 0b22e55e8f fix(salary): validate metadata before rendering lookups (#575)
* fix(salary): validate metadata before rendering lookups

* docs(changelog): record fix for #575
2026-10-18 07:05:10 +02:00
Rudy Mizrahi Celekli 060f2dbe78 fix(portal-clis): reject missing Danish option values before dispatch (#573)
* fix(portal-clis): reject missing Danish option values before dispatch

The Bunli parser discards known bare options before schema validation, silently dropping filters or applying defaults. Extend the existing pre-dispatch guards across the four Danish portals while preserving built-in switches, valued and equals-form arguments, and existing unknown-flag errors.

Actual CLI subprocess regressions deny and record every fetch to demonstrate that missing filters reach request construction on master. Valued-option and help controls keep accepted command forms covered without contacting any portal.

* docs(changelog): record fix for #573
2026-10-18 07:02:41 +02:00
Rudy Mizrahi Celekli 129367dbca fix(freehire-search): require values for named search options (#568)
* fix(freehire-search): require values for named search options

* docs(changelog): record fix for #568
2026-10-18 07:00:12 +02:00
Rudy Mizrahi Celekli 2017521d2e test(portal-clis): isolate valid flag controls from live services (#581)
* test(portal-clis): isolate valid flag controls from live services

The LinkedIn and Freehire positive controls spawned live search CLIs and only checked for the absence of BAD_ARG, so attempted portal requests still left a green suite. Use loopback responses and assert successful output plus the constructed freshness, pagination and result-limit contract.

LinkedIn cards are verbatim excerpts from portapulito's actual captured response in PR #153; fixture provenance and original hashes are retained. Four Danish validation suites already stop at required-argument guards and need no change. This isolates these controls rather than claiming a whole-CI egress policy.

* docs(changelog): record fix for #581
2026-10-18 06:57:43 +02:00
Rudy Mizrahi Celekli 23876bfa95 fix(linkedin-search): preserve description paragraph and list breaks (#567)
* fix(linkedin-search): preserve description paragraph and list breaks

Clean rendered description lines separately so whitespace normalization does not erase paragraph and list boundaries in JSON and plain output. Exercise the documented detail CLI against a loopback-served captured response, with field and closed-status controls.

Credits: portapulito diagnosed this behavior and supplied the captured guest-response fixture in upstream PR #153, which was closed as an accidental personalized-fork submission. This independent implementation revives only that correctness fix and its fixture evidence.

* docs(changelog): record fix for #567
2026-10-18 06:55:15 +02:00
Rudy Mizrahi Celekli b2439a8011 fix(jobbank-search): retain all documented repeated filter values (#577)
* fix(jobbank-search): retain all documented repeated filter values

Declare the six array-capable search options repeatable in Bunli metadata. Without it, the CLI parser overwrites earlier occurrences before the handler receives the array, so documented OR filters only search the final value.

Exercise actual search CLI subprocesses through loopback HTTP and assert every RSS and total-count request retains repeated values. Cover all six filters, mixed equals/comma input, and unchanged single-value input; no live portal requests.

* docs(changelog): record fix for #577
2026-10-18 06:52:46 +02:00
Rudy Mizrahi Celekli 31a3320fe9 docs(portal-clis): correct Danish CLI installation paths (#589)
* docs(portal-clis): correct Danish installation working directories

* docs(changelog): record fix for #589
2026-10-18 06:50:17 +02:00
Rudy Mizrahi Celekli 1b22a38d3f fix(upstream-triage): suggest dependent cherry-picks in ancestry order (#574) 2026-10-17 20:04:06 +02:00
Rudy Mizrahi Celekli 889b82bf13 fix: expire scored jobs with passed preserved deadlines (#560) 2026-10-15 11:39:10 +02:00