diff --git a/AGENTS.md b/AGENTS.md index cfbc894..afa569d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -135,6 +135,22 @@ Manual with validation: └─────────────────┘ (if tests fail, back to Build) ``` +## Agent Limitations + +**Important:** Agents may occasionally violate their role boundaries. Current enforcement relies on self-discipline rather than technical restrictions. + +**Known issues:** +- Commit Agent may modify code files when it should only commit changes made by Build Agent +- Agents may perform actions outside their designated capabilities + +**Best practices:** +- Review `git diff` output carefully before commits +- Question unexpected file changes (e.g., code changes from Commit Agent) +- Explicitly switch agents when crossing role boundaries +- If an agent violates boundaries, point it out and request the correct agent + +**Future improvement:** Technical enforcement of agent file permissions would prevent these violations. + ## Available Prompts Prompts streamline common workflows. Invoke with `@prompt-name`. diff --git a/README.md b/README.md index 2016624..abbd357 100644 --- a/README.md +++ b/README.md @@ -56,4 +56,4 @@ make deploy production --- -**Version:** 1.4.0 | **License:** MIT & CC BY-NC-SA 4.0 | **Site:** https://obscvrat.fi +**Version:** 1.5.0 | **License:** MIT & CC BY-NC-SA 4.0 | **Site:** https://obscvrat.fi diff --git a/scripts/bump_version.py b/scripts/bump_version.py index 6bc6906..da936c4 100755 --- a/scripts/bump_version.py +++ b/scripts/bump_version.py @@ -101,6 +101,24 @@ def update_changelog(changelog_path: Path, new_version: str) -> None: changelog_path.write_text('\n'.join(lines)) +def update_readme(readme_path: Path, new_version: str) -> None: + """ + Update README.md with new version. + + Args: + readme_path: Path to README.md + new_version: New version string + """ + content = readme_path.read_text() + # Update version in footer line + updated = re.sub( + r'\*\*Version:\*\* \d+\.\d+\.\d+', + f'**Version:** {new_version}', + content + ) + readme_path.write_text(updated) + + def main_function(bump_type: str) -> int: """ Main logic function. @@ -112,7 +130,8 @@ def main_function(bump_type: str) -> int: Exit code (0 for success) """ changelog_path = Path("CHANGELOG.md") - data_changelog_path = Path("website/data/changelog.txt") + static_changelog_path = Path("website/static/changelog.txt") + readme_path = Path("README.md") if not changelog_path.exists(): print(f"Error: {changelog_path} not found", file=sys.stderr) @@ -126,9 +145,13 @@ def main_function(bump_type: str) -> int: update_changelog(changelog_path, new_version) - # Copy to website/data for Hugo - data_changelog_path.parent.mkdir(parents=True, exist_ok=True) - data_changelog_path.write_text(changelog_path.read_text()) + # Copy to website/static for Hugo version.html partial + static_changelog_path.parent.mkdir(parents=True, exist_ok=True) + static_changelog_path.write_text(changelog_path.read_text()) + + # Update README.md version + if readme_path.exists(): + update_readme(readme_path, new_version) print(new_version) return 0 diff --git a/website/data/gear/fairfield-circuitry-unpleasant-surprise.yaml b/website/data/gear/fairfield-circuitry-unpleasant-surprise.yaml new file mode 100644 index 0000000..f82b74a --- /dev/null +++ b/website/data/gear/fairfield-circuitry-unpleasant-surprise.yaml @@ -0,0 +1,15 @@ +name: Unpleasant Surprise +manufacturer: Fairfield Circuitry +category: Pedal +technology: Analog +types: + - Fuzz + - Gate +controls: + - Volume + - Onset + - Treble Switch (2-position) + - Gain Switch (2-position) + - Crush Switch (2-position) +url: https://fairfieldcircuitry.com/products/the-unpleasant-surprise +description: Fuzz pedal with gate functionality and switchable tone controls diff --git a/website/static/changelog.txt b/website/static/changelog.txt index 9b5fcbb..c26f47c 100644 --- a/website/static/changelog.txt +++ b/website/static/changelog.txt @@ -5,13 +5,52 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.5.0] - 2026-02-27 + +### Added +- Vercel-style README header with centered logo and documentation links +- Social media preview image (Open Graph and Twitter Card meta tags) +- Mobile tap feedback for better touch interaction (opacity + scale on active) +- Gallery images to World Rat Conspiracy album page (7 inside images) +- Gallery images to Fridlyst / Rauhoitettu album page (2 inside images) +- Custom SVG icons for Instagram, Bandcamp, YouTube, and Camera +- Vignette effect on video thumbnails in media page + +### Changed +- Replaced Font Awesome library with custom SVG icons (~70KB saved) +- Moved Bandcamp/Discogs icons to album header next to artist name +- Icons align right on desktop, wrap below if needed, stack on mobile +- All footer and media icons now use consistent #b0b0b0 color + +### Fixed +- Camera icon now sharp and visible on media page hover states + ## [1.4.0] - 2026-02-10 ### Added +- Image gallery with lightbox navigation for music album pages +- Prev/next navigation in lightbox modal with keyboard support (arrow keys, ESC) +- Image counter in lightbox (e.g., "3 / 8") +- Download button for full-resolution images in lightbox +- fzf fuzzy finder integration for interactive menus with numbered fallback +- Inside/booklet images for Fridlyst / Rauhoitettu album (2 images) +- Inside/booklet images for World Rat Conspiracy album (7 images) +- ADR-017: Makefile as Universal Command Interface +- Python script for ADR creation (new_adr.py) replacing shell version ### Changed +- Updated YouTube channel URL from @iamrat2 to @obscvrat +- Updated Bandcamp URL from iamrat.bandcamp.com to obscvrat.bandcamp.com +- Music page gallery thumbnails display in 4-column grid +- Mobile layout: gallery appears after cover, icons moved below player +- Tight vertical spacing between thumbnail rows (0.1rem) +- Interactive menu selection uses fzf when available, falls back to numbered selection +- ADR Makefile now calls Python script instead of shell script ### Fixed +- Media manager now correctly reads live performance files from website/data/live +- Media manager handles both pure YAML and Hugo frontmatter formats +- Better error messages and debugging output for YAML operations ## [1.3.0] - 2026-02-05