Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ src/
OllamaService.cs — local LLM inference wrapper
Models/
ApplicationLog.cs
JobEvent.cs — append-only activity ledger (scoreboard stats + cross-session listing history)
MasterProfile.cs
TailoredProfile.cs
Envoy.GhostDetection/ NEW — ghost-job detection framework
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ All notable changes to Envoy are documented in this file. Format is based on [Ke
## [Unreleased]

### Added
- Scoreboard foundation. Envoy now keeps a local activity ledger (a `JobEvents` table in `envoy.db`): a submitted application is recorded as Applied, and a cancel at the submit gate as Declined, each carrying the ghost risk score, band, and evidence that was on screen when the user decided. Application logs also store the score and band at submit time. Cancelling at the gate gets its own status (`DeclinedByUser`) instead of being lumped in with the safety-check halt, and the Apply view shows it in yellow, not error red, because walking away from a bad posting is a decision, not a failure. This ledger is the data layer for the upcoming stats view, and it begins the cross-session listing history the repost-frequency signal has been waiting on.
- In-app update check. Once per launch, Envoy asks the public GitHub releases API whether a newer version exists and, when one does, shows an UPDATE link in the title bar that opens the release page. Nothing is sent beyond the request itself; set `"CheckForUpdates": false` in `settings.json` to turn it off.

## [1.0.3] - 2026-07-14
Expand Down
11 changes: 11 additions & 0 deletions src/Envoy.Core/Data/EnvoyDbContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ public class EnvoyDbContext : DbContext
public DbSet<MasterProfile> MasterProfiles { get; set; } = null!;
public DbSet<TailoredProfile> TailoredProfiles { get; set; } = null!;
public DbSet<ApplicationLog> ApplicationLogs { get; set; } = null!;
public DbSet<JobEvent> JobEvents { get; set; } = null!;

public string DbPath { get; }

Expand Down Expand Up @@ -123,6 +124,16 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
entity.HasKey(e => e.Id);
entity.Property(e => e.JobUrl).IsRequired();
});

modelBuilder.Entity<JobEvent>(entity =>
{
entity.HasKey(e => e.Id);
entity.Property(e => e.PostingKey).IsRequired();
// The ledger is read two ways: "this posting's history" (dodge
// receipts, repost detection) and "recent activity" (scoreboard).
entity.HasIndex(e => e.PostingKey);
entity.HasIndex(e => e.OccurredAt);
});
}

// Helper used by ValueConverter expressions on JSON columns. If a row
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading