<feed xmlns='http://www.w3.org/2005/Atom'>
<title>stock, branch master</title>
<subtitle>Bitweaver stock package repository
</subtitle>
<id>https://git.rdm1.uk/stock/.git/atom?h=master</id>
<link rel='self' href='https://git.rdm1.uk/stock/.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/'/>
<updated>2026-06-21T10:20:08Z</updated>
<entry>
<title>Extend KLID enrichment to assembly tab on movement view</title>
<updated>2026-06-21T10:20:08Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T10:20:08Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=9a63cb32e863030d1bd7c0705e12fa83c0cf0d1f'/>
<id>urn:sha1:9a63cb32e863030d1bd7c0705e12fa83c0cf0d1f</id>
<content type='text'>
Apply the same linked_title suffix to the assembly xref group rows so
kitlocker components show their KLID there too. INNER JOIN on KLID means
assemblies (which have none) are untouched.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Show KLID in brackets on movement xref quantity line items</title>
<updated>2026-06-21T10:15:46Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T10:15:46Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=aa7304a1f1f23199a8011c2385b638653e19a687'/>
<id>urn:sha1:aa7304a1f1f23199a8011c2385b638653e19a687</id>
<content type='text'>
Extend the enrichBomDisplay JOIN to also fetch the KLID xref and append
it to linked_title for any component that has a kitlocker listing.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Persist filter params through smartlink sort clicks on list pages</title>
<updated>2026-06-21T09:10:17Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T09:10:17Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=d494e495715e1dca056a05442e83dfb16a0c0354'/>
<id>urn:sha1:d494e495715e1dca056a05442e83dfb16a0c0354</id>
<content type='text'>
Populate listInfo['parameters'] on list_movements, list_assemblies, and
list_components so icontrol carries part_content_id/ref_type/user_id/
gallery_id/hide_kitlocker through sort URLs. Wire icontrol=$listInfo on
list_movements.tpl sort headers which were previously missing it.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Append KLID in brackets to component title where available</title>
<updated>2026-06-21T09:01:03Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T09:01:03Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=8829bafaa683836e0ae16ead818b50ded9ec94f9'/>
<id>urn:sha1:8829bafaa683836e0ae16ead818b50ded9ec94f9</id>
<content type='text'>
Add klid correlated subquery to both load() and getList(), then append
it in getTitleFromHash(). Enrich title in the getList() foreach so list
pages see the updated value without calling getTitleFromHash() themselves.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix hide_kitlocker filter not persisting when unchecked</title>
<updated>2026-06-21T08:35:06Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T08:35:06Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=c3608912295032da3733e41d04a4dc5ee49b3cc8'/>
<id>urn:sha1:c3608912295032da3733e41d04a4dc5ee49b3cc8</id>
<content type='text'>
Unchecked checkboxes send nothing in the GET request, so the default-on
guard reset the filter every time. Add a hidden sentinel field so PHP can
distinguish a fresh page load (apply default) from a form submission with
the box deliberately unchecked.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix assembly search returning no results in add_prebuild</title>
<updated>2026-06-21T07:58:42Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-21T07:58:42Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=df3841bcb4dc82103d3fca46a4257446680bb51a'/>
<id>urn:sha1:df3841bcb4dc82103d3fca46a4257446680bb51a</id>
<content type='text'>
array_map over the content_id-keyed getList() result preserves associative
keys, so json_encode produced a JS object instead of an array — making
items.filter() throw TypeError. Wrap with array_values() to reindex.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>list_kitlocker.tpl: switch to {pagination} plugin (same fix as list_stock)</title>
<updated>2026-06-19T13:54:42Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-19T13:54:42Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=468ab44fb7db3abe6ff28ea6085a7e0b64b0c185'/>
<id>urn:sha1:468ab44fb7db3abe6ff28ea6085a7e0b64b0c185</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>list_stock.tpl: switch from {include} to {pagination} plugin for page links</title>
<updated>2026-06-19T13:54:10Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-19T13:54:10Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=a0ca759233eca5363d6afd463ec6f0b8e09d645c'/>
<id>urn:sha1:a0ca759233eca5363d6afd463ec6f0b8e09d645c</id>
<content type='text'>
{include} skips the plugin's setup of \$pgnUrl from SCRIPT_NAME, so page
link URLs were malformed. Matches the pattern used by list_movements and
list_assemblies.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Fix list_stock pagination: assembly selector was clobbering \$listHash</title>
<updated>2026-06-19T13:48:22Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-19T13:48:22Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=23bc437d083984b75e3c261f80239c0f7926c6b6'/>
<id>urn:sha1:23bc437d083984b75e3c261f80239c0f7926c6b6</id>
<content type='text'>
\$listHash = ['max_records' =&gt; 500] for the assembly dropdown overwrote the
pagination listHash, making postGetList see max_records=500 and calculate
total_pages=1. Renamed to \$asmHash.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add pagination to list_stock.php, default 20 records per page</title>
<updated>2026-06-19T13:36:40Z</updated>
<author>
<name>Lester Caine</name>
<email>lester@lsces.co.uk</email>
</author>
<published>2026-06-19T13:36:40Z</published>
<link rel='alternate' type='text/html' href='https://git.rdm1.uk/stock/.git/commit/?id=8faef82f3ad9eafa081e74a84cb68d80d4a44c2c'/>
<id>urn:sha1:8faef82f3ad9eafa081e74a84cb68d80d4a44c2c</id>
<content type='text'>
General list only (BOM view is assembly-bounded). Full result set is fetched
and grouped in PHP first so shortages filter and CSV export see all rows;
array_slice applies the page window after CSV exits. Extra URL params
(user_id, find, shortages) are threaded into listInfo for the pagination links.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
