Skip to content

v0.0.5

Choose a tag to compare

@github-actions github-actions released this 07 May 16:59
· 89 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.0.5
68bf76e

Changelog

  • 1f07e82 Add Apache-2.0, REUSE.toml, and CODEOWNERS
  • 8dcef80 Add Executive Summary; mark location config done
  • df6a6ce Add GUID to BTP Subaccount and tool description
  • ced67e5 Add SAP Developer Ecosystem and update CLI
  • b0cf098 Add external APIs consumption reference
  • 7f74f55 Add internationalization support for various commands and messages
  • 2b82963 Add privacy statement and update README
  • 3350964 Add third-party dependencies reference
  • aeb7661 Add tutorial details to backlog document
  • e4326b7 Add tutorial inline-images plan and VitePress spec
  • acb6a17 Brew cask update for sap-devs version v0.0.4
  • f8f0104 Enhance locale normalization in stripTag function
  • b84a7e9 Mark BTP & structured context tasks done
  • 2a045ca Mark Inject Enhancements TODO as done
  • ad2fe9b Mark TODO items done and trim MCP proposal
  • ec428ef Mark sap-devs events TODO as done
  • 245a1b3 Mark tutorial instructor phase as done in TODO
  • 50a77a2 Merge branch 'main' into feature/news-resilience
  • 8d67096 Merge branch 'main' of https://github.com/SAP-samples/sap-devs-cli
  • e2016f7 Merge branch 'main' of https://github.com/SAP-samples/sap-devs-cli
  • 16c1bad Merge branch 'main' of https://github.com/SAP-samples/sap-devs-cli
  • c45fe2a Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • f8498a4 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • ced95f1 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • cd05c56 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • c06f150 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • dadf44b Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 7125253 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 4a08c04 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 50c22e5 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • cde7f42 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 5ce532a Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 9b32f06 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 25e7e68 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • a680c5b Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 23a77d6 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • f6b58c4 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 4897d1f Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 7dac43d Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 35544b9 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 2c6def8 Merge branch 'main' of https://github.tools.sap/developer-relations/sap-devs-cli
  • 0501fcd Merge pull request #1 from SAP-samples/migrate/github-com-module-path
  • 32e5983 Merge pull request #10 from I347491/tipwork
  • 09d1018 Merge pull request #11 from developer-relations/feat/dynamic-content-injection
  • 36e655a Merge pull request #12 from developer-relations/feat/html-content-conversion
  • f708aa3 Merge pull request #13 from developer-relations/feat/inject-size-budgeting
  • af641fc Merge pull request #14 from developer-relations/feature/base-layer
  • 5ec4feb Merge pull request #15 from developer-relations/feature/builtin-profiles
  • 53347be Merge pull request #16 from developer-relations/feature/additive-content-layers
  • d4bed27 Merge pull request #17 from developer-relations/feat/base-pack-preamble
  • b7f097a Merge pull request #18 from developer-relations/feat/base-pack-preamble
  • 17867f3 Merge pull request #19 from developer-relations/feat/config-location
  • 69ebc84 Merge pull request #2 from SAP-samples/feature/sync-progress-ui
  • 7c7427b Merge pull request #20 from developer-relations/feat/hook-system
  • 88a553d Merge pull request #21 from developer-relations/feat/tip-rotation
  • 0c05249 Merge pull request #22 from developer-relations/feat/inject-uninstall
  • bb9b9bd Merge pull request #23 from developer-relations/feat/inject-status
  • 855877d Merge pull request #24 from developer-relations/feat/news
  • a91d1a6 Merge pull request #25 from developer-relations/feat/news
  • 0c4270c Merge pull request #26 from developer-relations/feat/influencers
  • d886ea1 Merge pull request #27 from developer-relations/feat/events
  • 86f3979 Merge pull request #28 from developer-relations/feat/events
  • 7d32a82 Merge pull request #29 from developer-relations/feat/khoros-events
  • 05f1c99 Merge pull request #3 from SAP-samples/feature/os-scheduler
  • 1f420a7 Merge pull request #30 from developer-relations/feat/new-adapters
  • 848548a Merge pull request #31 from developer-relations/feat/samples
  • 2e3d62f Merge pull request #32 from developer-relations/feat/youtube-integration
  • f487f6a Merge pull request #33 from developer-relations/feat/discovery-center
  • d251049 Merge pull request #34 from developer-relations/feat/tutorials
  • 24258ff Merge pull request #35 from developer-relations/worktree-feat+learning-journeys
  • 99b4604 Merge pull request #4 from SAP-samples/feature/tray-lifecycle
  • 0e582ae Merge pull request #5 from SAP-samples/feature/wails-tray
  • 5cb2e74 Merge pull request #6 from SAP-samples/feature/gui-config-editor
  • 8770c48 Merge pull request #7 from SAP-samples/feature/news-resilience
  • 66524f2 Merge pull request #8 from SAP-samples/worktree-feature+mcp-server-improvements
  • b9a37a2 Merge pull request #9 from SAP-samples/fix/mcp-quality-improvements
  • 97ea358 Remove finished items from TODO
  • 6063ca0 Remove obsolete HTML files and update CLAUDE.md with SAP Developer Context
  • b2b398d Remove pruned worktree aritfact
  • f6d0884 Resolve MCP-to-MCP orchestration; add analysis
  • 974ea8f Scoop update for sap-devs version v0.0.4
  • cffe80b Support BTP TargetHierarchy array format
  • 5bd061d TODO - can AI be used as a content instructor for tutorials or CodeJams
  • 64f77d8 build: copy cities.json into tray binary data dir at build time
  • 539e0d0 chore(deps): update Go dependencies
  • 8c1ce4a chore(schema): add hook.schema.json and wire in VS Code settings
  • 2abde3e chore: add html-to-markdown/v2 and cascadia dependencies
  • 322a660 chore: fix go.mod direct/indirect markers after convert.go creation
  • 97163b5 chore: ignore sap-devs-news build artifact
  • a7e0c8c chore: mark inject --status as done in TODO.md
  • b0942f9 chore: mark inject --uninstall as done in TODO.md
  • 89499ae chore: migrate module path to github.com/SAP-samples/sap-devs-cli
  • 05d1c00 chore: redirect to github.com/SAP-samples/sap-devs-cli
  • 1301f9d chore: restore README.md after migration redirect
  • 361ef3d chore: update news episode index
  • 5b39b23 chore: update news episode index
  • 6a7c711 chore: update news episode index
  • 2b5a925 chore: update news episode index
  • c5e00ca chore: update news episode index
  • a0d1462 chore: update news episode index
  • e5d2092 chore: update news episode index
  • fadfd87 ci: add tray binary build and release workflow
  • d429ed2 content(base): add preamble.md with AI agent priority instruction
  • 22cac3a content(base): add tip-on-session-start hook; wire hook_config in claude-code adapter
  • 498a47e content(cap): remove Agent Instructions section (moved to base preamble)
  • 786e603 content(cap): update sync:fetch marker with format, selector, and max_lines=1000
  • 475732f content(tapestry): finalize consolidation of tool-injection content and add AI-priority preamble
  • 54b76ba content: add curated discovery.yaml for base, cap, btp-core, abap packs
  • 5c75cc8 docs(TODO): add inject enhancements for uninstall and status commands
  • ef6e7f4 docs(adapter): clarify budget guard behaviour with base packs
  • 2d6363a docs(content): document additive layers feature and editor schema setup
  • 7c9468e docs(content): document base pack field and base layer authoring guidance
  • 534e54e docs(content): document built-in all and minimal profiles
  • c0e1a5d docs(content-authoring): document preamble.md — structure, order, constraints, layer rules
  • 60fed09 docs(init): clarify detect keyword is intentional English-only sentinel
  • c02048a docs(plan): adapter-specific rendering implementation plan
  • 79790be docs(plan): add base layer implementation plan
  • 5387a9f docs(plan): add built-in profiles implementation plan
  • f56571e docs(plan): add hook system implementation plan
  • fe9bd3a docs(plan): additive content layers implementation plan
  • aef488f docs(plan): base pack preamble implementation plan
  • 1f3d3b9 docs(plan): fix blocking review issues in base layer plan
  • 936887c docs(spec): adapter-specific rendering design
  • f7b9df0 docs(spec): add base layer design
  • 4e9a722 docs(spec): add built-in profiles design (all and minimal)
  • cfdf6b8 docs(spec): add hook system design spec
  • b2b453f docs(spec): additive content layers design
  • 20fb5cc docs(spec): address spec review feedback on preamble design
  • 1c21932 docs(spec): base pack preamble and agent instructions consolidation
  • a4cf380 docs(spec): fix markdown lint warnings in base layer design
  • d05b0cc docs(spec): fix review issues in built-in profiles design
  • fc0acf2 docs(todo): remove completed adapter-specific rendering item
  • 10fdaba docs: add BTP active context detection design spec
  • 637e5d4 docs: add BTP active context detection implementation plan
  • 7136aa6 docs: add Claude Code setup guide, MCP server docs, and CLAUDE.md refinements
  • 4f44657 docs: add Discovery Center integration design spec
  • b9c5723 docs: add Discovery Center integration implementation plan
  • 2903dc5 docs: add Friday Developer News hook design spec
  • 7a578cb docs: add Friday news tip override design spec
  • 875f05c docs: add GUI config editor design spec
  • 2e31e2c docs: add GUI config editor implementation plan
  • 58506ac docs: add MCP server design spec
  • d39cc7c docs: add MCP server improvements design spec
  • ed1f68d docs: add MCP server improvements implementation plan
  • 86e8ba5 docs: add Phase 2b design spec (reordering + bulk editing)
  • 03a9194 docs: add Phase 2c content creation wizard design spec
  • bd1b88a docs: add What's New injection block design spec
  • 24a2e49 docs: add What's New injection block implementation plan
  • 5b27f32 docs: add YouTube integration design spec
  • f9167b1 docs: add YouTube integration implementation plan (12 tasks)
  • ff6f263 docs: add config location feature spec
  • 6ed1233 docs: add config location implementation plan
  • 4c57e98 docs: add constraints injection design spec
  • 82d1044 docs: add constraints injection implementation plan
  • 9b0ad51 docs: add content editing UI Phase 1 design spec
  • 8e35b36 docs: add content editing UI Phase 1 implementation plan
  • d2712b8 docs: add content-authoring guide covering markers, agent instructions, and token budget
  • 123617a docs: add design spec for MCP CLI wrappers (BTP + CF)
  • 3f4a9e5 docs: add design spec for Windsurf and Gemini Code Assist adapters
  • b098531 docs: add design spec for tip install/uninstall and internal/shellhook
  • 7432d81 docs: add dynamic content injection design spec
  • aa6f13a docs: add dynamic content injection implementation plan
  • 10b2473 docs: add dynamic injection design spec
  • a3315fa docs: add dynamic injection implementation plan
  • 8ca0c0d docs: add error pattern library design spec
  • 986b902 docs: add error pattern library implementation plan
  • 6207c2b docs: add events Phase 2 implementation plan
  • 9f7e4ed docs: add events command Phase 1 implementation plan
  • c3eade1 docs: add events command design spec and content editing UI backlog
  • 1b5de8c docs: add events command to CLI commands table
  • 5985782 docs: add html content conversion design spec
  • 3c310e4 docs: add html content conversion implementation plan
  • 9e6022b docs: add implementation plan for Windsurf and Gemini Code Assist adapters
  • 3a76bfb docs: add implementation plan for tip install/uninstall
  • f6f1a6f docs: add implementation plans for Friday tip override and news hook
  • 590eed1 docs: add influencers command design spec
  • 7c1c4ea docs: add influencers command implementation plan
  • 21339e9 docs: add influencers command to CLI commands table
  • 56330ef docs: add inject --status design spec
  • b33330b docs: add inject --uninstall design spec
  • 91cc248 docs: add inject size budgeting design spec
  • 862656a docs: add inject size budgeting implementation plan
  • 62c2e6c docs: add inject verbosity modes design spec
  • c2b3759 docs: add learn command design spec
  • 4eea4a0 docs: add learn command implementation plan
  • ab2c6e2 docs: add learning command to CLI reference
  • d498688 docs: add learning command to CLI reference
  • a1a9eeb docs: add learning journeys architecture section to CLAUDE.md
  • fbc4b9f docs: add learning journeys feature design spec
  • a7abc64 docs: add learning journeys feature design spec
  • 0d5b2f7 docs: add learning journeys implementation plan
  • c70a126 docs: add learning journeys implementation plan
  • 498bf95 docs: add news command design spec
  • e1956e4 docs: add news command implementation plan
  • 9212891 docs: add project detection and health check design spec
  • f9dd8d4 docs: add project detection and health check implementation plan
  • 30828cb docs: add samples feature to CLAUDE.md and content authoring guide
  • 2febe61 docs: add scratch/session context design spec
  • 1543fb2 docs: add scratch/session context implementation plan
  • 953ae1d docs: add service commands to CLI reference and architecture
  • 9718841 docs: add structured context.md conventions design spec
  • 51101fa docs: add structured context.md implementation plan
  • 8529c5b docs: add sync progress UI design spec
  • 9496b45 docs: add sync progress UI implementation plan
  • 11cb201 docs: add system tray & GUI companion design spec
  • 01826c9 docs: add system tray implementation plans (3 parts)
  • cfef23d docs: add tray binary architecture to CLAUDE.md
  • d8c2d9d docs: add tray commands and architecture to CLI reference
  • e46a920 docs: add tutorial guided execution tools and Phase 3 analysis to mcp-server.md
  • 341535c docs: add tutorial guided execution tools and Phase 3 analysis to mcp-server.md
  • f950e11 docs: add tutorial image URL resolution design spec
  • 359b44d docs: add tutorials feature design spec (Phase 1)
  • d6c9664 docs: add tutorials implementation plan
  • 1eec968 docs: address round 2 spec review feedback for inject verbosity modes
  • 9e88e43 docs: address spec review feedback for BTP context detection
  • cfddd9c docs: address spec review feedback for What's New injection design
  • 0eacbc4 docs: address spec review feedback for constraints injection
  • 65b9ec5 docs: address spec review feedback for error pattern library
  • efc1d70 docs: address spec review feedback for inject verbosity modes design
  • abba113 docs: address spec review feedback for learning journeys
  • a908f96 docs: address spec review feedback for learning journeys
  • e435a62 docs: address spec review feedback for new adapters design
  • 026d37e docs: address spec review feedback for project detection design
  • 41ee638 docs: address spec review feedback for scratch/session context
  • fe2f677 docs: address spec review findings for MCP improvements
  • 38d2306 docs: address spec review issues for YouTube integration
  • edb62ff docs: clarify additive_position omission and findSchemasDir location in Phase 2c spec
  • ebee085 docs: clarify failure behaviour — preserve cached expansion vs first-fetch fallback
  • db372c4 docs: clarify field type coverage, clone logic, and selection clearing in Phase 2b spec
  • a4b5035 docs: clarify inject-status StatusRow is per adapter+target pair
  • 88d426b docs: clarify lcs returns byte length not character count
  • ace333b docs: clarify progress bar arithmetic for hidden/conditional phases
  • 73b6abe docs: document --stats flag, max_tokens adapter field, and overlaps pack field
  • 043115a docs: document Friday tip override, newsPlaylistURL, and Community User-Agent
  • 9cf2ad9 docs: document discovery command and discovery.yaml format
  • 603896c docs: document hook.yaml authoring, hook_config adapter field, and CLI commands table
  • 8691751 docs: document inject --status, --verbose, --json flags
  • 38ced38 docs: document inject --uninstall flag in user guide and developer guide
  • 9cbf6ed docs: document news command in CLAUDE.md and developer guide
  • d3b42d4 docs: document news hook subcommand and Friday reminder hook
  • 3bc8efb docs: document tip install and tip uninstall commands
  • 712d469 docs: document tutorials command and architecture
  • 6b288a8 docs: document videos command and youtube.yaml format
  • 6fde628 docs: enhance CLAUDE.md with adapter system details and dynamic content expansion
  • 7665e01 docs: fix MCP server plan from review
  • df7c7b8 docs: fix MCP server spec issues from review
  • f29004f docs: fix Packs type to []*content.Pack in MCP server spec
  • b737121 docs: fix config location spec after review
  • a4b7483 docs: fix description trim unit to Unicode characters
  • b174669 docs: fix double pointer and missing fmt import in sync progress plan
  • d31f1ba docs: fix dynamic injection spec after review
  • 93989db docs: fix inject-status spec — TrimPacks in render, clarify staleness extraction, i18n append_warning key
  • b8d5dab docs: fix inject-status spec — replace-file preamble newline, renderSectionContent location
  • 6ac9422 docs: fix iteration 2 spec review issues for YouTube integration
  • 555b37b docs: fix learn spec per review — correct API signatures, add validation
  • 913c18c docs: fix markdown lint warnings in news command spec
  • ef67b31 docs: fix round-2 spec review findings
  • faec51a docs: fix spec issues from review loop
  • d20323a docs: fix spec review issues in Phase 2c design
  • 1ec4a35 docs: fix tutorials spec — variable default branches, repo-groups.json format
  • e0d7d4a docs: mark 'sap-devs learn' feature as completed
  • 5d2281f docs: mark Friday SAP Developer News promotion and hook reminder as completed
  • f17833c docs: mark adapter TODOs as done/skipped
  • 7e4b6b2 docs: mark completion of configurable tip rotation frequency and uninstall feature
  • 824ec36 docs: mark doctor MCP TODO as done
  • 1a82d2b docs: mark influencers command as completed
  • 4b34db1 docs: mark scheduler and tray as done, document in developer guide
  • b8e7301 docs: note duplicate-prefix behavior in ScanOtherSections
  • 368ce11 docs: refine tip install/uninstall spec based on review feedback
  • 287dd73 docs: revise sync progress UI spec after review
  • 984e802 docs: specify concrete sync guard logic for YouTube integration
  • 690e024 docs: update CLAUDE.md and context.md for MCP server improvements
  • 0f2643e docs: update MCP server documentation for 32 tools and inline images
  • 59c705f docs: update TODO.md to mark YouTube and SAP Discovery Center integrations as completed
  • 7e55357 docs: update TODO.md to reflect completion of editor features
  • 1915d82 docs: update TODO.md with completed sap-devs news command and add Friday Developer News hook reminder
  • 291849a docs: update content-authoring with format/selector attributes and pack author guidance
  • 9c48cc0 docs: update html conversion spec with reviewer fixes
  • 495984e docs: update inject --uninstall spec after review iterations
  • d1cd142 docs: update server instructions quote to match expanded coverage
  • bb6f3bb docs: update status of Windsurf and Gemini Code Assist adapters to DONE
  • 309ea4e feat(TODO): enhance configuration options and context detection for AI agents
  • d1653cb feat(adapter): add HookConfig struct and hook_wire.go
  • 247becf feat(adapter): add MaxTokens field for per-adapter budget
  • 9b4d968 feat(adapter): add RunResult return type to engine.Run and update all call sites
  • 9afc3c2 feat(adapter): add deleteFile helper
  • ace6d94 feat(adapter): add file-export hybrid adapter type (ExportFileAndClip)
  • cd3d6b4 feat(adapter): add removeSection with dry-run and newline collapse
  • 197dbc7 feat(adapter): add replace-file write mode with preamble support
  • 8d45822 feat(adapter): add runFileUninstall and uninstall dispatch to engine.Run
  • f289f45 feat(adapter): add sectionStatus type and findSection helper
  • 50cd023 feat(adapter): refactor Engine to render per-adapter with budget trimming and stats
  • 7956bbb feat(adapter): rename ClipFormat to Format; add MaxBytes, ExportPath, Preamble
  • 577d0b7 feat(adapter): thread DynamicContext through Options into RenderContext
  • cf70a98 feat(adapter): wire FormatOutput, MaxBytes budget, and file-export in engine
  • 5d6e973 feat(adapters): add Gemini Code Assist file-inject adapter
  • fc1381c feat(adapters): add Windsurf file-inject adapter
  • d207152 feat(adapters): fix paths, add frontmatter, file-export for ChatGPT, remove Cody
  • a772409 feat(build): add sap-devs-tray build process and update .gitignore
  • 1a312bf feat(cmd): add config location subcommand with --detect flag
  • 63d23ca feat(cmd): add discovery command with missions list, search, open
  • bb5e45e feat(cmd): add discovery guidance tree, show, open subcommands
  • 7d1b108 feat(cmd): add discovery services list, search, open subcommands
  • 90be3be feat(cmd): add hook list/install/uninstall/status command
  • 71d2203 feat(cmd): add inject --uninstall flag with mutual exclusion and summary output
  • 1e01e1d feat(cmd): add videos command with list, search, open subcommands
  • 27f8d69 feat(cmd): profile show prints built-in note for all/minimal profiles
  • 3ca5daa feat(cmd): wire --stats flag and per-adapter packs/profile into engine
  • a0715c8 feat(cmd): wire GatherDynamic into inject for dynamic runtime context
  • 989ab50 feat(config): add Location field with omitempty
  • 67afb64 feat(config): add TipConfig struct with Rotation field
  • 9c51443 feat(config): add YouTube sync TTL, --service flag for token, config show update
  • f6e898b feat(config): add tip-rotation subcommand and config show entry
  • b32ce9c feat(content): LoadPack prefers context.expanded.md over context.md when present
  • e059860 feat(content): LoadPacks returns base packs only for minimal profile
  • 0074ab3 feat(content): add Additive and AdditivePosition fields to Pack
  • 8b8fba5 feat(content): add Base field to Pack struct and pack.yaml schema
  • 692f340 feat(content): add BuiltinProfiles and IsBuiltinProfile to profile.go
  • afe1038 feat(content): add DynamicContext types
  • 99ff07b feat(content): add FlattenHooks and FindHookDef helpers
  • c4fc44f feat(content): add FormatOutput and TrimToBytes
  • fdedebe feat(content): add HookDef struct and load hook.yaml in LoadPack
  • 48f3fa1 feat(content): add Overlaps field to Pack for deduplication
  • 9ee50b6 feat(content): add PreambleMD field; load preamble.md in LoadPack
  • 1b3ae09 feat(content): add TrimPacks for deduplication and budget enforcement
  • 6c0c942 feat(content): add YAML schemas and VS Code editor wiring
  • 75aa857 feat(content): add YouTubeSource and Video structs, load youtube.yaml in LoadPack
  • cac648c feat(content): add base pack with shared SAP ecosystem entry points
  • 547f234 feat(content): add discovery ref types, loader, and merge support
  • 27543dc feat(content): add flatten/collect helpers for discovery refs
  • f79d41f feat(content): add merge helpers for additive content layers
  • b2fbe4a feat(content): add mergeYouTubeSources for additive pack layer support
  • aedc0bc feat(content): add youtube.yaml for base and cap packs with JSON schema
  • c954f1d feat(content): apply additive merge in LoadPacks
  • a9e716a feat(content): exempt base packs from TrimPacks budget and deduplication
  • 77b367c feat(content): implement Pack.MergeWith for additive layer merging
  • 95dd529 feat(content): inject built-in profiles in ContentLoader.LoadProfiles
  • 9f2423e feat(content): pin base packs first in LoadPacks output
  • 6e4e09d feat(content): render base pack preamble before ContextMD in RenderContext
  • 8793b22 feat(content): render dynamic context section in RenderContext
  • e5702a6 feat(content): short-circuit FindProfile for built-in profile IDs
  • 5f020df feat(content/cap): add feb26 release notes marker and agent instructions
  • e77c044 feat(credentials): add service-keyed storage for YouTube API keys
  • 22ad21d feat(discovery): add API response types for Discovery Center OData
  • 6fe6ce6 feat(discovery): add OData V2 client for Discovery Center APIs
  • dc61938 feat(discovery): add TTL-based cache layer with generics
  • fd5e477 feat(discovery): add resolve/enrich/filter orchestration layer
  • f525a41 feat(docs): enhance TODO with built-in profiles and background automation plans
  • ea10be1 feat(docs): enhance developer guide and TODO with config editor details
  • 706137a feat(docs): expand TODO with release, distribution, and code signing plans
  • 346c499 feat(docs-site): add CDS syntax highlighting via TextMate grammar
  • 9a6418e feat(docs-site): mascot branding, hero redesign, mermaid diagrams
  • d985800 feat(dynamic): implement GatherDynamic for runtime context collection
  • 22c7767 feat(editor): add reordering and bulk editing to content editor (#50)
  • d1852bc feat(editor): add undo/redo and pre-save diff review to content editor (#49)
  • d21033f feat(events): add EventType and EventInstance structs, loading, and merge
  • 0a3269b feat(events): add EventsConfig sub-struct with distance and notification settings
  • 612da99 feat(events): add Haversine distance calculation
  • 703070b feat(events): add Phase 2 i18n keys (export, notify, config)
  • 8c8b01a feat(events): add RSS fetching and parsing for events
  • b35dedb feat(events): add Resolve, FilterByLocation, and MergeAndSort
  • 9ffde2e feat(events): add URL column to event table and update translations feat(build): create build script for sap-devs.exe fix(.gitignore): correct entry for sap-devs-news
  • e48e1a0 feat(events): add calendar export (iCal, vCalendar, Google Calendar URL, Outlook URL)
  • a5874f2 feat(events): add config events subcommands for radius and notification settings
  • b56a1b7 feat(events): add content helper functions for events
  • 93e895e feat(events): add cross-platform OS notification dispatch
  • d963981 feat(events): add embedded city database with geocoding lookup
  • 8895d87 feat(events): add events command with list, open, types, and filtering
  • 8513a80 feat(events): add export, hook, and notify subcommands
  • bd1c745 feat(events): add file-based event cache
  • f80ce0a feat(events): add i18n keys for events command (en, de)
  • a40225e feat(events): add seed data, JSON schemas, and VS Code wiring
  • 13fa223 feat(events): add upcoming event detection and hook message formatting
  • da414bb feat(events): integrate events RSS caching into sync
  • 6afd208 feat(events): switch CodeJam events from broken RSS to Khoros LiQL API
  • d28cb34 feat(i18n): add discovery command translations for en and de
  • 8816b3d feat(i18n): add inject.uninstall.* keys for en and de
  • df4fa2b feat(i18n): add location keys; renumber init steps 4-5 to 5-6
  • 51bd38d feat(i18n): add tip_rotation keys to en and de catalogs
  • 65e7dd5 feat(influencers): add Influencer struct, Pack field, and YAML loading
  • 393e4b0 feat(influencers): add helper functions for flatten, filter, find, random
  • d67254b feat(influencers): add i18n keys for influencers command (en, de)
  • 539c3b6 feat(influencers): add influencers command with list, open, and filtering flags
  • e8f0b4e feat(influencers): add seed data, JSON schema, and VS Code wiring
  • 50d4dea feat(init): add Step 4 location collection to setup wizard
  • aef3523 feat(inject): add staleness check, --sync/--no-sync flags, and inline sync with pack reload
  • f1c326b feat(learning): add CLI commands (list, search, show, open)
  • 0fce292 feat(learning): add cache layer
  • 289ff54 feat(learning): add catalog fetcher
  • ae22f3b feat(learning): add context injection of featured learning journeys
  • d79ebc6 feat(learning): add i18n translation keys
  • f063546 feat(learning): add i18n translation keys
  • 46c8961 feat(learning): add local search and filters
  • c9bdbf1 feat(learning): add pack content files and JSON schema
  • 780c809 feat(learning): add pack content files and JSON schema
  • 3e467ba feat(learning): add pack integration types, merge logic, and content helpers
  • b7f78e2 feat(learning): add search API client
  • 8bcdfd7 feat(learning): add sync TTL config field
  • 9cd6610 feat(learning): add sync TTL config field
  • a19ecda feat(learning): add sync integration for catalog fetch
  • 1e00111 feat(learning): add types and constants
  • 3ec45f0 feat(mcp): add ResultEnvelope type and wrapResults helper
  • 4ed11a2 feat(mcp): add check_tools and check_project tools
  • 81b9a87 feat(mcp): add get_news_detail tool with structured episode parsing
  • 1823982 feat(mcp): add search_events tool
  • 86010e3 feat(mcp): add search_videos and search_discovery tools
  • 29be373 feat(mcp): update all existing tools with envelope, limit, enriched descriptions
  • 3f0c39d feat(mcp): update content tools with envelope, verbosity, structured tip
  • 5dcccb1 feat(mcp): update server instructions and add Cwd to Deps
  • eba138e feat(news): add resilient multi-layer fetching with cache and retry
  • e00b39e feat(release): add Windows code signing and package manager publishing
  • f8c180d feat(samples): add JSON schema and VS Code mapping
  • e474ecb feat(samples): add Sample struct and pack loading
  • ddc1ca6 feat(samples): add content helpers with tests
  • f0b3623 feat(samples): add i18n strings for samples command
  • 4a90fd0 feat(samples): add initial CAP sample data
  • 2f6714b feat(samples): add samples command with list/search/open/clone
  • 2b7810e feat(samples): add samples merge logic with tests
  • a7981dd feat(samples): implement code sample pinning with samples.yaml and CLI commands
  • 941225f feat(samples): inject canonical patterns section into rendered context
  • a0799e7 feat(schema): add discovery.yaml JSON schema and VSCode wiring
  • d6b9a62 feat(service): add Linux systemd timer scheduler implementation
  • bd1be45 feat(service): add Scheduler interface and Status type
  • b4e5b48 feat(service): add Windows Task Scheduler implementation
  • 3ddc637 feat(service): add macOS launchd scheduler implementation
  • 0056a08 feat(service): add service install/uninstall/status CLI commands
  • 808f8d3 feat(service): add service_interval config key with 6h default
  • d3254e1 feat(sync): add Discovery Center data to sync flow
  • 4591947 feat(sync): add FetchMarker with line/token truncation
  • 588489d feat(sync): add Format and Selector fields to Marker struct
  • 79afa48 feat(sync): add marker scanner and expander (ScanMarkers, ExpandMarkers)
  • cb28446 feat(sync): add versioned SyncState with migration from flat format
  • 7a1140e feat(sync): export MostRecentSync for dynamic injection
  • 33f7c5c feat(sync): extract runSync helper; add Phase 2 marker expansion with Bubbletea progress
  • e583aef feat(sync): implement convertContent helper for HTML format conversion
  • caf33e7 feat(sync): migrate Engine to SyncState; add SetPackHasMarkers, RecordMarkerState, GetMarkerState
  • a81d8bd feat(sync): split archive/independent categories, add YouTube sync phase 4
  • 5db726d feat(sync): unified progress UI with Bubbletea phase list, progress bar, and TTY fallback
  • 69c54e1 feat(sync): wire convertContent into FetchMarker; truncation now applies after conversion
  • 1808948 feat(theme): add SAP Fiori Horizon Evening dark theme (#47)
  • 187d4c9 feat(theme): add comprehensive guide for creating theme variants from SAP Fiori Horizon styles
  • fbbd78c feat(tip): add --markdown and --plain output flags
  • 66e8ca4 feat(tip): add tipSeed helper, --new flag, and configurable rotation
  • fbdcbba feat(tray): add Config button to dashboard panel via open-config API
  • 7539239 feat(tray): add Joule theme variant with configurable theme switching
  • b30e1d3 feat(tray): add cities search, languages list, and location detect APIs
  • 14a3dba feat(tray): add config API handlers for read, write, validate
  • f632240 feat(tray): add config editor CSS styles
  • c07b67d feat(tray): add config editor HTML with Fiori panel layout
  • 6f83935 feat(tray): add config editor JavaScript (form logic, typeahead, validation, save)
  • d08d2b4 feat(tray): add config window (520x700) and Config menu item
  • 1565216 feat(tray): add service status, install/uninstall, and autostart APIs
  • 70360b0 feat(tray): add tray install/uninstall/start/stop/status CLI commands
  • 66bcd39 feat(tray): add tray_autostart config key
  • 28e3576 feat(tray): add trayctl manager for download, verify, start, stop
  • 89b348c feat(tray): redesign dashboard UI, add live sync log and tool detection
  • e703d83 feat(tray): update tray binary during sap-devs update
  • d03af51 feat(tray-binary): add Fiori dashboard with Fundamental Styles theming
  • d00b9c8 feat(tray-binary): add embedded HTTP server with session token auth
  • ee97761 feat(tray-binary): add shared state reader for dashboard
  • 0506150 feat(tray-binary): initialize Wails v3 module with skeleton main
  • 1d8d437 feat(tray-binary): wire Wails v3 system tray with webview panel
  • 50d4c89 feat(tutorials): add GitHub client for repo list, tree, and content fetching
  • d9a4407 feat(tutorials): add TutorialRef helper functions with tests
  • 6d620df feat(tutorials): add TutorialRef struct and LoadPack integration
  • 6ec9005 feat(tutorials): add i18n keys for tutorial commands
  • 5357d14 feat(tutorials): add interactive step-by-step TUI
  • df68e80 feat(tutorials): add markdown parser with v1/v2 support
  • e338271 feat(tutorials): add optional developers.sap.com API enrichment
  • 880e870 feat(tutorials): add progress tracking
  • de5156f feat(tutorials): add schema, VS Code wiring, and initial curated tutorials
  • e05b281 feat(tutorials): add search and filtering
  • 9176b9e feat(tutorials): add tutorial list/search/show/open commands
  • 4020a99 feat(tutorials): add types and cache layer
  • a5f4b1a feat(tutorials): enhance tutorial parsing and execution with branch support refactor(tutorials): improve error handling for unavailable repositories chore(youtube): remove deprecated playlists and clean up YAML files test(tutorials): add tests for batch JSON extraction and tutorial parsing
  • 032cc89 feat(tutorials): wire tutorials sync with TTL, incremental fetch, and enrichment
  • 3d6e64a feat(ui): add Bubbletea inline progress model for marker expansion
  • 06d1f40 feat(ui): add RunSyncProgress entry point and plain text fallback
  • a025775 feat(ui): add sync progress Bubbletea model with phase list and progress bar
  • 465b773 feat(videos): add cache and helper functions for video resolution
  • 1d6df14 feat(youtube): add Resolve function with API v3/RSS/video dispatch
  • 2221b33 feat(youtube): add YouTube Data API v3 client with parsing and pagination
  • a6c4eee feat(youtube): extend Episode struct with Duration and Tags fields
  • f049c97 feat: VitePress documentation site with SAP Fiori styling (#15)
  • 044cffd feat: What's New injection block after sync (#42)
  • e930b3a feat: add "Phone a Friend" feature for expert recommendations based on user queries
  • 4722cfb feat: add 11 MCP tools for CF and BTP CLI inspection (26 total) (#11)
  • 802eea2 feat: add Status() method to Engine
  • 83f1460 feat: add StatusRow, SectionInfo, EstimateTokens, ScanOtherSections
  • 345d80f feat: add constraints.md injection per pack (#38)
  • 33e22f5 feat: add context add/list/clear for ephemeral project scratch notes (#41)
  • f71d96a feat: add dynamic "all" profile to include all packs in content layers
  • 38d10b9 feat: add error pattern library with known_errors.yaml per pack (#40)
  • 1ea6640 feat: add formatFridayTip and staticFridayTip helpers with tests
  • 78818ab feat: add inject --status command with --json and --verbose flags
  • 094641a feat: add inject.status i18n keys (en + de)
  • c8ee303 feat: add internal/community package for SAP Community RSS and post extraction
  • 0745fbc feat: add internal/news correlator package
  • 5090d32 feat: add internal/youtube package for playlist RSS parsing
  • 5b3f08b feat: add news hook command with Friday reminder message
  • 2c5401c feat: add renderSectionContent helper to Engine
  • 77924f3 feat: add sap-devs learn command (#37)
  • 720c649 feat: add sap-devs news command with list, open, search, and read subcommands
  • f49ea81 feat: add security reviewer guidelines, release notes generation, and MCP server configuration
  • 1488b47 feat: add skill installation via hook install command (#14)
  • b00d97e feat: add tip install and tip uninstall subcommands
  • deaf04e feat: add tutorial guided execution MCP tools (Phase 2) (#12)
  • 8d21621 feat: built-in MCP server (sap-devs mcp serve) (#48)
  • 6c471ad feat: content creation wizard (Phase 2c) (#51)
  • 85719e0 feat: content editing UI Phase 1 — TUI editor with schema-driven value help (#46)
  • 923d00a feat: detect BTP subaccount and CF org/space at inject time (#44)
  • 462a7b1 feat: enhance content editing capabilities and introduce project health check command
  • ff0016d feat: implement sap-devs inject --status command with JSON and verbose output options
  • fcdc42d feat: implement schema validation logic with error handling
  • 91f187a feat: implement shellhook.Add with full-line duplicate detection
  • e8aa189 feat: implement shellhook.Remove with full-line matching
  • 10f3623 feat: inject verbosity modes with semantic section tagging (#43)
  • 9117274 feat: inline tutorial images in MCP server responses (#16)
  • 3d6f995 feat: mark project-aware context detection on inject as completed
  • 0a61d17 feat: override tip with SAP Developer News episode on Fridays
  • dd7a929 feat: project-aware context detection and health checks (#39)
  • 9316df3 feat: register friday-developer-news session-start hook
  • 7b28fee feat: scaffold internal/shellhook with platform profile detection
  • a54847a feat: structured context.md conventions with section validation (#45)
  • b6522a7 feat: tutorial instructor skill and MCP tool enhancements (Phase 2+) (#13)
  • d0850c2 feat: update TODO and context.md with completed tasks and CLI reference for AI agents
  • 61e6d81 fix(.gitignore): add .playwright-mcp/ to ignore list
  • d092c7c fix(adapter): add lookupArray for read-only traversal; strengthen empty-array removal test
  • 7366cd3 fix(adapter): handle non-NotExist os.Stat errors in deleteFile
  • 257a977 fix(adapter): reserve guidance-line bytes before TrimToBytes in ExportFileAndClip
  • c139cd8 fix(adapter): show Trimmed status in stats table and route budget warning to stderr
  • c4cb5be fix(adapter): skip stats for mcp-wire; strengthen budget test assertion
  • a8b3a34 fix(adapter/test): use io.ReadAll for reliable stderr pipe drain in append-mode test
  • 026b055 fix(cmd): check loadAdapters error in normal inject path; fix test cleanup completeness
  • 219fbea fix(cmd): fix resp.Body leak, use os.Stdin for --detect prompt, fix i18n lang
  • 5bdefb3 fix(cmd/hook): use Unicode status symbols; error when no hooks to install
  • 99f8206 fix(content): explicit AdditivePosition clear; add before-position integration test
  • 0185b9e fix(content): improve MergeWith call site comment; add non-additive override test
  • a0d56d4 fix(content): merge Hooks from additive packs in MergeWith
  • 08fe0fb fix(content): trailing newline in preamble.md; fix doc tree path
  • 5c2e7ae fix(docs-site): address 6 plan review issues
  • 94542d6 fix(docs-site): exclude Vue builtins from isCustomElement
  • 2df0a50 fix(docs-site): fix sidebar layout with custom shellbar
  • 7c63ee1 fix(docs-site): generate archive index pages to prevent 404
  • d5d043b fix(docs-site): prevent OOM in CI by hoisting HTML5 Set and increasing heap
  • bf61a5c fix(docs-site): use withBase() for public asset refs in Vue components
  • f0cf40c fix(learning): handle mixed types in catalog Duration_in_hours field (#36)
  • ba73ad7 fix(mcp): add URL validation, exec timeout; rewrite mcp-server.md
  • af0f9f0 fix(mcp): improve news detail parsing, search ranking, and correlation
  • fc7ee3a fix(mcp): improve search quality, error handling, and response consistency (#10)
  • 755eb95 fix(release): add ids filter to scoop/homebrew sections in GoReleaser
  • 68bf76e fix(release): use workflow_run trigger for tray workflow
  • ddf60b2 fix(service): address code review findings
  • d5f9ee7 fix(service): update Linux test assertion to match quoted binary path
  • 863ce35 fix(sync): clarify Format field comment and tighten truncation test assertion
  • 5408cea fix(sync): guard truncateTokens idx>=0; cap FetchMarker body at 1MiB; add edge-case tests
  • cdd4d5e fix(sync): improve state reset safety and test coverage for marker round-trip
  • 536aa41 fix(sync): pad Bubbletea view to prevent ghost lines from height changes
  • 661f7a1 fix(sync): prevent changelog from reading failed company cache, remove dead markersNeeded field
  • 9c2ac09 fix(sync): prevent ghost lines by capturing stderr and fixing view height
  • c4c938b fix(sync): remove dead PrintPlainProgress start calls, fix markers failure reporting, restore company https check
  • c9e4e6c fix(sync): simplify unknown-format fallback and improve tests
  • 027bb80 fix(sync): use composite packID::index key in RunMarkerExpansion to prevent multi-pack collisions
  • 86a7ed1 fix(sync): warn on invalid numeric marker attributes; test ExpandMarkers fence skip path
  • f90bbcf fix(test): narrow omitempty assertion to tip: YAML key
  • 5e4a8de fix(test): use UTC for timestamps in MostRecentSync test
  • d4e713b fix(tip): use cmd.ErrOrStderr() for rotation warning
  • 3ba8799 fix(tip): use sap-devs warning prefix, clarify session alias, strengthen random test
  • 993e9a9 fix(tray): address code review findings
  • 5b29500 fix(tray): prevent switch toggle from overlapping label text
  • 9527cb1 fix(tray-binary): address code review findings
  • caf9893 fix(tray-binary): fix sync state parsing, version display, add close button
  • 0eba12c fix(ui): match items by packID+index; use stderr for errors; tidy go.mod
  • 45a6fbf fix: add graphify-out directory to .gitignore
  • 73d14a3 fix: address final code review findings for YouTube integration
  • 0a79102 fix: address plan review issues for inject verbosity modes
  • 5f93b22 fix: address plan review issues in content editing UI plan
  • 5faf9cc fix: align regex with spec, fix AdapterName JSON tag
  • c03d8a0 fix: correct TTY fd and add explicit markers guard in inject staleness block
  • 35361c4 fix: correct cds-dk version detection pattern in tools.yaml
  • 1ce385e fix: guard renderSectionContent against empty TrimPacks result
  • 9a3c527 fix: handle $PAGER with arguments, expose -n flag on bare news command
  • 9b8c356 fix: hide news hook from user-facing help output
  • 5990c31 fix: instruct agents to include image URLs as clickable links
  • 6293a27 fix: make TestTipSeed_RandomProducesDistinctValues robust against nanosecond collisions
  • 9e22673 fix: pass full adapter to RenderSectionContentForTest, deduplicate innerStart
  • 4be2ef4 fix: print "not found" message when no shell profiles exist
  • adf7f66 fix: remove nil PacksBlock guard and fix Y/n prompt hang on empty input
  • 203895a fix: rename copy shadow and add lipgloss version note in plan
  • 60bf44f fix: scope gitignore binary patterns to repo root
  • 5e75173 fix: send User-Agent header to avoid 403 from SAP Community RSS
  • bb18af5 fix: skip "restart terminal" message when shell hook already present
  • 9e998a6 fix: stat error handling, official-layer comment, and tilde fence support
  • dff00c9 fix: surface OS error in tip uninstall instead of misleading "not found" message
  • 381ef5c fix: thread io.Writer into openPager fallback, update stale newsYTMusic comment
  • 2aa94bb fix: update MCP server tests for envelope response format
  • 9f5bc0a fix: update community news RSS feed URLs and improve date parsing logic
  • ad12f6c fix: use direct duration comparison instead of float64 in correlator
  • 7134c13 refactor(adapter): use findSection in ReplaceSection
  • c8cb1ff refactor(adapter/test): use two-line RunResult pattern for engine.Run call sites
  • 5eae4ba refactor(content): add PackID re-stamp rationale comments; add MCPServer append test
  • 73d58f4 refactor(content): hoist regexps to package-level, fix parameter shadowing
  • 1c3b48f refactor(tutorials): simplify tutorial parsing by removing branch parameter
  • e47ac04 refactor(ui): slim progress.go to marker types only, remove standalone Bubbletea program
  • 5488e92 refactor: replace addShellHook with shellhook.Add in init wizard
  • 92d4de1 remove btp tag for cap dev pack
  • c7966f0 style(adapter): fix comment indentation in engine.go stats block
  • a1d34e2 style(adapter): fix struct field alignment in Target
  • 3042311 style(content): add blank line between Base and ContextMD in Pack struct
  • 89d21a8 style(tip): sort stdlib imports
  • 0a4a864 style: add blank line before mergeSamples doc comment
  • 219b831 style: gofmt pack.go after adding AdditivePosition field
  • b1f3b2e style: remove extra blank line in render.go
  • a768975 test(adapter): add NotFound coverage and buf output assertions for uninstall engine tests
  • c1d0644 test(adapter): strengthen ExportFileAndClip tests with file-content assertions
  • 5f2f0a3 test(cmd): add --stats + --uninstall combination test to verify no mutual exclusion
  • c09c9e9 test(content): assert lang=en also resolves to expanded file
  • 20c813f test(content): fix PreambleMD test name style to match file convention
  • 72553c6 test(content): verify additive pack cannot override base PreambleMD
  • b544718 test(dynamic): add missing pom.xml CAP Java project type test
  • 51d3084 test(dynamic): fix misleading test name and strengthen MCP missing-file test
  • 56bdbd1 test(sync): assert LastFetched in NewFormatRoundTrips test
  • fb4f383 test(sync): fix misleading comment and add file-deletion assertion in reset test
  • 0035dc0 test: add TestAdd_MultipleHookBlocks for spec coverage
  • a4c20c9 test: assert exact rune count in truncation test
  • 26a67f5 test: strengthen TestExtractMarkdown_Empty assertion
  • 7a12655 use random seed for tips in local dev mode