--ISSUE
Content-Type: application/sprints
Sprints:

--ISSUE
Content-Type: application/issue
ID: 1
Type: feature
Title: implement KMP algorithm for string searching
Status: hold
Priority: high
Created: 2025-05-03
Relationships: 
Description: Implement the Knuth-Morris-Pratt algorithm for string searching.
             I require this for matching RFC 9112 boundaries of entities against
             a circular buffer.

--ISSUE
Content-Type: application/issue
ID: 2
Type: feature
Title: implement circular buffer
Status: done
Priority: high
Created: 2025-05-04
Relationships: 
Description: implement a simple circular buffer

--ISSUE
Content-Type: application/issue
ID: 3
Type: bugfix
Title: move unit tests to subdirectory
Status: done
Priority: high
Created: 2025-05-04
Relationships: 
Description: move the unit test suites to a unit/ subdirectory so that
             integration tests and benchmarks can be cleanly separated

--ISSUE
Content-Type: application/issue
ID: 4
Type: feature
Title: implement Rabin-Karp rolling hash algorithm
Status: done
Priority: high
Created: 2025-05-05
Relationships: 
Description: After testing a couple of string search algorithms, I've ditched
             the idea of using KMP as my use-case gives no advantage compared to
             naive searching. In addition I've came upon the challenge that many
             string search algorithms are optimized for search on a linear
             buffer, which in my case is not applicable as the implementation
             the search algorithm is for uses a circular buffer. Rabin-Karp
             seemed promising. I've come up with a different approach though,
             which is still based on rolling hashes, therefore, as a base, I
             need an implementation of the original Rabin-Karp rolling hash
             algorithm

--ISSUE
Content-Type: application/issue
ID: 5
Type: feature
Title: implement chunked rolling hash algorithm
Status: in-progress
Priority: high
Created: 2025-05-05
Relationships: 
Description: Implement my custom algorithm for doing rolling hash string search
             against a fixed length ring buffer

--ISSUE
Content-Type: application/issue
ID: 6
Type: feature
Title: implement importlib.resources handler for urllib
Status: done
Priority: high
Created: 2025-06-20
Relationships: 
Description: A handler that can be registered with an urllib.request
             OpenerDirector to open importlib.resources package files.

--ISSUE
Content-Type: application/issue
ID: 7
Type: feature
Title: setup advanced testing environment
Status: done
Priority: high
Created: 2025-06-20
Relationships: 
Description: copy the testing environment setup from
             byteb4rb1e.sphinxcontrib.ext

--ISSUE
Content-Type: application/issue
ID: 8
Type: bugfix
Title: rename package
Status: done
Priority: high
Created: 2025-06-20
Relationships: 
Description: use dot namespaces to make the package a little more elegant

--ISSUE
Content-Type: application/issue
ID: 9
Type: bugfix
Title: fix LICENSE reference
Status: done
Priority: high
Created: 2025-06-20
Relationships: 
Description: license specification is no longer a trove classifier in
             pyproject.toml, hence the reference to LICENSE must be changed

--ISSUE
Content-Type: application/issue
ID: 10
Type: feature
Title: pytest current test context fixtures
Status: done
Priority: high
Created: 2025-06-20
Relationships: 
Description: add fixtures for doing things in relation to the active testing
             context

--ISSUE
Content-Type: application/issue
ID: 11
Type: bugfix
Title: move testing utils out of utils
Status: done
Priority: high
Created: 2025-06-20
Relationships: 
Description: to shorten the namespace and also indicate that testing utilities
             are different from regular utilities

--ISSUE
Content-Type: application/issue
ID: 12
Type: feature
Title: simplify testing.fixtures.mock_pkg
Status: done
Priority: high
Created: 2025-06-21
Relationships: 
Description: Only bootstrap a package mock with the minimum requirements for a
             Python module and let the consumer handle the directory layout.

--ISSUE
Content-Type: application/issue
ID: 13
Type: bugfix
Title: fix unit tests for urllib PkgHandler
Status: done
Priority: high
Created: 2025-06-21
Relationships: 
Description: change of issue 12 wasn't properly reflected in urllib PkgHandler
             unit tests

--ISSUE
Content-Type: application/issue
ID: 14
Type: feature
Title: add compression support for urllib PkgHandler
Status: done
Priority: high
Created: 2025-06-21
Relationships: 
Description: with a proper content-type of the PkgHandler addinfourl object, a
             consumer can determine whether the file is compressed or not.

--ISSUE
Content-Type: application/issue
ID: 15
Type: bugfix
Title: modularize module containers
Status: open
Priority: high
Created: 2025-06-28
Relationships: 
Description: Even though importlib can find submodules through traversing paths
             instead of relying on __init__.py for every ancestor module, this
             is not supported by some modules like sphinx.ext.autosummary

--ISSUE
Content-Type: application/issue
ID: 16
Type: feature
Title: SQL-aware dataclass
Status: in-progress
Priority: low
Created: 2025-12-31
Relationships: 
Description: A dataclass that transparently maps onto an SQL datastore, with
             command generation for syncing data between data class and store

--ISSUE
Content-Type: application/issue
ID: 17
Type: feature
Title: recursive-descent HTML (DOM) parser
Status: in-progress
Priority: high
Created: 2025-12-31
Relationships: 
Description: Extend the built-in event-driven parser to be modeled after DOM
             recursive-descent HTML parser

--ISSUE
Content-Type: application/issue
ID: 18
Type: feature
Title: implement saas wrapper for Forgejo
Status: in-progress
Priority: medium
Created: 2026-06-06
Relationships: 
Description: Add a new sub-package byteb4rb1e.utils.saas.forgejo, supporting the
             same/similar operations as the Bitbucket wrapper
             (byteb4rb1e.utils.saas.bitbucket) against the Forgejo REST API:
             token-based authentication headers, repository existence checks,
             repository creation within an owner/organization, and clone URL
             construction. Implement as a thin layer over
             byteb4rb1e.utils.http.client, consistent with the existing
             Bitbucket and GitHub modules.
             Unlike Bitbucket (one global SaaS instance, hence the hardcoded
             api.bitbucket.org), Forgejo is self-hosted (e.g.
             git.code.tiararodney.com). The wrapper MUST take a host/instance
             URL parameter (or read one from config) rather than baking any
             specific instance in. This is the biggest API-surface difference
             from the bitbucket module.
             Bitbucket's clone_url constructs SSH only. Forgejo's repository
             API returns both clone_url (HTTPS) and ssh_url, and HTTPS is
             needed in CI (no SSH host keys on the Woodpecker runner). The
             wrapper SHOULD expose both, either as ssh_clone_url and
             https_clone_url, or a single clone_url(..., scheme="ssh"|"https").

--ISSUE
Content-Type: application/issue
ID: 19
Type: feature
Title: config framework with CLI integration
Status: done
Priority: medium
Created: 2026-06-06
Relationships: 
Description: Add byteb4rb1e.utils.config: INI-backed config dataclasses where a
             dataclass is the single source of truth for settings, with three
             layers (field defaults, INI file sections, CLI overrides). Includes
             INI loading/writing (load_ini, ensure_ini, ensure_ini_multi,
             format_section), per-flag CLI integration (add_config_arguments,
             apply_cli_overrides), dotted-path overrides via a unified --config
             KEY=VALUE flag (apply_overrides, format_help), and the companion
             argparse KeyValueAction (byteb4rb1e.utils.argparse.actions) that
             accumulates KEY=VALUE pairs into a dict.

--ISSUE
Content-Type: application/issue
ID: 20
Type: feature
Title: cookie-persisting HTTP session client
Status: done
Priority: medium
Created: 2026-06-06
Relationships: 
Description: Extend byteb4rb1e.utils.http.client with an HttpSession class that
             persists cookies across requests via http.cookiejar (suitable for
             login followed by cookie-authenticated page fetches), supporting
             GET with query params, form-encoded POST, default/per-request
             header merging, and HTTPError-to-response conversion. Also refactor
             HttpResponse into a frozen dataclass with text as a derived
             property.
