fix: three errors that ended with the wrong exit code
Found compiling the environment-variable table for AGENTS.md: - A REVIEW_GATES_MEM_RESERVE_MB that is no number threw std::invalid_argument, which nothing caught: the process aborted where it should end with a ValueError, exit 1. nan and inf were an unchecked cast. They raise ValueError / OverflowError now; a value past int64 saturates. - An env file that is not UTF-8: `run` ended with exit 1 where its preflight should stop it (exit 3), and `seats` parsed the raw bytes. Both read it as strict UTF-8 text now. - A broker address with a port past 65535 was cut to 16 bits; it is an OverflowError now, uncaught (exit 1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
b092d98697
commit
53b7d6de31
9 changed files with 58 additions and 14 deletions
|
|
@ -515,9 +515,9 @@ inventory unit, against a frozen commit range.)";
|
|||
if (envFile.empty() && fs::exists(".env", error)) envFile = ".env";
|
||||
std::map<std::string, std::string> env = process;
|
||||
if (!envFile.empty()) {
|
||||
const std::optional<std::string> text = Platform::ReadFile(envFile);
|
||||
if (!text) throw Dyn::Error("FileNotFoundError", std::format("[Errno 2] No such file or directory: {}", Dyn::Repr(envFile)));
|
||||
for (const auto& [name, value] : Seats::SeatTokensFromEnvFile(*text)) env[name] = value;
|
||||
// The env file, read as text: one that cannot be read, or is not
|
||||
// UTF-8, ends the command.
|
||||
for (const auto& [name, value] : Seats::SeatTokensFromEnvFile(Dyn::ReadText(envFile))) env[name] = value;
|
||||
}
|
||||
std::vector<SeatJob> jobs;
|
||||
for (const auto& [seat, token] : Seats::SeatTokensFromEnv(env)) jobs.push_back({seat, token, false});
|
||||
|
|
|
|||
Loading…
Reference in a new issue