Merged
Conversation
…dd infra solution folder Closes #85
…them natively via GitHub Actions node)
…a-solution-folder chore: remove unused Syndication dependency, fix README and add infra/docs to Solution Items
chore: align XPoster agents/skills and clean up lscache artifacts
- Rename src/Services/AiService.cs to OpenAiService.cs - Update class name, constructor, and ILogger generic parameter - Update IAiService DI registration in Program.cs - Rename tests/Services/AiServiceTests.cs to OpenAiServiceTests.cs - Update all type references in test file
…enaiservice refactor: rename AiService to OpenAiService (#87)
- Add ResolveAuthorUrn() helper: returns urn:li:organization:{IN_ORG_ID}
when IN_ORG_ID is set, falls back to urn:li:person:{IN_OWNER}
- Refactor SendAsync to use ResolveAuthorUrn() instead of reading IN_OWNER directly
- Update generatePayLoad: accept pre-built authorUrn, remove internal URN construction
- Add IN_ORG_ID to local.settings.json.example
- Update docs/configuration.md LinkedIn table (IN_OWNER now optional when IN_ORG_ID set)
- Add 3 tests covering org URN, person URN, and missing-both-vars paths
…nder feat(insender): add LinkedIn organization page support (#71)
…o OpenAiOptions (#88) - Add OpenAiOptions sealed class with defaults for all provider parameters (ApiKey, ChatEndpoint, ChatModel, SummaryTemperature, SummaryMaxTokensPerChar, SummarySafetyMarginChars, ImageEndpoint, ImageModel, ImageSize, ImageCount) - Refactor OpenAiService: inject IOptions<OpenAiOptions>, remove all hard-coded literals and redundant OPENAI_API_KEY env-var guards in GetSummaryAsync/GetImagePromptAsync - Register Configure<OpenAiOptions> from 'OpenAI' section in Program.cs - Replace OPENAI_API_KEY flat var with OpenAI__* double-underscore keys in local.settings.json.example - Update docs/configuration.md AI section with full OpenAiOptions parameter table - Update OpenAiServiceTests: BuildService now accepts IOptions<OpenAiOptions>
…ions feat(openai): externalise OpenAI endpoints, models and parameters into OpenAiOptions (#88)
…plates feat(openai): externalise prompt templates into OpenAiOptions (#89)
chore: add NuGet.Config to pin restore to nuget.org only
…r orchestration in GeneratorFactory - Add IAiServiceFactory and AiServiceFactory for provider-based IAiService resolution - Add AiProvider enum (OpenAi, Perplexity placeholders) - Add ScheduledGenerationProfile to model hour/sender/generator/provider slots - Refactor GeneratorFactory to resolve sender and AI service via profiles and IAiServiceFactory - Update FeedGenerator to accept nullable IAiService with null-safety guards - Update Program.cs DI registrations for AiServiceFactory and new abstractions - Add global.json to pin SDK to .NET 8.0.421 and resolve MSB4011 warnings - Fix CS1998 in IgSender.UploadImageToPublicUrl - Fix duplicate Content items in XPoster.csproj after SDK alignment - Add XML docs for all new public types and members - Add unit tests: AiServiceFactoryTests, missing FeedGenerator null-safety cases, GeneratorFactory IAiServiceFactory interaction tests
…stration feat: add multi-AI-provider support via IAiServiceFactory and ScheduledGenerationProfile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
This PR promotes to master the changes already integrated in develop and labeled ready for master, including both issue scope and implementation-level alignments found in the codebase.
Closes #71
Closes #85
Closes #87
Closes #88
Closes #89
Closes #90
What Changed
1. LinkedIn sender: organization page support
2. AI service refactor: provider-specific naming
3. OpenAI parameters externalized via options
4. Prompt templates moved to configuration
5. IAiServiceFactory and provider orchestration
6. Project housekeeping
Testing and Quality
Operational Notes
Change Type
Checklist