Hola!
Ejecutando el promote10.php he visto en log varios warnings, entre ellos, este:
PHP Notice: Undefined variable: past_karma in /home/XXXXXX/scripts/promote10.php on line 449
En la línea 449, en la función update_link_karma está esta sentencia:
User::calculate_affinity($link->author, $past_karma*0.3);
Claro que $past_karma está definida en la función "promote" y no globalmente, por lo que el resultado del producto $past_karma*0.3 siempre es "0".
Ese parámetro se usa como un "karma mínimo" para hacer un SELECT (en User::calculate_affinity) y acotar resultados con karma superior a ese mínimo y luego hacer cálculos (que en el caso del bug, siempre será 0, lo que descarta valores negativos de karma en el SELECT a la base de datos).
Esto está ocurriendo desde la creación del promote10.php, porque en el promote9.php esa parte del código estaba en el mismo "scope" de variables (supongo que desde que se añadieron los subs).
No sé si afecta mucho al funcionamiento de menéame, porque aparentemente "funciona", pero quizás ese no era el resultado esperado cuando se diseñó el algoritmo que calcula afinidades.
La forma de solucionarlo es pasar la variable $past_karma por parámetro.
Línea 190:
$changes = update_link_karma($site_id, $link, $past_karma);
Línea 428:
function update_link_karma($site, $link, $past_karma) {
Saludos!
/Fermin