Fix European trip return heuristic for weekend location tracking

Adjust European short trip heuristic from >3 days to >1 day to correctly
detect when user has returned home from European trips. This fixes the
April 29-30, 2023 case where the location incorrectly showed "Sankt Georg, Hamburg"
instead of "Bristol" when the user was free (no events scheduled) after
the foss-north trip ended on April 27.

The previous logic required more than 3 days to pass before assuming
return home from European countries, but for short European trips by
rail/ferry, users typically return within 1-2 days.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Edward Betts 2025-07-16 06:38:37 +02:00
parent 663dc479c2
commit ea4980a5d7
6407 changed files with 1072847 additions and 18 deletions

44
node_modules/rechoir/lib/extension.js generated vendored Normal file
View file

@ -0,0 +1,44 @@
'use strict';
var path = require('path');
function getLongExtension(basename) {
if (basename[basename.length - 1] === '.') {
return null;
}
var startIndex = basename[0] === '.' ? 1 : 0;
var dotIndex = basename.indexOf('.', startIndex);
if (dotIndex <= startIndex) {
return null;
}
return basename.slice(dotIndex);
}
function getPossibleExtensions(longExtension) {
var arr = [longExtension];
var len = longExtension.length;
var startIndex = 1;
while (startIndex < len) {
var dotIndex = longExtension.indexOf('.', startIndex);
if (dotIndex < 0) {
break;
}
arr.push(longExtension.slice(dotIndex));
startIndex = dotIndex + 1;
}
return arr;
}
module.exports = function (input) {
var basename = path.basename(input);
var longExtension = getLongExtension(basename);
if (!longExtension) {
return;
}
return getPossibleExtensions(longExtension);
};

13
node_modules/rechoir/lib/normalize.js generated vendored Normal file
View file

@ -0,0 +1,13 @@
function normalizer(config) {
if (typeof config === 'string') {
return { module: config };
}
return config;
}
module.exports = function (config) {
if (Array.isArray(config)) {
return config.map(normalizer);
}
return normalizer(config);
};

15
node_modules/rechoir/lib/register.js generated vendored Normal file
View file

@ -0,0 +1,15 @@
var resolve = require('resolve');
module.exports = function (cwd, moduleName, register) {
var result;
try {
var modulePath = resolve.sync(moduleName, { basedir: cwd });
result = require(modulePath);
if (typeof register === 'function') {
register(result);
}
} catch (e) {
result = e;
}
return result;
};